首页 > 解决方案 > SOLR boost查询顺序错误

问题描述

我想从 SOLR 检索一些文档并将提升传递给该字段,以便它们按照我请求它们的顺序返回(分别是 Web 请求请求它们)。因此,我为所需的 id 添加了提升:

q=myfield:"9125129"^10 OR 
  myfield:"9125417"^9 OR 
  myfield:"9124611"^8 OR 
  myfield:"9126980"^7 ...
fl=myfield
wt=csv

不幸的是,这不会以所需的顺序返回文档:

myfield
9125129
9125417
9126980
9124611

如果我将查询更改为

q=myfield:"9125129"^9 OR 
  myfield:"9125417"^8 OR 
  myfield:"9124611"^7 OR 
  myfield:"9126980"^6 ...
fl=myfield
wt=csv

(仅用于测试),返回正确的顺序:

myfield
9125129
9125417
9124611
9126980

所以看起来 SOLR 不喜欢两位数的提升值?但根据规范,这应该不是问题。那么这里的实际问题是什么,我如何请求超过 10 个文档的提升字段?

使用的 SOLR 版本:4.10.4

标签: solrsolr-boost

解决方案


我找到了一份文档说明:“如果需要绝对排序,可以使用非常高的提升。” 事实上,如果我分配了非常分散的提升值(例如 1000、900、80、7),那么排序顺序是正确的。但我想这是开放的讨论,这是否是一个好的做法,应该这样做。似乎有点像猜测和使用 SOLR 来做它不是为它设计的东西。

https://cwiki.apache.org/confluence/display/solr/SolrRelevancyCookbook#SolrRelevancyCookbook-BoostingRankingTerms


推荐阅读