通过场值提升Solr的结果

Cor*_*ius 4 php apache sorting solr

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

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

例如:

?q=york
Run Code Online (Sandbox Code Playgroud)

假设用户来自英国并正在寻找约克......目前他首先在美国找到一些约克,然后在英格兰找到约克.

我希望能够指定对于此查询,英国结果应该在顶部.我发现这应该可以通过dismax和bq,类似的东西:

?q=york&dismax=true&bq=country_code:GB^20.0
Run Code Online (Sandbox Code Playgroud)

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

请帮忙 ;-)

小智 7

dismax的bq参数是附加的,这意味着它增加了最终得分.在新的edismax解析器中有一个boost参数,它将boost函数值与最终得分edismax boost相乘.


Cor*_*ius 6

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