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

Elasticsearch script_fields如何访问文档得分?

在Elasticsearch的script_field中访问文档得分的方法
  • 直接使用_score或doc['_score'].value无法访问文档得分的原因:

    • _score不是Painless脚本默认直接可见的变量,直接引用会触发编译错误
    • doc对象仅用于访问文档映射中定义的字段,_score不属于文档字段,因此doc['_score'].value会提示字段不存在
  • 正确的访问方式是通过params._score来获取文档得分,修改后的查询代码如下:

GET /_search
{
  "query": { "match_all": {} },
  "script_fields": {
    "my_score": {
      "script": {
        "lang": "painless",
        "source": "return params._score * 2"
      }
    }
  }
}
  • 说明:params对象包含了查询的上下文参数,其中就包含当前文档的得分_score,通过params._score即可在script_field的脚本中正常访问并进行计算。

内容的提问来源于stack exchange,提问作者Georgy Nevsky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:54:53