2012-12-31 31 views
0

我正在使用Solr在我的產品目錄中搜索產品。 我試圖給予「書籍」類別的產品較低的分數,但沒有成功。 我也嘗試過濾「書籍」類別的結果,但我仍然得到它們,所以我認爲我做錯了什麼。 分類字段已編入索引。針對特定類別降低Solr的分數

這是我提出的要求的一個嘗試(出很多其他的嘗試):

http://localhost:8080/solr/collection1/query?q=iphone+4s&rows=4&fq=price:[*+TO+500]&debugQuery=on&fq=not(query(category:Books)) 

我使用BF參數有負面影響,也試圖對「書」,仍然沒有運氣。

當我有「書籍」和其他類別時,我應該怎麼做才能降低分數?以及如何過濾特定類別的結果?

回答

1

你可以試試下面的代碼添加到您的要求: -

&bq=(*:* -category:Books)^1000000 

數百萬指定一個非常大的數字,這將提高那些記錄類別不是書籍。

所以,你的代碼變爲: -

http://localhost:8080/solr/collection1/query?q=iphone+4s&rows=4&fq=price:[*+TO+500]&debugQuery=on&bq=(*:* -category:Books)^1000000 

過濾結果與特定類別,下面的代碼添加到您的要求: -

&fq=category:Books 

上面會顯示所有記錄類別是書。

讓所有記錄類別不是書籍,請嘗試以下操作: -

&fq=(*:* -category:Books) 
+0

的感謝!很棒!我怎麼能做到多個類別?不是書籍和雜誌?只需bq =(*:* - 類別:書籍或雜誌)^ 1000000 – ItayD

+1

您將不得不爲此添加多個bq參數。 &bq =(*:* -category:Books)^ 100000&bq =(*:* -category:Magazines)^ 1000000 – Max