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



你能告诉我什么时候使用查询字符串以及什么时候使用通配符吗?在以下情况下,我应该使用什么

POST _search
{
  "query": { 
    "filtered": { 
      "query": [{
        "query_string": {
            "fields": [
                "afDeparture"
                ],
            "query": "16feb*"
            }
        }],
      "filter": [ 
        { "term":  { "boardPoint": "dxb" }}, 
        { "range": { "localDeparture": { "gte": 1454270400000 }}} 
      ]
    }
  }
}
  • 使用查询解析器解析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 }}} 
      ]
    }
}

最新更新