赞
踩
聚合 (Aggregation)*是一种在 Elasticsearch 中对数据进行分组、统计、计算和分析的操作。它与搜索请求一起执行,但关注的是数据的汇总而非具体的文档列表。聚合结果通常以层次化的结构返回,便于进一步处理和可视化。
Bucket 聚合用于对数据进行分桶(grouping),将数据集划分为多个逻辑桶,每个桶代表一类数据。常见的 Bucket 聚合包括:
Metric 聚合用于计算单个数值指标,如平均值、总和、最大值、最小值等。常见的 Metric 聚合包括:
Pipeline 聚合对其他聚合的结果进行二次处理,实现更复杂的聚合逻辑。它们不直接操作原始文档,而是消费其他聚合产生的桶或指标。常见的 Pipeline 聚合包括:
聚合结果通常以树状结构返回,每个聚合可以嵌套其他聚合,形成多层次的聚合链。这种结构允许用户逐步细化分析,从宏观到微观逐步揭示数据特征。
聚合操作通常与搜索请求结合使用,通过在查询 DSL 中定义聚合部分实现。聚合请求可以独立于搜索结果,也可以与搜索结果关联,展示在搜索结果的上下文中。
以下是一个简单的聚合请求示例,展示了 Terms 聚合和 Avg 聚合的组合使用:
GET /my_index/_search { "size": 0, // 不返回匹配文档,仅聚合结果 "aggs": { "by_category": { // Bucket 聚合:按 category 字段分桶 "terms": { "field": "category" }, "aggs": { // 在每个 bucket 内进一步聚合 "avg_price": { // Metric 聚合:计算每个 category 的平均 price "avg": { "field": "price" } } } } } }
size
参数限制返回的桶数量,避免消耗过多内存和带宽。聚合结果可以直接用于数据可视化,如通过 Kibana 创建图表、仪表板,直观展示数据分布、趋势、关联等信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。