gpt4 book ai didi

elasticsearch - 通过电子邮件查询时Elasticsearch查询未返回结果

转载 作者:行者123 更新时间:2023-12-03 02:12:52 25 4
gpt4 key购买 nike

在elasticsearch索引中,我有一个名为reporter的字段,运行此查询时没有任何结果:

GET /index/_search
{
"query": {
"bool": {
"must": [
{ "match": { "reporter": "Andr" } }
]
}
}
}
但是,如果将值更改为“Andre”的完整名字,则会得到很多结果。如何返回 reporter字段包含“A”,“An”,“And”,“Andr”等的记录?仅当值与电子邮件中的句点之间的完整字符串匹配时,我才获得结果。
以下是分析设置:
{
"analysis": {
"filter": {
"email": {
"type": "pattern_capture",
"preserve_original": true,
"patterns": [
"([^@]+)",
"(\\p{L}+)",
"(\\d+)",
"@(.+)",
"([^-@]+)"
]
}
},
"analyzer": {
"email": {
"tokenizer": "uax_url_email",
"filter": [
"email",
"lowercase",
"unique"
]
}
}
}
}
这是 reporter映射:
"reporter": {
"type": "text",
"analyzer": "email"
}

最佳答案

Edge N-gram过滤器可以帮助解决您的用例。它基本上从 token 的开头输出n-gram。可以通过设置min_gram和max_gram字段来控制n克。我们可以使用以下过滤器设置根据您上述示例的要求输出。

"filter": [
{ "type": "edge_ngram",
"min_gram": 1
}
]
可以在此链接中找到更多详细信息
https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-edgengram-tokenfilter.html

关于elasticsearch - 通过电子邮件查询时Elasticsearch查询未返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64247341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com