Elasticsearch中查询字符串与通配符的区别是什么

时间:2016-02-20 18:52:07

标签: elasticsearch spring-data-elasticsearch

您能告诉我何时使用查询字符串以及何时使用通配符。 在下面的场景中我应该使用什么

POST _search
{
  "query": { 
    "filtered": { 
      "query": [{
        "query_string": {
            "fields": [
                "afDeparture"
                ],
            "query": "16feb*"
            }
        }],
      "filter": [ 
        { "term":  { "boardPoint": "dxb" }}, 
        { "range": { "localDeparture": { "gte": 1454270400000 }}} 
      ]
    }
  }
}

1 个答案:

答案 0 :(得分:0)

  • 使用查询解析器解析Query_String值以获取实际查询
    name:this AND surname:that

  • 类似
  • 但通配符查询是一个术语级别查询,仅评估*?

总结 query_string 的值也是要解析的query,但 wildcard_query 值是expression

您的查询可以是

{
    "query": {
        "wildcard": {
           "afDeparture": {
              "value": "16feb*"
           }
        },
        "filter": [ 
        { "term":  { "boardPoint": "dxb" }}, 
        { "range": { "localDeparture": { "gte": 1454270400000 }}} 
      ]
    }
}