gpt4 book ai didi

Elasticsearch:自动完成聚合中的可用存储桶

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

归根结底问题是

  • 我有一个未分析字符串的多值字段(将它们视为标签)
  • 我有一个聚合,它收集这些标签

现在的要求是能够通过 tags(这是简单的部分)过滤这些聚合,并在可用的 tags 集合上提供前缀搜索(困难的是部分)以具有简洁的向下钻取功能。

如果我对 tag

的前缀(例如“Ge”)进行简单过滤
   "aggregations": {
"tags": {
"filter": {
"prefix": {
"tags": "Ge"
}
},
"aggregations": {
"tags": {
"terms": {
"field": "tags"
}
}
}
}

它返回出现在至少一个 tag 以“G”开头的字段中的所有 tag

除了检索许多 标签 然后“手动”对它们进行前缀过滤之外,有没有办法解决这个问题。顺便说一句,如果想像 Elasticsearch: Possible to process aggregation results? 中那样编写脚本应该没有必要。

谢谢马库斯

最佳答案

您可以使用“include”参数过滤聚合值。作为此参数的值,您需要传递正则表达式。对于您的示例,它将是:

"aggregations": {
"tags": {
"filter": {
"prefix": {
"tags": "Ge"
}
},
"aggregations": {
"tags": {
"terms": {
"field": "tags",
"include": "Ge.*"
}
}
}
}

这应该返回以“Ge”开头的标签。

文档链接: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#_filtering_values

关于Elasticsearch:自动完成聚合中的可用存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32625770/

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