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

Elasticsearch RequestError报错:bool.filter字段解析失败求助

问题原因及解决方案

你的ES查询报错是因为把带script_score的nested查询放到了bool.filter数组里。filter的作用仅为过滤文档,不参与任何得分计算逻辑,而script_score是专门用来计算文档相关性得分的查询类型,两者不能兼容。

修正方案(二选一)

方案1:保留余弦相似度得分,同时过滤其他条件

如果需要基于余弦相似度计算文档得分,同时用bot_id和file_uuid过滤文档,把nested查询移到bool.must中:

{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "bot_id": "embedding_test"
          }
        },
        {
          "terms": {
            "file_uuid": ["embedding_test"]
          }
        }
      ],
      "must": [
        {
          "nested": {
            "path": "nba",
            "query": {
              "script_score": {
                "script": {
                  "source": "cosineSimilarity(params.query_vector, doc['nba.embedding'].value) + 1.0",
                  "params": {
                    "query_vector": [1.0, 0.5, 0.2]
                  }
                }
              }
            }
          }
        }
      ]
    }
  },
  "size": 100,
  "min_score": 1.0
}

方案2:仅过滤符合余弦相似度条件的文档(不计算得分)

如果只是想筛选出余弦相似度达标的文档,不需要用它计算得分,把script_score换成script查询并放到nested.filter中:

{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "bot_id": "embedding_test"
          }
        },
        {
          "terms": {
            "file_uuid": ["embedding_test"]
          }
        },
        {
          "nested": {
            "path": "nba",
            "filter": {
              "script": {
                "source": "cosineSimilarity(params.query_vector, doc['nba.embedding'].value) + 1.0 >= params.min_score",
                "params": {
                  "query_vector": [1.0, 0.5, 0.2],
                  "min_score": 1.0
                }
              }
            }
          }
        }
      ]
    }
  },
  "size": 100
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:01:18