当搜索字符串中有数字时,Elasticsearch通配符会失败

时间:2018-03-09 09:59:29

标签: elasticsearch wildcard

我已在此索引中索引了一些字符串:

{
  "mappings": {
     "record" : {
           "properties" : {
               "my_suggest" : {
                   "type":"completion" 
                }
            }
      }
  }
}

在我的索引中有以下值:

  1. my_suggest = foo1
  2. my_suggest = bar
  3. my_suggest = something2
  4. 如果我查询:

       {
        "query":{
            "wildcard":{"my_suggest":"*foo*"}
            }
        }
    

    我已经返回了1号记录。

    如果我执行此查询:

       {
        "query":{
            "wildcard":{"my_suggest":"*foo1*"}
            }
        }
    

    我已经回复了空白结果。我期待着创纪录的第一名。

    为什么会这样?

    感谢。

1 个答案:

答案 0 :(得分:2)

默认情况下,Elasticsearch使用简单的分析器,它会删除任何非字母字符。

https://www.elastic.co/guide/en/elasticsearch/reference/5.5/analysis-simple-analyzer.html

请根据您的要求使用其他类型的分析仪或自定义分析仪。

https://www.elastic.co/guide/en/elasticsearch/reference/5.5/analysis-analyzers.html