Lucene TokenStream

时间:2012-07-19 20:17:54

标签: java lucene

我对lucene标记化过程有一个基本问题:

TokenStream tokenStream = analyzer.tokenStream(fieldName, reader);    
TermAttribute termAttribute = tokenStream.addAttribute(TermAttribute.class);

什么是termAttribute用于什么以及tokenStream.addAttribute(TermAttribute.class)做什么?

谢谢!

1 个答案:

答案 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