我的弹性搜索数据库中有一个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"
}
}
}
}
但是没有运气能够得到我想要的结果。请帮我找一个解决方案。谢谢
答案 0 :(得分:1)
{
"regexp":{
"loginid": "*@amt.in"
}
}
使用弹性搜索正则表达式查询来实现此目的。