You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenSearch中保留默认得分排序并设置二级排序规则?

在OpenSearch中保留相关性得分排序并添加二级排序条件

直接在sort参数的数组里把_score作为第一个排序规则,后面跟上你的二级排序字段即可,完全不需要关闭默认的相关性排序逻辑。

举个实际请求的例子,假设你想先按相关性得分降序排列,得分相同的文档再按create_time字段降序排序:

{
  "query": {
    "match": {
      "content": "你的搜索关键词"
    }
  },
  "sort": [
    { "_score": { "order": "desc" } },
    { "create_time": { "order": "desc" } }
  ]
}

原理很简单:

  • 不指定sort参数时,OpenSearch默认就是按_score降序排序;
  • 把_score明确放在排序数组的第一位,就能保留这个首要排序逻辑,后续的二级排序字段只会在得分相同的情况下生效。

另外你提到的track_score参数,它仅用于在返回结果中显示每个文档的相关性得分,和排序规则本身无关——如果你需要查看得分可以加上这个参数,但它不影响排序逻辑。

内容的提问来源于stack exchange,提问作者Bernardo SOUSA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:05:28