gpt4 book ai didi

elasticsearch - 当我使用 completion suggester 时,如何获得没有重复的独特建议?

转载 作者:行者123 更新时间:2023-11-29 02:46:30 25 4
gpt4 key购买 nike

我在我的环境中使用 elastic 5.1.1。我在字段名称 post_hashtags 上选择了完成建议器,其中包含一个字符串数组以提供建议。我收到如下前缀“inv”的响应

要求:

POST hashtag/_search?pretty&&filter_path=suggest.hash-suggest.options.text,suggest.hash-suggest.options._source
{"_source":["post_hashtags" ],

"suggest": {
"hash-suggest" : {
"prefix" : "inv",
"completion" : {
"field" : "post_hashtags"
}
}
}

响应:

{
"suggest": {
"hash-suggest": [
{
"options": [
{
"text": "invalid",
"_source": {
"post_hashtags": [
"invalid"
]
}
},
{
"text": "invalid",
"_source": {
"post_hashtags": [
"invalid",
"coment_me",
"daya"
]
}
}
]
}
]
}

此处“invalid”返回了两次,因为它也是其他文档中相同字段“post_hashtags”的输入字符串。

问题是,如果同一索引中的 1000 个文档中存在相同的“无效”输入字符串,那么我会得到 1000 个重复的建议,这是巨大的而且不需要。

我可以在完成类型的字段上应用聚合吗?

有什么方法可以让我获得独特的建议而不是重复的文本字段,即使我在具有相同索引的多个文档中为特定字段提供了相同的输入字符串?

最佳答案

ElasticSearch 6.1 引入了 skip_duplicates运算符(operator)。用法示例:

{
"suggest": {
"autocomplete": {
"prefix": "MySearchTerm",
"completion": {
"field": "name",
"skip_duplicates": true
}
}
}
}

关于elasticsearch - 当我使用 completion suggester 时,如何获得没有重复的独特建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42391207/

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