gpt4 book ai didi

javascript - 如何调整分析器设置以允许edge_ngram搜索数字?

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

在地址字段上的 Elasticsearch 中输入查询时,我无法搜索数字,当我输入“11412”之类的数字时,即使具有该邮政编码的地址存在,它也不会显示任何结果。

我尝试使用anaylzer设置更改token_chars,包括没有帮助的数字。下面是我的分析器设置,包括映射

{
"settings": {
"analysis": {
"analyzer": {
"autocomplete": {
"tokenizer": "autocomplete",
"filter": [
"lowercase"
]
},
"autocomplete_search": {
"tokenizer": "lowercase"
}
},
"tokenizer": {
"autocomplete": {
"type": "edge_ngram",
"min_gram": 3,
"max_gram": 20,
"token_chars": [
"letter",
"digit"
]
}
}
}
},
"mappings": {
"properties": {
"address": {
"type": "text",
"analyzer": "autocomplete",
"search_analyzer": "autocomplete_search"
}
}
}
}

当在 Elasticsearch 中使用下面的查询中的数字时,我没有得到任何结果,但使用单词和部分匹配单词进行常规搜索仍然有效,尝试对数字“11412”、“1141”进行相同的行为

{
"query": {
"match": {
"address": {
"query": "11412",
"operator": "and"
}
}
}
}

最佳答案

您遇到的问题是因为您使用的是 lowercase 分词器,每当遇到非字母的字符时,它就会破坏标记,因此没有任何数字会将其放入倒置的字符中索引。

将您的 autocomplete_search 分析器更改为此,它将起作用:

    "autocomplete_search": {
"tokenizer": "standard"
}

关于javascript - 如何调整分析器设置以允许edge_ngram搜索数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55914950/

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