0

私の使用例 - ローマ数字が TokenStream の最後にある場合、それを英数字に変換します。それ以外の場合はそのままにしてください。

元。「サムシングⅢ」 >>> 「サムシング3」。でも「III 何か」 >>> 「III 何か」 (最後に III が来ないのと同じ)

このロジックを Lucene で正確に機能させるにはどうすればよいですか?

ps input.incrementToken() は最初に true を返し、次に WhitespaceTokenizer によって生成された TokenStream のすべての用語に対して false を返すようです。

4

1 に答える 1

0

もう少し詳しく教えていただけませんか?コードの一部?

あなたはすでにこれを見たと思います:

http://lucene.apache.org/core/3_6_0/api/all/org/apache/lucene/analysis/TokenStream.html

言います:

「コンシューマー (つまり、IndexWriter) は、このメソッドを使用してストリームを次のトークンに進めます」

次にスペースがないため、incrementToken が 2 回目に false を返すのは正常です。

文字列が完了したことを知るには、 end() でループする必要があります (フランス語ですみません、書き方がわかりません)。

于 2012-08-22T20:32:50.363 に答える