インデックスに「料金」フィールドがあります。料金の値が0に等しくない結果をブーストしたい。これにbqパラメータを使用してみましたが、うまくいきませんでした。
&bq=charges:"0"^-1
上記を使用してみましたが、400エラーレポートが表示されました。
@harmstylerによる回答に加えて、
負にブーストする代わりに、ゼロなしの値を正にブーストすることができます(電荷が整数フィールドの場合)。
bq=charges:[1 TO *]^10
これは古い投稿ですが、完全には更新されていません。現在、ネガティブブーストがサポートされています。
以下の ネガティブブーストに関するSolrドキュメントから:
負のクエリブーストは、「クエリ」オブジェクトレベルで長い間サポートされてきました(一致するドキュメントのスコアが負になります)。これで、QueryParsersも更新されてこれを処理できるようになりました。
以下で説明するように、一部resulting in negative scores for matching documents
は常に正しいとは限りません。
使用例:コレクション名がproduct_collection
であり、特定のブランドの製品を埋めたい(ネガティブブースト)場合:
http://localhost:8983/solr/product_collection/select?q=shoes&bq=brand:puma^-2&defType=dismax
このクエリは次のように解析されます。
"parsedquery_toString": "+((keyword:shoes)^1.0) () (brand:puma)^-2.0"
この場合、-2
係数は一致のtf-idfスコアに乗算される(brand:puma)
ため、を含むドキュメントのスコアは低くなりますbrand puma
。
ただし、ブーストクエリに負の要素を追加することは、ドキュメントの最終スコアが常に負になることを意味するわけではありません。たとえば、ドキュメントのkeyword:shoes
一致のtf-idfスコアがであり、結果3.0
のtf-idfスコアがの場合でも、全体的な結果は1.5(正)になります。したがって、それに応じて負のブースト係数を使用します。brand:puma
-1.5
私自身のコレクションからのそのような例の1つ:
"\ n3.4329534 =合計:\ n 6.151505 =重量(キーワード:5786の靴) [SchemaSimilarity]、結果:\ n 6.151505 =スコア(doc = 5786、freq = 1.0 = termFreq = 1.0 \ n)、製品of:\ n 4.2804184 = idf、log(1 +(docCount --docFreq + 0.5)/(docFreq + 0.5))として計算from:\ n 199.0 = docFreq \ n 14417.0 = docCount \ n 1.437127 = tfNorm、(freqとして計算*(k1 + 1))/(freq + k1 *(1-b + b * fieldLength / avgFieldLength))from:\ n 1.0 = termFreq = 1.0 \ n1.2=パラメーターk1\n0.75=パラメーターb\n 7.7978773 = avgFieldLength \ n 2.0 = fieldLength \ n -2.7185516 = weight(brand:puma in 5786)[SchemaSimilarity]、結果:\ n -2.7185516 =スコア(doc = 5786、freq = 1.0 = termFreq = 1.0 \ n)、積:\ n-2.0=ブースト\n1.3592758 = idf、log(1+として計算(docCount --docFreq + 0.5)/(docFreq + 0.5))from:\ n 3704.0 = docFreq \ n 14422.0 = docCount \ n 1.0 = tfNorm、(freq *(k1 + 1))/(freq + k1)から計算:\ n 1.0 = termFreq = 1.0 \ n1.2=パラメータk1\n 0.0 =パラメータb(フィールドのノルムは省略)\ n "、
キーワードのスコア:靴= 6.151505
ブランドのスコア:プーマ= -2.7185516
全体的なスコアは3.4329534の正のスコアになります
負のブーストはSolrではサポートされていません。ただし、そうは言っても、非常に少ない数でコンテンツをブーストして、マイナスのブーストの効果を与えることができます。^1
デフォルトのブーストと見なされることを忘れないでください。だから、&bq=charges:"0"^1
と同じ&bq=charges:"0"
です。「負のブースト」を作成したい場合は、を試してください&bq=charges:"0"^0.8
。完全なドキュメントについては、この記事を参照してください。