Elasticsearch 度量(Metric)聚合详解及示例

Elasticsearch 提供了强大的聚合功能,允许用户对数据进行深入的统计分析。度量(Metric)聚合是其中一种,它用于对数值型数据进行计算,如求和、平均值、最大值、最小值等。本文将详细介绍 Elasticsearch 的度量聚合,并提供完整的示例和解释。

度量聚合基础

度量聚合用于执行数值计算,它可以帮助我们快速获得数据集的关键统计信息。常见的度量聚合包括:

  • Avg:计算平均值。
  • Sum:计算总和。
  • Min:找出最小值。
  • Max:找出最大值。
  • Stats:同时计算多个度量指标,如最大值、最小值、平均值和总和。

示例:Stats 聚合

假设我们有一个酒店数据索引,我们想要计算每个酒店品牌的用户评分的最小值、最大值和平均值。

DSL 查询

json 复制代码
GET /hotel/_search
{
  "size": 0,
  "aggs": {
    "brandAgg": {
      "terms": {
        "field": "brand",
        "size": 20
      },
      "aggs": {
        "score_stats": {
          "stats": {
            "field": "score"
          }
        }
      }
    }
  }
}

解释

  • size: 0 表示我们不需要原始文档的列表,只关心聚合结果。
  • aggs:定义聚合的区域。
  • brandAgg:为聚合操作定义的名称,这里使用了 Terms 聚合按品牌分组。
  • terms:指定聚合类型为词条聚合,field 指定聚合字段为 brandsize 限制返回的品牌数量。
  • score_stats:在 Brands 聚合内部定义的子聚合,用于计算评分统计。
  • stats:聚合类型,用于计算 score 字段的多个统计指标。

嵌套度量聚合

度量聚合可以嵌套在其他聚合内部,例如在桶聚合内部计算每个桶的度量指标。

DSL 查询

json 复制代码
GET /hotel/_search
{
  "size": 0,
  "aggs": {
    "brandAgg": {
      "terms": {
        "field": "brand",
        "size": 20,
        "order": {
          "_count": "asc"
        }
      },
      "aggs": {
        "scoreAgg": {
          "stats": {
            "field": "score"
          }
        }
      }
    }
  }
}

解释

  • order:指定 Bucket 聚合结果的排序方式,这里按照 _count 升序排列。
  • scoreAgg:在 Brands 聚合内部定义的另一个子聚合,用于计算每个品牌评分的统计数据。

结语

度量聚合是 Elasticsearch 中进行数值计算的重要工具。通过本篇文章的示例和解释,你应该对如何使用度量聚合有了更深入的理解。无论是计算平均评分、总和、最大值还是最小值,度量聚合都能提供灵活且强大的支持。掌握度量聚合的使用,将有助于你更有效地进行数据分析和探索。希望本文能够帮助你在实际项目中更好地利用 Elasticsearch 的聚合功能。

相关推荐
Lx3529 小时前
Hadoop容错机制深度解析:保障作业稳定运行
大数据·hadoop
muyun280013 小时前
Docker 下部署 Elasticsearch 8 并集成 Kibana 和 IK 分词器
elasticsearch·docker·容器
T062051414 小时前
工具变量-5G试点城市DID数据(2014-2025年
大数据
向往鹰的翱翔14 小时前
BKY莱德因:5大黑科技逆转时光
大数据·人工智能·科技·生活·健康医疗
鸿乃江边鸟15 小时前
向量化和列式存储
大数据·sql·向量化
IT毕设梦工厂16 小时前
大数据毕业设计选题推荐-基于大数据的客户购物订单数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
大数据·hadoop·数据分析·spark·毕业设计·源码·bigdata
java水泥工16 小时前
基于Echarts+HTML5可视化数据大屏展示-白茶大数据溯源平台V2
大数据·echarts·html5
广州腾科助你拿下华为认证18 小时前
华为考试:HCIE数通考试难度分析
大数据·华为
在未来等你20 小时前
Elasticsearch面试精讲 Day 17:查询性能调优实践
大数据·分布式·elasticsearch·搜索引擎·面试
大数据CLUB1 天前
基于spark的澳洲光伏发电站选址预测
大数据·hadoop·分布式·数据分析·spark·数据开发