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

如何使用elastic-builder构造带script_score的Elasticsearch查询体

你可以直接使用elastic-builder提供的scriptScoreQuery API构造目标结构,track_total_hits属于请求顶层参数,需要在requestBodySearch实例上配置,完整实现代码如下:

const esQuery = esb.requestBodySearch()
  // 配置顶层track_total_hits参数
  .trackTotalHits(true)
  .query(
    esb.scriptScoreQuery()
      // 配置script_score内部的查询条件
      .query(esb.boolQuery().must(esb.matchAllQuery()))
      // 配置自定义评分脚本
      .script(esb.script('source', '...my script...'))
  )
  .toJSON()

调用toJSON()方法后生成的结构和你需要的目标JSON完全一致。

补充说明:你之前使用的functionScoreQuery对应的是Elasticsearch的function_score查询类型,和你需要的script_score是完全独立的两类查询,自然生成的结构不匹配需求。

内容的提问来源于stack exchange,提问作者Adriel Tosi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:45:07