質問
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
物体, これにより、物事がどのようにスコアリングされるのかがわかります。
所属していません StackOverflow