1

Lucene.Net MoreLikeThis クエリを実装しようとしていますが、インデックスを検索するためにドキュメント内で興味深いものを見つけることができないようです。

私のシナリオでは、ユーザーが検索結果の Web ページで [More Like This] リンクをクリックすると、クエリ文字列にドキュメント ID が渡されます。私の Lucene.Net コードは次のようになります。

var similarSearch = new MoreLikeThis(reader);
similarSearch.SetFieldNames(new[] { "Place", "Subject", "Description", "Name", "Town", "Occupation" });
similarSearch.MinWordLen = 3;
similarSearch.Boost = true;

var terms = similarSearch.RetrieveInterestingTerms(docid);
var doc = reader[docid];

var searchQuery = similarSearch.Like(docid);

実行後。terms 変数は空の配列で、doc 変数にはドキュメントが含まれ、searchQuery には句がありません。クエリを使用して検索を実行すると、ドキュメントが返されません。

私の結論は、リーダーからドキュメントを取得することはできますが、MoreLikeThis オブジェクトはクエリを構築するためのものを見つけることができないということです。

理由はありますか?

4

1 に答える 1

3

MoreLikeThis オブジェクトに、Analyzer、MinTermFreq、および/または MinDocFreq のパラメーターを 1 つ以上設定する必要があると思います。

私は同じ問題を抱えていました - 結果が返されませんでした。上記のパラメーターを設定すると (両方の最小値を 1 に設定してみてください)、うまくいきました。

于 2013-12-06T08:38:41.207 に答える