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(扩展统计聚合):与统计值聚合类似,但还提供了额外的信息,如方差、标准差等。
相关推荐
YangYang9YangYan5 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
大大大大晴天6 小时前
OpenMetadata VS DataHub VS Atlas VS Gravitino
大数据
Qyr999 小时前
2026全球汽车碳刷行业发展全景分析报告
大数据
蓝速科技9 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
精益数智工坊10 小时前
云计算环境数据怎么同步?云计算集成方案有哪些?
大数据·人工智能·数据挖掘·数据可视化
huashengzsj11 小时前
什么是DMS经销商管理系统?国内经销商管理系统有哪些品牌
大数据
IT毕设梦工厂12 小时前
计算机毕业设计选题推荐:基于大数据的草鱼价格分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·数据挖掘·数据分析·课程设计·大数据毕设项目
辛迪聊物业数字化12 小时前
智慧社区物业管理软件新手部署与实操指南
大数据·php
字节跳动数据平台12 小时前
模型再强,为什么 Demo 还是进不了生产?
大数据
南京兴帝文化传媒有限公司12 小时前
本地生活服务GEO优化实战:宁国花店地图关键词布局带来订单翻倍的技术路径
大数据·人工智能·生活·geo 优化·geo优化避坑·ai搜索获客