可以使用bool查询和must子句来实现:

{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "attrs",
            "query": {
              "match": {
                "attrs.v": 2001
              }
            }
          }
        },
        {
          "nested": {
            "path": "attrs",
            "query": {
              "match": {
                "attrs.v": 3001
              }
            }
          }
        }
      ]
    }
  }
}

以上查询首先使用nested查询来匹配attrs.v等于2001的子文档,然后使用nested查询来匹配attrs.v等于3001的子文档。最后将这两个nested查询放在bool查询的must子句中,表示必须同时匹配两个子句

ES搜索有如下结构: id 1 attrs k 1 v 1001 k 2 v 2001 k 3 v 3001 id 2 attrs k 1 v 1001

原文地址: https://www.cveoy.top/t/topic/c2lv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录