弹性搜索:过滤not_analyzed数组字段,连字符不起作用

时间:2016-01-19 12:52:40

标签: elasticsearch

我有一个如下所示的映射:

{
  "info":{
    "properties":{
        "emailids":{
          "type":"string",
          "index":"not_analyzed",
         }
     }
   }
}

示例数据插入:

 $ curl -XPUT 'http://localhost:9200/customer/info' -d '{
                       "emailids" : ["primaryemail","secondary-email"]
        
         }

使用以下查询查询时

{
 "bool":{
     "must":{
            "term": "primaryemail"
     }
 }
}

它匹配上面插入的文档。

但是当查询具有爆炸性的“二次电子邮件”时,它会返回0结果。

{
 "bool":{
     "must":{
            "term": "secondary-email"
     }
 }
}

1 个答案:

答案 0 :(得分:0)

您使用的是哪种分析仪?默认情况下,标准查询字符串分析器将忽略特殊字符。您需要为此创建自定义分析器。以下link helps explain this in more detail

Info on simple Query String Analyzer