我的用例 - 如果一个罗马数字出现在TokenStream的最后,则将其转换为英文数字。否则就让它成为。
实施例。 “Something III”>>> “东西3”。 但是“III Something”>>> “III Something”(与III相同并不是最后一次)
我究竟如何在Lucene中使这个逻辑工作?
P.S。 input.incrementToken()似乎首先返回true,然后对WhitespaceTokenizer生成的TokenStream中的每个术语返回false。
答案 0 :(得分:0)
是否可以获得更多细节?这段代码?
我想你已经看过了这个:
http://lucene.apache.org/core/3_6_0/api/all/org/apache/lucene/analysis/TokenStream.html
说:
“消费者(即IndexWriter)使用此方法将流推进到下一个令牌”
你的incrementToken第二次返回false是正常的,因为你下面没有任何空格。
你必须用end()循环来知道字符串何时完成(请原谅我的法语,我不知道怎么写它。)