gpt4 book ai didi

elasticsearch - 前缀自动完成建议elasticsearch

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

我正在尝试使用ElasticSearch实现前缀自动完成功能,这是我对“建议”字段的映射:

PUT vdpinfo
{
"mappings": {
"details" : {
"properties" : {
"suggest" : {
"type" : "completion"
},
"title": {
"type": "keyword"
}
}
}
}
}

而且我用单字和双字(bigram)索引了一些数据,例如:
{"suggest": "leather"}

并且:
{"suggest": "leather seats"}
{"suggest": "2 leather"}

我的搜索查询是这样的:
GET /vdpinfo/details/_search
{
"suggest": {
"feature-suggest": {
"prefix": "leather",
"completion": {
"field": "suggest"
}
}
}
}

但是结果返回 {"suggest": "leather"}{"suggest": "2 leather"},更重要的是, {"suggest": "2 leather"}的排名高于 leather

我的问题是为什么返回 2 leather,为什么不像查询中那样仅执行 prefix自动完成功能。 prefix: leather

最佳答案

这是因为用于分析数据的默认分析器是 simple 分析器,它会在遇到非字母的字符时将文本简单地分解为术语,因此2 leather实际上被索引为leather,因此为什么显示此结果(以及为什么它首先显示)。

他们默认情况下使用simple分析器而不是standard的原因是不基于停用词(explanation here)提供建议。

因此,如果您改用standard分析器,则对2 leather不会有任何建议

PUT vdpinfo
{
"mappings": {
"details" : {
"properties" : {
"suggest" : {
"type" : "completion",
"analyzer" : "standard"
},
"title": {
"type": "keyword"
}
}
}
}
}

关于elasticsearch - 前缀自动完成建议elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43419880/

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