0

我的用例 - 如果罗马数字出现在 TokenStream 的最后,则将其转换为英文数字。否则就让它过去吧。

前任。“第三件事”>>>“第三件事”。但是“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 第二次返回 false 是正常的,因为接下来您没有任何空间。

您必须使用 end() 循环才能知道字符串何时完成(请原谅我的法语,我不知道如何编写它)。

于 2012-08-22T20:32:50.363 回答