ElasticSearch:精确匹配多个字段

ElasticSearch: Exact match for multiple fields

如何生成这样的查询?

select * from topic where field1 = "abc" and field2 = "xyz"

我尝试了以下方法,但无法获得正确的语法:

curl -X POST "localhost:9200/topic/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "terms" : { 
       "field1": "abc",
       "field2": "xyz"
    }
  }
}
'

怎么样...

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "field1": "abc"
          }
        },
        {
          "term": {
            "field2": "xyz"
          }
        }
        ]
      }
  }
}

Terms Query 不符合您的要求。相反,它会在同一个键中搜索不同的值。