php - Solr 按字段值提升结果

标签 php apache sorting solr

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

在某些情况下,我想提高带有特定国家/地区代码的结果,以便我能够按国家/地区排列我的结果的优先级。

例如:

?q=york

假设用户来自英国并且正在搜索 York ... 目前他首先在美国找到了一些 York,然后在英国找到了。

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

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

但这并不像预期的那样有效,现在危地马拉的约克(国家代码 GT)位居榜首,GB 的就看不到了。

请帮忙;-)

最佳答案

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

关于php - Solr 按字段值提升结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10848441/

相关文章:

javascript - 按两个值对数组进行排序

java - 获取集合中 N 个最小的 [Comparable] 项

php - 用自适应支付取代 paypal express

php - 将两套MySQL多维数组的PHP mysql_fetch_assoc集合并为一个一维数组

javascript - ajax响应数据未定义

mysql - Apache:日志存储到 MySQL

php - 如何在网络服务器压力测试期间监控内存消耗?

php - 我想优化这个查询,用子查询创建新表 select 没问题,但问题是查询运行需要 30 分钟

apache - 在 mod_rewrite 中处理 '?'

sorting - 我怎么写比O(n!)更差的排序