私はLucene(5.4.1)MoreLikeThisを使ってテキストをタグ付け(分類)しようとしています。これはうまくいくものですが、結果が悪くなっています。問題はQueryオブジェクトに関連していると思います。Luceneがクエリの用語を制限しています
この例では動作しますが、最高のトップドックは期待したものではありません。クエリオブジェクトをデバッグすると、content:erro
のみが表示されます。完全なポルトガル語のフレーズ(この例を参照)から、クエリはただ1つの単語で構成されていました。
私はストップワードまたは他の種類のフィルタを使用していません。
なぜluceneがクエリ用語としてerroをピッキングしているのですか?
は、
try (IndexReader idxReader = DirectoryReader.open(indexDir)) {
IndexSearcher indexSearcher = new IndexSearcher(idxReader);
MoreLikeThis mlt = new MoreLikeThis(idxReader);
mlt.setMinTermFreq(0);
mlt.setMinDocFreq(0);
mlt.setFieldNames(new String[] { "content" });
mlt.setAnalyzer(analyzer);
Reader sReader = new StringReader("Melhorias no controle de sessão no sistema qquercoisa quando expira, ao logar novamente no sistema é exibido o erro "xpto");
Query query = mlt.like("content", sReader);
TopDocs topDocs = indexSearcher.search(query, 3);
}