質問

Lucene では、それぞれ 1 つのパーティションのみをカバーする複数のインデックスがある場合。異なるインデックスで同じ検索を行うと、異なるスコアの結果が返されるのはなぜですか?異なるサーバーからの結果は正確に一致します。

つまりを検索した場合:

  • 名前 - ジョン・スミス
  • 生年月日 - 1934 年 11 月 11 日

パーティション0 0.345 のスコアが返されます

パーティション1 0.337 のスコアが返されます

どちらも名前と生年月日が正確に一致します。

正しい解決策はありません

他のヒント

得点 Inverse Document Frequency (IDF) が含まれています。「John Smith」という用語が 1 つのパーティションにある場合は 0 回、100 回、パーティション 1 にある場合は 1 回です。John Smith の検索スコアは、用語が希少であるため、パーティション 1 での検索の方が高くなります。

これを回避するには、すべてのパーティションにわたってインデックスを作成するか、IDF をオーバーライドする必要があります。

完全に間違っていなければ指数で点数が決まるからです。

インデックスが異なる場合 (インデックス付けされたデータが多い/少ない、または異なる)、スコアは異なります。

http://lucene.apache.org/core/3_6_0/scoring.html

(警告:数学が含まれています:-))

の出力にも興味があるかもしれません。 explain() 方法, 、そしてその結果 Explanation 物体, これにより、物事がどのようにスコアリングされるのかがわかります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top