Elasticsearch 聚合基础:terms、avg、sum 等

Elasticsearch 的聚合功能是其强大搜索和分析能力的重要组成部分,它允许用户对存储在索引中的数据执行复杂的分析操作,如计算平均值、求和、分组等。在本文中,我们将深入探讨 Elasticsearch 的聚合基础,特别是 terms、avg 和 sum 聚合的使用。

一、Terms 聚合

Terms 聚合是 Elasticsearch 中最常用的聚合类型之一,它按照某个字段的值进行分组。例如,假设我们有一个酒店数据的索引,并希望按照品牌进行分组,以查看每个品牌的酒店数量。这时,我们可以使用 terms 聚合。

示例查询如下:

json 复制代码
GET /hotel/_search
{
  "size": 0,
  "aggs": {
    "brand_terms": {
      "terms": {
        "field": "brand",
        "size": 10
      }
    }
  }
}

在这个查询中,我们指定了 size 为 0,表示不返回具体的文档结果,只返回聚合结果。aggs 字段下定义了聚合的名称和类型,brand_terms 是我们给这个聚合起的名字,terms 表示我们要使用 terms 聚合。在 terms 聚合内部,我们指定了要按照 brand 字段进行分组,并且只返回前 10 个品牌。

二、Avg 聚合

Avg 聚合用于计算某个字段的平均值。例如,如果我们想知道每个品牌的酒店平均评分,我们可以在 terms 聚合内部嵌套一个 avg 聚合。

示例查询如下:

json 复制代码
GET /hotel/_search
{
  "size": 0,
  "aggs": {
    "brand_terms": {
      "terms": {
        "field": "brand",
        "size": 10
      },
      "aggs": {
        "avg_score": {
          "avg": {
            "field": "score"
          }
        }
      }
    }
  }
}

在这个查询中,我们在 terms 聚合内部又定义了一个名为 avg_score 的 avg 聚合,用于计算每个品牌的酒店平均评分。

三、Sum 聚合

Sum 聚合用于计算某个字段的总和。与 avg 聚合类似,sum 聚合也可以嵌套在 terms 聚合内部使用。

示例查询如下:

json 复制代码
GET /hotel/_search
{
  "size": 0,
  "aggs": {
    "brand_terms": {
      "terms": {
        "field": "brand",
        "size": 10
      },
      "aggs": {
        "total_rooms": {
          "sum": {
            "field": "rooms"
          }
        }
      }
    }
  }
}

在这个查询中,我们定义了一个名为 total_rooms 的 sum 聚合,用于计算每个品牌的酒店房间总数。

四、其他聚合

除了 terms、avg 和 sum 聚合之外,Elasticsearch 还提供了许多其他类型的聚合,如 min、max、stats(同时计算 min、max、avg、sum 等)等。这些聚合可以单独使用,也可以嵌套在其他聚合内部使用,以满足复杂的分析需求。

五、总结

Elasticsearch 的聚合功能为用户提供了强大的数据分析能力,可以轻松地按照不同的维度对数据进行分组和计算。通过合理使用 terms、avg、sum 等聚合类型,用户可以快速地获取到所需的分析结果,为业务决策提供有力的支持。

相关推荐
福老板的生意经1 小时前
从成本失控到ROI翻倍:企业数字化营销投放的落地路径与工具选型指南
大数据·运维·人工智能
@insist1232 小时前
网络工程师-实战配置篇(二):精通 ACL 与策略路由,实现智能流量管控
大数据·网络·网络工程师·软考·软件水平考试
互联网科技看点2 小时前
以青春种黄芪 用科技兴乡村
大数据·人工智能·科技
2501_933670792 小时前
2026大学生必看!互联网行业含金量最高
大数据
Ulyanov3 小时前
像素迷宫:路径规划算法的可视化与实战
大数据·开发语言·python·算法
pride.li3 小时前
Git 笔记:将一段旧历史压缩成一个提交
大数据·elasticsearch·搜索引擎
数智化管理手记4 小时前
零基础认知精益生产——核心本质与必避误区
大数据·数据库·人工智能·低代码·制造
lifallen4 小时前
Flink Watermark 设计分析
java·大数据·flink
永霖光电_UVLED5 小时前
Cree LED 推出一款专为满足现代园艺和农业照明需求红光LED
大数据·汽车·制造·娱乐
萌>__<新5 小时前
Git常见使用命令及易踩坑点
大数据·elasticsearch·搜索引擎