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(扩展统计聚合):与统计值聚合类似,但还提供了额外的信息,如方差、标准差等。
相关推荐
Elasticsearch14 小时前
如何使用 Agent Builder 排查 Kubernetes Pod 重启和 OOMKilled 事件
elasticsearch
Elasticsearch2 天前
通用表达式语言 ( CEL ): CEL 输入如何改进 Elastic Agent 集成中的数据收集
elasticsearch
武子康2 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
武子康3 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库3 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟3 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长3 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计