それぞれ1つのパーティションしかカバーしていない複数のインデックスがある場合、Luceneでは、なぜ異なるインデックスで同じ検索が異なるスコアで結果を返しますか?異なるサーバーの結果が正確に一致します。Luceneスコアの結果
私が検索した場合、すなわち:
- 名 - ジョン・スミス
- DOB - 1934年11月11日
パーティション0は0.345
のスコアを返しますパーティション1は、0.337
のスコアを返します名前とDOBの両方が正確に一致します。
それぞれ1つのパーティションしかカバーしていない複数のインデックスがある場合、Luceneでは、なぜ異なるインデックスで同じ検索が異なるスコアで結果を返しますか?異なるサーバーの結果が正確に一致します。Luceneスコアの結果
私が検索した場合、すなわち:
パーティション0は0.345
のスコアを返しますパーティション1は、0.337
のスコアを返します名前とDOBの両方が正確に一致します。
scoringには、Inverse Document Frequency(IDF)が含まれています。 「John Smith」という用語が1つのパーティションにある場合は、0回、100回、パーティション1では1回です。ジョン・スミスを検索するスコアは、用語がより少ないため、パーティション1での検索が高くなります。
これを回避するには、インデックスをすべてのパーティションに配置する必要があります。そうしないと、IDFを上書きする必要があります。
私が完全に間違っていない場合、スコアはインデックス上で決定されるためです。あなたが別のインデックス(インデックス付けされた以上/以下または異なるデータ)を持っている場合
、スコアが異なります:
http://lucene.apache.org/core/3_6_0/scoring.html
(警告:数学:-)を含みます)
更新されたリンク: http://lucene.apache.org/java/2_4_0/scoring.html –
あなたがかもしれませんまた、explain()
methodの出力とその結果のExplanation
objectの出力に興味があります。これにより、物事がどのように採点されているかを知ることができます。
また、すべてのインデックスからマルチサーチを構築することもできます。 –