不是通用排序字段,而是说我希望按该顺序返回的文档 ID 列表。
示例:document_ids = [5, 3, 10, 6]
我可以按顺序查询文档 5、3、10、6 的 solr 吗?
不是通用排序字段,而是说我希望按该顺序返回的文档 ID 列表。
示例:document_ids = [5, 3, 10, 6]
我可以按顺序查询文档 5、3、10、6 的 solr 吗?
您可以为此使用 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 ^下方的参考文档中对此进行了解释。逻辑和上面一样。