Elasticsearch通配符与查询中的%?

时间:2018-06-13 15:18:16

标签: elasticsearch

这两个查询之间的区别是什么?为什么要使用其中一个 -

GET _search
{
  "query": {
    "wildcard": {
      "name": "*james*"
    }
  }
}

GET _search
{
  "query": {
    "match": {
      "name": "%james%"
    }
  }
}

我无法找到%版本的文档

1 个答案:

答案 0 :(得分:1)

  

与query_string / field的比较

     

匹配查询系列不会通过"查询解析"处理。它不支持字段名称前缀,通配符或其他"高级"特征。出于这个原因,它失败的可能性非常小/不存在,并且它在分析和运行该文本作为查询行为(通常是文本搜索框所做的)时提供了极好的行为。此外,当你输入"时,phrase_prefix类型可以提供一个很棒的"自动加载搜索结果的行为。

您可以找到以上here 基本上,您在帖子中包含的匹配查询会将%字符视为简单文字,但它没有任何特殊含义。