3

私はsolr 4.1でedismaxランキングを使用しています。単一のクエリ文字列を指定していくつかのサブクエリを生成するクエリパーサーがあります。特定のランキングの詳細を (「debugQuery=on」を追加して) 見ていると、次のことがわかりました。

1> すべてのサブクエリのランクスコアが最初に追加されるように見えます 2> そして、この合計スコアと座標係数の乗算があります。coord factor は、一致したサブクエリの数の比率のようです。たとえば、クエリが 3 つのサブクエリになり、そのうちの 1 つだけがヒットした場合、座標係数は 1/3 になります。

1> 私の観察が正しいかどうか疑問に思っています。2>もしそうなら、これらの動作を次のように変更する方法があるかどうか:

1> サブクエリのスコアを合計する代わりに、最大スコアを取得します。2> 座標係数を無視します。

現在の solr 4.1 の実装がサポートされていない場合は、ソース コードを変更または参照として使用するためのポインターがあれば便利です。

4

1 に答える 1

3

動作を制御するパラメータを確認してください:-

タイブレーカー-

「0.0」の値は、クエリを純粋な「分離最大クエリ」にします。最大スコア サブクエリのみが最終スコアに寄与します。「1.0」の値は、クエリを純粋な「分離合計クエリ」にします。最大スコアのサブクエリが何であるかは問題ではなく、最終的なスコアはサブスコアの合計です。通常、低い値 (例: 0.1) が便利です。

座標-

Solr 1.4以前では、基本的にq.op=ORと同等にしたい場合はmm=0、q.op=ANDと同等にしたい場合はmm=100%に設定する必要があります。3.x およびトランクでは、mm のデフォルト値は q.op パラメーターによって決定されます (q.op=AND => mm=100%; q.op=OR => mm=0%)。デフォルトの演算子は schema.xml エントリの影響を受けることに注意してください。古いバージョンの Solr では、デフォルト値は 100% です (すべての句が一致する必要があります)。

mm 係数を削除して座標計算を削除し、タイを 0 に設定してスコアの最大値を考慮します。

于 2013-04-21T18:11:46.737 に答える