ElasticSearch:为什么query_string不区分大小写并且通配符区分大小写?

时间:2016-03-24 06:30:51

标签: elasticsearch request wildcard

为什么在对字段执行query_string查询时它不区分大小写并且通配符查询区分大小写?我会认为这两个行为会相似。

此query_string查询返回结果

{
  "query": {
    "bool" : {
      "must" : [ {
        "query_string" : {
          "query" : "name:*HILTON*"
        }
      } ]
    }
  }
}

此通配符查询的位置

{
  "query": {
    "bool" : {
      "must" : [{
        "wildcard" : {
          "name" : "*HILTON*"
        }
      } ]
    }
  }
}

1 个答案:

答案 0 :(得分:4)

这是因为Wild card query适用于not analyzed字段。

根据文件:

  

前缀,通配符和正则表达式查询按术语运行。如果您使用它们来查询分析的字段,它们将检查字段中的每个术语,而不是整个字段。

     

通配符查询匹配具有与通配符表达式(未分析)匹配的字段的文档。