2

lucene のトークン化プロセスに関する基本的な質問があります。

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

termAttribute は何に使用され、tokenStream.addAttribute(TermAttribute.class) は何をしますか?

ありがとう!

4

1 に答える 1

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を参照してください。

于 2012-07-20T05:45:09.570 に答える