5

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

在某些情况下,我想用特定的国家代码来提升结果,以便我能够按国家/地区优先考虑我的结果。

例如:

?q=york

假设用户来自英国并且正在搜索约克……此时他首先在美国找到了一些约克,然后在英国找到了约克。

我希望能够为这个查询指定英国的结果应该是最重要的。我发现这应该可以通过 dismax 和 bq 实现,如下所示:

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

但这并没有按预期工作,现在来自危地马拉的约克(国家代码 GT)位居榜首,而英国的则看不到。

请帮忙 ;-)

4

2 回答 2

7

好的,我在问题中对 dismax 所做的工作是有效的,只是提升值太低了。将其从 20 更改为 20000,它工作得很好。

于 2012-06-06T13:34:23.397 回答
7

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

于 2012-06-06T17:46:54.687 回答