2014-02-20 86 views
0

我是SOLR新手,對我很感興趣。因此,世界各國都有一大批酒店,您可以從任何地點搜索它們。例如,在東京可能會有一家酒店,我可能會在倫敦甚至東京或紐約尋找這家酒店。如何使用dismax或edismax來提升SOLR中的查詢?

我試圖創建的查詢是搜索酒店並返回基於我所在的市場/國家/地區的酒店,但也會返回來自不同市場/國家/地區的結果。例如,如果我在英國,市場將是GB,並且它將返回基於GB的結果,該結果應該放在結果中最高的位置,同時包括JP(日本)等其他市場,但結果會降低。

我到目前爲止的查詢是這樣的(不工作):

q=&fl=*&rows=1&sort=query({!qf=market v='GB'}) desc, 
totalPrice asc 
&fq=hotelCheckInDate:[2014-02-20T00:00:00.000Z TO 2014-07-20T23:59:59.9999Z] 
AND hotelCityCode:PAR 

我可以很容易地做一個market:GB但這僅返回國標市場。

我應該如何構造這個查詢來獲得我想要的結果?

+0

我想你已經問過類似的問題http://stackoverflow.com/questions/21876763/how-can-i-boost-a-result-in-solr-based-on-a-parameter – buddy86

回答

1

希望這個查詢將有助於你得到的結果預計

q=*:*&defType=edismax&bq=market:GB^2&fq=hotelCheckInDate:[2014-02-20T00:00:00.000Z TO 2014-07-20T23:59:59.9999Z] AND hotelCityCode:PAR 

在您的查詢,你已經提到rows=1。這意味着即使有不止一個結果,你也只會得到一個結果。