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

如何基于值对条件查询Elasticsearch文档?

Elasticsearch 查询匹配指定键值对的文档

要检索出Identifiers字段中同时包含foo: val1和bar: val2的文档,可以使用**布尔查询(bool query)结合精确匹配查询(term query)**实现,这是最直接的方案。

查询示例代码

{
  "query": {
    "bool": {
      "must": [
        { "term": { "Identifiers.foo": "val1" } },
        { "term": { "Identifiers.bar": "val2" } }
      ]
    }
  },
  "_source": ["messageId"] // 可选,仅返回所需字段,减少数据传输量
}

关键说明

  • bool.must:确保数组内所有查询条件同时满足,也就是必须同时匹配foo=val1和bar=val2两个键值对。
  • term查询:用于精确匹配字段的原始值,完全适配这种明确的键值对匹配场景。
  • _source:如果只需要获取messageId,添加该参数可过滤返回字段,提升查询效率。

如果你的Identifiers字段被映射为嵌套类型(nested),则需要改用nested查询处理:

{
  "query": {
    "nested": {
      "path": "Identifiers",
      "query": {
        "bool": {
          "must": [
            { "term": { "Identifiers.foo": "val1" } },
            { "term": { "Identifiers.bar": "val2" } }
          ]
        }
      }
    }
  },
  "_source": ["messageId"]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:35:16