gpt4 book ai didi

search - Elasticsearch索引短词+应用EdgeNGram进行索引

转载 作者:行者123 更新时间:2023-12-02 22:41:10 24 4
gpt4 key购买 nike

我正在将Elasticsearch与EdgeNGram过滤器配合使用,其设置如下:

"edgeNGram": {
"type": "edgeNGram",
"min_gram": 3,
"max_gram": 15,
},

问题是,当我使用非常短的单词进行查询时,搜索中会完全忽略它们。假设我输入“维生素C”->这仅给我第一个术语“维生素”的结果。有什么方法可以让Elasticsearch在索引最多3个字符的单词时不要使用EdgeNGram过滤器?

谢谢。

编辑:

这些是我的设置:
ELASTICSEARCH_INDEX_SETTINGS = {
"settings": {
"analysis": {
"analyzer": {
"sk_hunspell": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"sk_lowercase", "sk_SK", "stopwords_SK",
"edgeNGram", "asciifolding",
"remove_duplicities",
]
},
},
"filter": {
"sk_SK": {
"type": "hunspell",
"locale": "sk_SK",
"dedup": True,
"recursion_level": 0,
"ignore_case": True,
},
"sk_lowercase": {
"type": "lowercase",
},
"stopwords_SK": {
"type": "stop",
"stopwords": STOPWORDS_SK,
},
"remove_duplicities": {
"type": "unique",
"only_on_same_position": True
},
"edgeNGram": {
"type": "edgeNGram",
"min_gram": 3,
"max_gram": 15,
"token_chars": ["letter", "digit"],
},
},
}
}
}

我在数据库中存储有关维生素,矿物质和药用植物的信息。 (它们的使用,收集,开花,健康益处等。)信息以斯洛伐克语编写。 (植物和矿物质的名称也存储在捷克语和拉丁语中)。

最佳答案

这个想法可能是个技巧,但是您可以在插入索引之前将小于3的单词用特殊字符填充,使其长度为3。

当您接受用户的查询时,您还必须使用相同的特殊字符将他们的单词少于3个。

您将需要为此创建一个自定义标记器。

关于search - Elasticsearch索引短词+应用EdgeNGram进行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28862001/

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