2009-04-24 11 views

答えて

0

操作によって異なります。 OR(name:bill OR gender:male)のようにORを実行している場合は、2つのうち最大値をとります。あなたがANDをやっているなら、それは合計をします。

+0

あなたの答えが間違っています。 Shashikant Koreはそれを正しく得た。 –

3

Similarityクラスの得点の詳細を読むことができます。この方程式では、Fieldが実際にFieldを意味するとき、Documentを参照してパラメータが参照されます。したがって、用語頻度は、文書内の指定フィールドの用語の頻度です。これにより、複数のフィールドのクエリが自動的に処理されます。

上記のKenEの答えは間違っています。 (式にはMAX演算子はありません)フィールド上の各クエリのスコアは最終スコアに加算されます。クエリ(name:bill OR gender:male)の場合、結果は(name:bill)と(gender:男性)のスコアの合計です。典型的には、これらの基準を両方満たす文書は、(合計のために)より高い得点となり、出てくる。

0

Shashikant Koreは、各フィールドのスコアが合計されていると言うのは間違いありません。しかし、これはqueryNormcoordの要因が寄与する前にのみ当てはまります。最終的な得点が足りなくなる可能性はありません。

各スコアは、クエリごとに計算され、したがって(name:bill)(gender:male)、及び(name:bill OR gender:male)のそれぞれに異なるさqueryNorm係数が乗算されます。組み合わせクエリのqueryNormも、2つの単項クエリのqueryNormの合計にすぎません。したがって、各スコアをそのクエリのqueryNorm係数で除算すると、スコアは合計されます。

因子:coordも支払われる場合があります。デフォルトスコアラーはスコアに、一致した照会用語の割合を乗算します。したがって、すべての条件が一致するqueryNorm(またはcoordが無効)を考慮した上で、合計にのみ依存することができます。

explain機能を使用してスコアを計算する方法を正確に確認できます。これは、debugQuery=trueパラメータでSolrで利用できます。 Luceneのデフォルトの類似度スコアを使用して

0

、私はブールクエリを使用し、次のように、最終的な式を持っている:(申し訳ありません、それはlatexである)

score(q, d) = \sum_{f \in fields} \sum_{t \in query} idf(t, f) queryNorm(query) \times idf(t, f) tf(t, d, f) fieldNorm(f) 
+0

これはlucene 5_3_0に基づいています – vahid

関連する問題