如何使用dismax或edismax来增强SOLR中的查询?

时间:2014-02-20 11:09:56

标签: search solr edismax dismax solr-boost

我是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,但这只会返回GB市场。

我应该如何构建此查询以获得我想要的结果?

1 个答案:

答案 0 :(得分: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。这意味着,即使有多个结果,您也只能得到一个结果。