gpt4 book ai didi

elasticsearch - ElasticSearch忽略只有一个字母的单词

转载 作者:行者123 更新时间:2023-12-02 23:59:11 33 4
gpt4 key购买 nike

我是ElasticSearch的初学者,我有一个使用ElasticSearch在给定食物或水果中寻找成分的应用程序...
如果用户使用例如磁带,我将面临评分问题:"Vitamine d"ElasticSearch会给出得分最高的"vitamine"短语,即使该短语"Vitamine D"存在且通常应具有最高分数。
我看到如果我的情况下的第二个单词"d"只是一个字母,那么 flex 搜索将忽略它。

我做了另一个例子:"vitamine b12",我得到了正确的分数。

这是应用程序发送到服务器的查询:

{
"from": 0,
"size": 5,
"query": {
"bool": {
"must": [
{
"match": {
"constNomFr": {
"query": "vitamine d"
}
}
}
],
"should": [
{
"prefix": {
"constNomFr": {
"value": "vitamine d",
"boost": 2
}
}
}
]
}
},
"_source": {
"excludes": [
"alimentDtos"
]
}
}

我可以对其进行哪些修改以使其起作用?

非常感谢。

最佳答案

如果可以识别成分,建议您在单独的字段“成分”中为它们建立索引,并将其类型设置为keyword。这样,您可以使用术语过滤器,甚至可以运行聚合。

您可能已经用这种方式对文档建立了索引,在这种情况下,如果您使用的是默认映射,则只需对your_field_name.keyword运行查询。

如果没有将成分索引为数组,则应查看elasticsearch analyzers以选择或构建正确的成分。

关于elasticsearch - ElasticSearch忽略只有一个字母的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50644537/

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