elasticsearch中如何使用AND运算符查询嵌套字段?

How to use AND operator in elasticsearch to query nested fields?

我在 elasticsearch 中有 2 个文档,结构如下:

文档 1:

{
  "specification": [
                    {
                     "name": "Processor",
                     "value": "Intel"
                    },
                    {
                     "name": "RAM",
                     "value": "2GB"
                    }
                   ]
}

Document 2:
{
  "specification": [
                    {
                     "name": "Processor",
                     "value": "Intel"
                    },
                    {
                     "name": "RAM",
                     "value": "3GB"
                    }
                   ]
}

我想获取具有值 intel 和 2GB(即)第一个文档的规范的文档。但是,当我尝试使用 must(AND 运算符)时,我一无所获。如果我使用 should (或运算符),我将同时获得这两个文件。谁可以帮我这个事?以下是我的查询..

{
  "query": {
    "nested": {
      "path": "specification",
      "query": {
        "bool": {
          "must": [

                {
                    "bool": {
                        "must": [
                            { "match": { "specification.name": "Processor" }},
                            { "match": { "specifications.value": "Intel" }}
                        ]
                    }
                },
                {
                    "bool": {
                        "must": [
                            { "match": { "specification.name": "RAM" }},
                            { "match": { "specifications.value": "2GB" }}
                        ]
                    }
                }
              ]
        }
      }
    }
  }
}

试试这个:

{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "specification",
            "query": {
              "bool": {
                "must": [
                  {
                    "match": {
                      "specification.name": "Processor"
                    }
                  },
                  {
                    "match": {
                      "specification.value": "Intel"
                    }
                  }
                ]
              }
            }
          }
        },
        {
          "nested": {
            "path": "specification",
            "query": {
              "bool": {
                "must": [
                  {
                    "match": {
                      "specification.name": "RAM"
                    }
                  },
                  {
                    "match": {
                      "specification.value": "2GB"
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    }
  }
}