2014-02-20 57 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。这意味着即使有不止一个结果,你也只会得到一个结果。