MondayLuceneとSennaの比較:特徴語検索Sennaではクエリー書式に"*S"を指定すると、指定した文書(文字列)に含まれる「特徴語」を含む文書を検索できる。Luceneでは同様のことはcontribのMoreLikeThisで可能である。Luceneの通常の検索プログラムでは、検索結果(文書一覧)はsearcherにqueryを渡して取得する。次のような具合である:searcher(query)MoreLikeThisではqueryの代わりに文書を渡して文書に関連した文書を取得する。次のような具合だ:searcher(doc)しかし実際にはこのようなメソッドはない。searcher()はqueryを取るのみである。そこでMoreLikeThisの出番となる。MoreLikeThisにはlike()メソッドというのがあり、like()メソッドに文書を渡すと、その文書の「特徴語」からなるquery(BooleanQuery)を生成してくれる。次のように書くことができる:searcher(MoreLikeThis.like(doc))like()メソッドが文書から取り出す特徴語は、Senna同様、文書の頻出語である。容易に想像できるとおり、頻出語にはゴミが非常に多く混ざってしまう。そこでLuceneのMoreLikeThisでは、ストップワードを指定したり、Analyzerを指定したり、その他ゴミ語を取り除くための各種setterメソッドが用意されている。queryを使って検索するAnalyzerを指定できるので、やろうと思えば類義語展開/正規化もできる。これにより適切な関連文書を提示できる。|コメントいつも、お世話になっています。このmorelikethisの機能を使いたいと思っています。現在のluceneバージョンは2.3.2です。importして使いたいのですが、jarファイルからmorelikethisを探そうとしても存在しません。