我对lucene标记化过程有一个基本问题:
TokenStream tokenStream = analyzer.tokenStream(fieldName, reader);
TermAttribute termAttribute = tokenStream.addAttribute(TermAttribute.class);
什么是termAttribute用于什么以及tokenStream.addAttribute(TermAttribute.class)做什么?
谢谢!
答案 0 :(得分:3)
TermAttribute包含令牌的文本。 addAttribute(TermAttribute.class)将返回一个TermAttribute实例(如果没有,则会创建)。
说,您也对令牌的位置增量信息感兴趣,那么您还会说以下内容:
PositionIncrementAttribute posIncrAtt = addAttribute(PositionIncrementAttribute.class);
使用TermAttribute和PositionIncrementAttribute的实例,您现在可以通过以下方式访问/更改令牌文本和位置增量信息:
termAttribute.buffer()
posIncrAtt.getPositionIncrement()
posIncrAtt.setPositionIncrement()
有关详细信息,请参阅http://lucene.apache.org/core/3_6_0/api/core/org/apache/lucene/analysis/package-summary.html