elasticsearch 聚合查询

文章目录

  • 前言
    • [elasticsearch 聚合查询](#elasticsearch 聚合查询)
      • [1. 桶聚合](#1. 桶聚合)
      • [2. 度量聚合](#2. 度量聚合)
      • [3. 嵌套聚合](#3. 嵌套聚合)
      • [4. 指标聚合](#4. 指标聚合)

前言

如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。

而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


elasticsearch 聚合查询

以下是一些聚合查询可以执行的操作:

  1. 桶聚合(Bucket Aggregations):将文档分割成不同的桶(buckets),每个桶代表一个条件或者标准。常见的桶聚合包括根据词条、范围、日期等条件进行分桶。

  2. 度量聚合(Metric Aggregations):对文档中的数值字段进行计算,生成统计指标,如平均值、总和、最大值、最小值等。

  3. 嵌套聚合(Nested Aggregations):在其他聚合的结果上进行嵌套,以实现更复杂的分析。

  4. 指标聚合(Matrix Aggregations):对多个字段执行度量聚合,以生成多维度的统计信息。

1. 桶聚合

将文档分割成不同的桶(buckets),每个桶代表一个条件或者标准。常见的桶聚合包括根据词条、范围、日期等条件进行分桶。

根据日期进行分桶:

bash 复制代码
GET /sales/_search
{
  "query": {
    "match_all": {}
  },
  "aggs": {
    "genres": {
      "terms": {
        "field": "publish_date"
      }
    }
  }
}

2. 度量聚合

假设您有一个名为 sales 的索引,其中包含销售数据,包括 price(价格)字段。现在,您想要计算销售总额和销售平均价格。

示例:

bash 复制代码
GET /sales/_search
{
  "aggs": {
    "total_sales": {
      "sum": {
        "field": "price"
      }
    },
    "avg_price": {
      "avg": {
        "field": "price"
      }
    }
  }
}

这个查询包含了两个度量聚合:

  1. total_sales: 使用 sum 聚合计算销售总额,通过将 price 字段的值相加得出。
  2. avg_price: 使用 avg 聚合计算销售平均价格,通过取 price 字段的平均值得出。
    执行这个查询将返回计算得出的销售总额和销售平均价格。

3. 嵌套聚合

上面的例子是返回计算得出的销售总额和销售平均价格。

那么这回我们就查询聚合每个日期的销售总额和平均价格

当需要使用嵌套查询时,您通常会在主查询中嵌套一个或多个子查询,以便根据子查询的结果来过滤或进一步处理主查询的结果。

bash 复制代码
GET /sales/_search
{
  "size": 0,
  "aggs": {
    "自定义": {
      "terms": {
        "field": "publish_date"
      },
      "aggs": {
        "total_sales": {
          "sum": {
            "field": "price"
          }
        },
        "avg_price": {
          "avg": {
            "field": "price"
          }
        }
      }
    }
  }
}

4. 指标聚合

指标聚合查询是用于计算度量指标的查询,这些指标可以是总数、平均值、最大值、最小值等统计量。在 Elasticsearch 中,指标聚合允许您对字段进行聚合计算,以便了解数据集的特征和趋势。

以下是一些常见的指标聚合类型:

  1. Sum Aggregation(求和聚合):计算特定字段的总和。
  2. Avg Aggregation(平均值聚合):计算特定字段的平均值。
  3. Min Aggregation(最小值聚合):找出特定字段的最小值。
  4. Max Aggregation(最大值聚合):找出特定字段的最大值。
  5. Stats Aggregation(统计值聚合):提供特定字段的统计信息,如总数、平均值、最小值、最大值等。
  6. Extended Stats Aggregation(扩展统计聚合):与统计值聚合类似,但还提供了额外的信息,如方差、标准差等。
相关推荐
武汉格发Gofartlic1 小时前
FEKO许可证的安全与合规性
大数据·运维·安全
Kakaxiii1 小时前
【2025最新】gitee+pycharm完成项目的上传与管理
elasticsearch·pycharm·gitee
姬激薄1 小时前
HDFS概述
大数据·hadoop·hdfs
依年南台1 小时前
克隆虚拟机组成集群
大数据·hadoop
依年南台2 小时前
搭建大数据学习的平台
大数据·学习
张人玉3 小时前
数据可视化大屏——物流大数据服务平台(二)
大数据·信息可视化
Leo.yuan4 小时前
数据分析怎么做?高效的数据分析方法有哪些?
大数据·数据库·信息可视化·数据挖掘·数据分析
杜清卿5 小时前
Spark处理过程-转换算子和行动算子
大数据·分布式·spark
小冻梨!!!6 小时前
Spark,在shell中运行RDD程序
大数据·javascript·spark
IvanCodes7 小时前
五、Hive表类型、分区及数据加载
大数据·数据仓库·hive