弹性搜索not_analyzed字段

时间:2014-06-07 06:02:13

标签: elasticsearch

我的弹性搜索数据库中有一个loginid字段,其中包含用户电子邮件ID。我想写一个搜索查询来列出特定邮件客户端的所有事件(例如gmail.com,yahoo.com等)。

我设法编写了一个与电子邮件ID完全匹配的搜索查询

{
   "query": {
      "match": {
         "loginid": "dibeesh@amt.in"
      }
   }
}

通过执行上述查询,我​​将获得完全匹配。我的要求是将所有电子邮件ID与'@ amt.in'匹配。 loginid是我的弹性搜索数据库中的非分析字段,即

"loginid": {
  "type": "string",
   "index": "not_analyzed"
}

我也尝试过parse_prefix查询

{
   "query": {
      "match": {
         "loginid": {
            "query": "dibeesh@amt.in",
            "type": "phrase_prefix"
         }
      }
   }
}

但是没有运气能够得到我想要的结果。请帮我找一个解决方案。谢谢

1 个答案:

答案 0 :(得分:1)

{
    "regexp":{
        "loginid": "*@amt.in"
    }
}

使用弹性搜索正则表达式查询来实现此目的。