我正在尝试使用ElasticSearch实现电子邮件搜索 以下是示例文档。
def CountFile():
file = open("File.txt", "r")
count = 0
for i in file:
i = i.split()
for so in i:
if so in Happy:
count = count + 1
print("there are %s keywords" %count)
CountFile()
所以当我使用匹配查询时:{
...
"email": "valeri@gmail.com"
},
{
...
"email": "tom@gmail.com"
}
}
我得到{ "match": { "email": "valeri@gmail.com"
和"valeri@gmail.com"
,但结果必须只有"tom@gmail.com"
。
我认为这是因为"valeri@gmail.com"
字符
解决这个问题的任何好方法?
答案 0 :(得分:0)
您需要使用此处指定的电子邮件令牌:
https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-uaxurlemail-tokenizer.html
答案 1 :(得分:0)
使用它发出您的请求?
GET my_index/_search
{
"query": {
"match_phrase_prefix" : {
"email": "valery@gmail.com"
}
}
}
您将获得预期的结果