与Elasticsearch query_string完全匹配

问题描述

我可以按照Elasticsearch boolean query进行完全匹配查询

GET my_index/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "some_field.keyword": "some value"
          }
        }
      ]
    }
  }
}

some_field被索引为认字符串类型:

"some_field" : {
  "properties" : {
    "value" : {
      "type" : "text","fields" : {
        "keyword" : {
          "type" : "keyword","ignore_above" : 256
        }
      }
    }
  }
}

由于某种原因,我只能使用Elasticsearch query_string。这意味着,我需要使用Lucene语法的等效查询

解决方法

您可以在query_string query中以同样的方式更改字段的keyword

{
  "query": {
    "query_string": {
      "query": "some value","default_field": "some_field.value.keyword"
    }
  }
}