関口宏司のLuceneブログ

OSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
<< boostをゼロにして検索すると・・・ | main | MemoryIndexを使う(初心者向き) >>
Tokenがdeprecatedに!(2.9)
Lucene 2.9ではTokenクラスがdeprecatedとなる予定である。Tokenクラスには直前の単語からの位置増分、その単語の開始と終了位置、単語のタイプおよびPayloadという情報が入っている。TokenはReaderを入力とするTokenizerからTokenStreamが出力され、TokenStreamのnext()メソッドの呼び出しで取り出せるものである。

この状態だとLucene 3.0で目指しているFlexible Indexingと相性が良くない。もっと軽量のインデックスにしようとして単語の位置情報などを不要としても、AnalyzerのほうでTokenを出力している限り、不要な情報を出力するためにCPUが食われてしまうことになる。

そこでLucene 2.9ではTokenをdeprecatedとし、Tokenは単語のテキスト情報まで含めて属性の集合のような扱いにしよう、ということになった。

これまでの次のようなプログラムは:



final String str = "aaa bbb ccc ddd";
Tokenizer tokenizer = new WhitespaceTokenizer( new StringReader( str ) );
while( true ){
Token token = new Token();
token = tokenizer.next( token );
if( token == null ) break;
System.out.println( token );
}
tokenizer.close();



(実行結果)


(aaa,0,3)
(bbb,4,7)
(ccc,8,11)
(ddd,12,15)



Lucene 2.9では次のようになる:



final String str = "aaa bbb ccc ddd";
WhitespaceTokenizer.setUseNewAPIDefault( true );
Tokenizer tokenizer = new WhitespaceTokenizer( new StringReader( str ) );
while( tokenizer.incrementToken() ){
TermAttribute ta = (TermAttribute)tokenizer.addAttribute( TermAttribute.class );
PositionIncrementAttribute pia = (PositionIncrementAttribute)tokenizer.addAttribute( PositionIncrementAttribute.class );
OffsetAttribute oa = (OffsetAttribute)tokenizer.addAttribute( OffsetAttribute.class );
TypeAttribute tya = (TypeAttribute)tokenizer.addAttribute( TypeAttribute.class );
System.out.println( ta + ", " + pia + ", " + oa + ", " + tya );
}
tokenizer.close();



(実行結果)


term=aaa, positionIncrement=1, start=0,end=3, type=word
term=bbb, positionIncrement=1, start=4,end=7, type=word
term=ccc, positionIncrement=1, start=8,end=11, type=word
term=ddd, positionIncrement=1, start=12,end=15, type=word


| 関口宏司 | Luceneクラス解説 | 11:22 | comments(1) | trackbacks(0) |
最終的に、Tokenはdeprecatedにならずに、必要なAttributeSourceをまとめたユーティリティクラスとして残ることとなった。
| 関口 | 2009/09/21 9:55 PM |









トラックバック機能は終了しました。
+ Solrによるブログ内検索
+ PROFILE
 123456
78910111213
14151617181920
21222324252627
282930    
<< June 2020 >>
+ LINKS
検索エンジン製品 - 比較のポイント
商用検索エンジンを購入した企業担当者は読まないでください。ショックを受けますから・・・
>>製品比較 10のポイント
+ Lucene&Solrデモ
+ ThinkIT記事
+ RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
+ RECOMMEND
Lucene in Action
Lucene in Action (JUGEMレビュー »)
Erik Hatcher,Otis Gospodnetic,Mike McCandless
FastVectorHighlighterについて解説記事を寄稿しました。
+ RECOMMEND
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ MOBILE
qrcode
+ SPONSORED LINKS