0

Lucene/Solr スコアラーが OR 句の重みの合計を作成する理由。より多くの選択肢を持つ用語に向けてクエリ スコアリングのバランスを崩しています。クエリ用語の選択肢の最大の重みを持つ方が理にかなっているでしょうか?

以下に例を示します。

私はsolr管理インターフェースで実行しました:gucci(ハンドバッグまたは財布またはポケットブック)

[デバッグ] をクリックすると、解析されたクエリが期待どおりであることを確認できます。

"parsedquery":"text:gucci (text:handbag text:purse text:pocketbook)"

説明フィールドは、スコアラーが作成していることを示しています (ここでは少し簡略化しています)。

weight(gucci) + sum( weight(handbag) + weight(purse) + weight(pocketbook))

その結果、ハンドバッグ、財布、財布を含む結果は、グッチとハンドバッグを含む結果よりも高いスコアを持つことになります。これは直感に反すると思います。私にとって OR は、それらの用語が同等であることを意味しますが、それらがより重要であることを意味するわけではありません。さらに、クエリ ターム ブースティングを使用して、これを個別に行うこともできます。

Edismax を試してみましたが、同様の動作をします。

クエリ用語「重要性」を保持する OR 句を使用する方法はありますか?

4

1 に答える 1

0

DisjunctionMaxQuery分離にさまざまなブースト係数を使用して設定してみることができます。コンストラクターパラメーターを見てtieBreakMultiplierください-それはあなたが望むものを達成するのを助けることができます。ドキュメントの引用:

tieBreakerMultiplier <..> value <..>は、スコアの低いフィールドにある単語の10回の出現は、スコアの低いフィールドにある一意の単語と同じくらい良いことを示しています。

于 2013-03-19T15:59:36.140 に答える