4

私はSolrでインデックスを作成し、キーワードで検索したり、ファセットを作成したり、ファセットをクエリしたりすることができました。これはすべてうまく機能しています。所定のフィールドを検索するように、dismaxクエリを使用して検索を実装しました。

ただし、私の結果は、キーワードの関連性のみによって計算されているように見えるスコアでソートされて戻ってきています。フィールドにあらかじめ決められた値があるスコアを調整したいと思います。私はブーストクエリとブースト関数でこれを行うことができると思いますが、ここのドキュメント:

http://wiki.apache.org/solr/DisMaxRequestHandler#head-6862070cf279d9a09bdab971309135c7aea22fb3

特に役に立ちません。検索にbq引数を追加してみました:

&bq=media:DVD^2

(はい、これは映画のインデックスです!)しかし、私がどんどん追加し始めると、私は見つけます:

&bq=media:DVD^2&bq=media:BLU-RAY^1.5

ネガティブな結果が見つかりました。たとえば、DVDであるが、BLU-RAYではない映画は、スコアにマイナスの影響を受けます。結局、すべてが均等になり、ブーストを開始する前のスコアになりました。

私はこれを間違っているに違いありません、そして「ブースト機能」がどこかに来るのだろうかと思います。ブーストを正しく使用する方法について何かアイデアはありますか?

4

3 に答える 3

6

これは少し遅れており、探しているものがすでにあるように見えますが...

ブースト関数(希望する結果から判断すると、そうなるべきだと思います) に興味がある場合は、bf引数ではなく引数を調べてbqください。

bf 引数を次のように設定してみてください

media:DVD^2 media:BLU-RAY^1.5

それはあなたが望むものを達成できると思います。

于 2010-06-18T17:27:57.797 に答える
3

どうやらこれは、DVD であるが BLU-RAY ではない映画がスコアに悪影響を受けるのは正常なことのようです。これは、追加する制約が多いほど、queryNorm 値が減少し、すべてのスコアにこの値が乗算されるためです。

于 2009-06-06T19:13:06.043 に答える
-1

クエリ時ではなく、インデックス時にブーストを適用する必要があるようです。したがって、インデックスに追加するドキュメントを準備するときは、DVD の場合は 2 倍、Blu-Ray の場合は 1.5 倍にします。

于 2009-05-04T15:05:25.543 に答える