4

インデックスに「料金」フィールドがあります。料金の値が0に等しくない結果をブーストしたい。これにbqパラメータを使用してみましたが、うまくいきませんでした。

&bq=charges:"0"^-1

上記を使用してみましたが、400エラーレポートが表示されました。

4

3 に答える 3

7

@harmstylerによる回答に加えて、
負にブーストする代わりに、ゼロなしの値を正にブーストすることができます(電荷が整数フィールドの場合)。

bq=charges:[1 TO *]^10
于 2012-12-11T04:33:52.680 に答える
7

これは古い投稿ですが、完全には更新されていません。現在、ネガティブブーストがサポートされています。

以下の ネガティブブーストに関する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の正のスコアになります

于 2018-09-14T08:41:17.787 に答える
5

負のブーストはSolrではサポートされていません。ただし、そうは言っても、非常に少ない数でコンテンツをブーストして、マイナスのブーストの効果を与えることができます。^1デフォルトのブーストと見なされることを忘れないでください。だから、&bq=charges:"0"^1と同じ&bq=charges:"0"です。「負のブースト」を作成したい場合は、を試してください&bq=charges:"0"^0.8。完全なドキュメントについては、この記事を参照してください

于 2012-12-10T20:46:15.143 に答える