gpt4 book ai didi

elasticsearch - 如何在ElasticSearch中按结果分组

转载 作者:行者123 更新时间:2023-12-02 23:50:34 26 4
gpt4 key购买 nike

有一个索引:人

"_source" : {
"id" : 304028598,
"name" : "aaa"
},

想要获得这些信息:
1.每个名字的平均数
2.最多可以有一个名字

对于SQL我可以通过以下SQL获取这些信息
select max(count), avg(count), min(count) from (
select name, count(*) count from t group by name
);

但是如何通过elasticsearch实现呢?

最佳答案

这个问题的答案取决于Pipeline aggregations -这些聚合对另一个聚合的输出进行操作。

例如,我们有许多文档,每个文档具有不同的hostVersion,并使用以下内容查找每个主机版本的最大,最小和平均文档数:

"aggs": {
"per_hostver": {
"terms": {
"field": "hostVersion"
}
},
"avg_docs_per_version": {
"avg_bucket": {
"buckets_path": "per_hostver>_count"
}
},
"max_docs_per_version": {
"max_bucket": {
"buckets_path": "per_hostver>_count"
}
},
"min_docs_per_version": {
"min_bucket": {
"buckets_path": "per_hostver>_count"
}
}
}

语法 per_hostver>_count指的是聚合 _count的每个存储区生成的 per_hostver字段。 _count是如何引用所有ES聚合生成的特殊文档计数字段。

关于elasticsearch - 如何在ElasticSearch中按结果分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57958582/

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