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



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

{
  "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"
     }
 }
}

您使用的是什么分析仪?默认情况下,标准查询字符串分析器将忽略特殊字符。您需要为此创建自定义分析器。以下链接有助于更详细地解释这一点

有关简单查询字符串分析器的信息

最新更新