通过场值提升Solr的结果

时间:2012-06-01 10:17:27

标签: php apache sorting solr

我正在查询solr服务器的位置。这些位置文档还有一个字段“country_code”,其中包含US,GB,DE,......等值。

在某些情况下,我希望使用特定的国家/地区代码来提高结果,以便我能够按国家/地区对结果进行优先排序。

例如:

?q=york

让我们说用户来自英国并正在寻找约克......目前他首先在美国找到一些约克,然后在英国找到约克。

我希望能够为此查询指定英国结果应该在最前面。我发现这应该可以通过dismax和bq实现,比如:

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

但是这没有按预期发挥作用,现在来自危地马拉的约克(country_code GT)位居榜首,而GB则不会被看到。

请帮助; - )

2 个答案:

答案 0 :(得分:7)

dismax的bq参数是加法的,这意味着它会增加最终得分。新的edismax解析器中有一个boost参数,它将boost函数值乘以最终得分edismax boost

答案 1 :(得分:6)

好吧,在我的问题中我用dismax做的是工作,我的提升值太低了。将它从20改为20000并且工作得很好。