2012-06-01 134 views
4

我正在查詢solr服務器的位置。這些位置文件還有一個包含US,GB,DE等值的字段「country_code」...Solr根據字段值提升結果

在某些情況下,我想通過特定的國家代碼提高結果,以便能夠按國家/地區排列我的結果的優先級。

例如:

?q=york 

比方說,用戶是從英國和正在搜索紐約......此刻他發現一些約克斯首先在美國,然後是一個在英國。

我希望能夠指定這個查詢英國的結果應該是最重要的。我發現,這應該通過dismax和BQ,這樣的事情是可能的:

?q=york&dismax=true&bq=country_code:GB^20.0 

但符合市場預期,紐約現在從危地馬拉(COUNTRY_CODE GT)在頂部,在GB的有沒有不工作可見。

請幫助;-)

+0

您能否在查詢中包含相關性結果? – ajreal

+0

你是指結果的分數?沒有dismax美國的結果有1.7357568的得分,GB有1.7085013。隨着dismax約克在危地馬拉有2.067986和加拿大的第二個結果有2.067986 – Cornelius

回答

5

好吧,我做了什麼與dismax在我的問題是工作,我不得不提升值的方式太低。將它從20改爲20000,它工作得很好。

+0

謝謝!這對我來說已經適用了我多年撓頭了!在文檔中,我只能看到使用的值很低。 –

6

dismax的bq參數是累加性的,這意味着它增加了最終得分。在新的edismax解析器中有一個提升參數,它將提升函數值與最終得分相乘,即edismax boost