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

Elasticsearch:按ID查找文档并基于查询字符串高亮关键词

Elasticsearch 按指定ID查询并高亮匹配术语的正确写法

你之前的查询失效是因为bool查询的must参数需要接收数组而非单个对象——你把query_string和term查询直接塞在了同一个must对象里,语法错误导致查询不生效。

正确的写法应该把两个查询放进must数组中,这样Elasticsearch会先通过_id精准定位到目标文档,再在该文档内执行查询字符串匹配并高亮,完全不会出现扫描数百万文档的低效情况:

{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "red*",
            "fields": ["text", "title"]
          }
        },
        {
          "term": {
            "_id": "fda72434fa172"
          }
        }
      ]
    }
  },
  "highlight": {
    "fields": {
      "text": {},
      "title": {}
    }
  }
}

补充说明:如果目标文档的ID匹配,但内容不符合查询字符串,查询结果会是空,这完全符合“仅返回ID匹配且内容命中查询词的文档并高亮”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:33:19