gpt4 book ai didi

elasticsearch - 为什么match_phrase_prefix查询以不同的短语长度返回错误的结果?

转载 作者:行者123 更新时间:2023-12-03 00:15:47 24 4
gpt4 key购买 nike

我有一个非常简单的查询:

POST /indexX/document/_search
{
"query": {
"match_phrase_prefix": {
"surname": "grab"
}
}
}

带有映射:
"surname": {
"type": "string",
"analyzer": "polish",
"copy_to": [
"full_name"
]
}

和索引定义(我对Elasticsearch插件使用Stempel(Polish)Analysis):
POST /indexX
{
"settings": {
"index": {
"analysis": {
"filter": {
"synonym" : {
"type": "synonym",
"synonyms_path": "analysis/synonyms.txt"
},
"polish_stop": {
"type": "stop",
"stopwords_path": "analysis/stopwords.txt"
},
"polish_my_stem": {
"type": "stemmer",
"rules_path": "analysis/stems.txt"
}
},
"analyzer": {
"polish_with_synonym": {
"tokenizer": "standard",
"filter": [
"synonym",
"lowercase",
"polish_stop",
"polish_stem",
"polish_my_stem"
]
}
}
}
}
}
}

对于此查询,我得到 结果。当我将短语更改为 GRA GRABA 时,它返回1个结果(GRABARZ是姓氏)。为什么会这样呢?

我尝试使用max_expansions甚至高达1200的值,但没有帮助。

最佳答案

乍一看,您的分析器会阻止搜索词(“抓图”)并使它不可用(“grabić”)。

在不详细介绍如何解决此问题的情况下,请考虑在此处摆脱抛光分析仪。我们谈论的是人们的名字,而不是“普通的”波兰语单词。

我看到了在这种情况下使用的不同技术:多字段搜索,模糊搜索,语音搜索,专用插件。

一些链接:
https://www.elastic.co/blog/multi-field-search-just-got-better
http://www.basistech.com/fuzzy-search-names-in-elasticsearch/
https://www.found.no/play/gist/6c6434c9c638a8596efa

但是我想在波兰语名称的情况下,对未分析的字段进行某种前缀查询就足够了...

关于elasticsearch - 为什么match_phrase_prefix查询以不同的短语长度返回错误的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36007842/

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