8

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

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

我可以按顺序查询文档 5、3、10、6 的 solr 吗?

4

1 回答 1

9

使用提升查询

您可以为此使用 bq 参数(Boost Query),然后按分数排序,这是默认设置。

q=id:5+OR+id:3+OR+id:10+OR+id:6&bq=id:5^4+id:3^3+id:10^2

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

关于参数的一些参考

使用术语提升

如果您使用的是标准请求处理程序或 (e)DisMax,这在任何情况下都有效

q=id:5^4+OR+id:3^3+OR+id:10^2+OR+id:6

这利用了 Term Boosting,在主题Boosting a Term with ^下方的参考文档中对此进行了解释。逻辑和上面一样。

于 2013-11-07T07:52:52.427 回答