1

Lucene.net を正しく呼び出しているかどうかわかりません。ドキュメントをそれ自体と比較するために MoreLikeThis 関数を呼び出そうとしていますが、スコアが 0.3174651 しか得られませんが、スコアは 1.0 になるはずです。私は間違った期待を期待していますか?

これは私のコードです:

                int docId = hits[i].Doc;
                var query2 = mlt.Like(docId);
                TopScoreDocCollector collector = TopScoreDocCollector.Create(100, true);
                searcher.Search(query2, collector);
                ScoreDoc[] hits2 = collector.TopDocs().ScoreDocs;
                var result = new List<string>();
                for (int k = 0; k < hits2.Length; k++)
                {
                    docId = hits2[k].Doc;
                    float score = hits2[k].Score;
                }

私は何か間違ったことをしていますか?

4

1 に答える 1

2

あなたが間違っている唯一のことは、Lucene スコアがパーセンテージであると考えていることです。そうではありません。

クエリのドキュメント スコアは、その単一のクエリのコンテキスト内での一致の強さを比較するために使用されます。結果の並べ替えには非常に効果的ですが、パーセンテージではなく、一般的にユーザーへの表示には適していません。

于 2014-06-10T00:03:56.903 に答える