在solr中是否可以指定文档的顺序

dal*_*ore 8 solr

不是通用排序字段,而是说我希望按顺序返回的文档ID列表.

示例:document_ids = [5,3,10,6]

我可以按顺序查询solr以获取文档5,3,10,6吗?

che*_*ffe 10

使用Boost查询

您可以使用bq参数(Boost查询)进行此操作,然后按分数排序,这是默认值.

q=id:5+OR+id:3+OR+id:10+OR+id:6&bq=id:5^4+id:3^3+id:10^2
Run Code Online (Sandbox Code Playgroud)

正如您在bq参数中看到的那样,每个ID都会获得一个下降的提升值,直到最后一个 - 在您的情况下为6 - 不再获得任何提升.由于您按ID搜索,因此每个文档都具有相同的分数,因此以这种方式提升它们将获得您想要的排序顺序.

关于参数的一些参考

使用Term Boosting

如果您使用的是标准请求处理程序或(e)DisMax,则无论如何都适用

q=id:5^4+OR+id:3^3+OR+id:10^2+OR+id:6
Run Code Online (Sandbox Code Playgroud)

这使用了Term Boosting,下面的主题Boosting a Term with ^ 的参考文档中对此进行了解释.逻辑保持与上面相同.

  • 尼斯.一个更简单的语法是`q = id:(5 ^ 4 3 ^ 3 10 ^ 2 6)`假设默认布尔运算是OR (4认同)