gpt4 book ai didi

elasticsearch - 搜索在模糊查询中返回不同的值-Elasticsearch

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

我有一个Elasticsearch模糊查询,如下所示:

GET /resume/candidate/_search
{
"query": {
"fuzzy" : { "name" : {
"value": "Tam",
"fuzziness" : 2,
"max_expansions": 50 }
}
}
}

我在索引中有汤姆,罗伊,麦克斯韦的名字。 Tom的名称已根据请求进行匹配,但Roy的名称也已返回。这是怎么回事?
全名是:

罗伊·洛夫乔伊(Roy M Lovejoy III)

汤姆·阿特威尔

另外,如果我将模糊度设置为1,则不会得到任何结果。汤姆不应该匹配吗,因为只有1个字符不同?

对应:
{
"resume": {
"aliases": {},
"mappings": {
"candidate": {
"properties": {
"name": {
"type": "text"
}
}
}
}
}

我也有一个分析器,但是名称字段中没有使用它

分析仪:
"analysis": {
"analyzer": {
"case_insensitive": {
"filter": [
"lowercase"
],
"tokenizer": "keyword"
}
}
}

最佳答案

“Tam”不是与“roy”的模糊匹配,而是与中间首字母“m”的匹配,其编辑距离为2。

之所以无法在“tom”上获得编辑距离为1的结果,是因为在分析索引名(因此将其小写)时,您的查询没有被分析。您可以小写查询,也可以使用fuzzy match query进行分析:

"query": {
"match": {
"name": {
"query": "Tam",
"fuzziness": "AUTO"
}
}
}

关于elasticsearch - 搜索在模糊查询中返回不同的值-Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44516690/

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