2009-07-17 2 views
3

複数のPCで複数のルーキーインデックス(レプリカではない)があるとします。Lucene multiple indexes:文書のスコアを標準化しますか?

私は各インデックスを照会し、結果をマージします。 スコア(関連性)でソートできるように、ドキュメントスコアを正規化する方法はありますか?

私が正規化をしない限り、インデックスAのドキュメントAのスコアはインデックスBのドキュメントBと比較できません....そうではありませんか?

おかげ Roey

答えて

4

まず、Lucene Similarity Documentationを研究しています。そこにあるすべての要因のうち、1つのインデックスから別のインデックスに異なるのは、inverse document frequency (idf)です。

Lukeまたはデバッガを使用して、異なるインデックスのidfsの影響を確認することをお勧めします。 これはわずかな影響しかないことがあります。

ここにはa discussion about using a global idf、ここでは - Wiki page about distributed search design in Solrです。私は問題はまだ解決されていないと信じています。

Luceneスコアリングは単純な正規化には適していません。できるだけランダムに文書を配布してから、2つのインデックスのヒット率を比較することをお勧めします。

+1

+1ランダムに文書を配布する。これが確かに問題であることを確認する必要があります。ほとんどの場合、インデックス間のDF値が異なると、実際にあなたを傷つけることはありません。 – bajafresh4life

+0

これは古い答えですが、いくつかのリンクがわかっているだけです。 –

+0

@AndyMcCluggage - 私は現在のLuceneバージョンへの壊れたリンクを更新しました。 Luceneのバージョンが現在のバージョンに取って代わるまで、それはあなたに1年ほどを与えるはずです。 –

-1

インデックスXとYのドキュメントAのスコアを比較するために使用します。x = score(A,X)/max score of any document that is a hit for search on index Xy = score(A,Y)/max score of any document that is a hit for search on index Yを計算します。

xとyの両方が0と1の間になりました。最終スコアを得るためにxとyを追加するだけです。

これは簡単なアプローチです。あなたのコメントを聞きたいと思います。

しかし、なぜ2つの異なる文書のスコアを追加したいのですか?使用事例?

+0

私はあなたがその質問を誤解していると信じています。問題は、結果セット全体でスコアを正規化する方法でした。これは、一連の索引全体で検索を行い、最も関連性の高い結果を表示するのに便利です。懸念されるのは、各指標の内容が結果の得点に影響を与えることです。索引Xがキーワード "motorcycle"の頻度が低い場合、そのキーワードを含む文書を高く評価する可能性があります。同一の検索をインデックスYとマージすると、そのキーワードの頻度が高いと言えますが、Xのドキュメントは、Yのより関連性の高いドキュメントよりも高いスコアが付けられます。 –

関連する問題