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(扩展统计聚合):与统计值聚合类似,但还提供了额外的信息,如方差、标准差等。
相关推荐
yuanbenshidiaos1 小时前
【大数据】机器学习----------计算机学习理论
大数据·学习·机器学习
熟透的蜗牛2 小时前
Elasticsearch 8.17.1 JAVA工具类
elasticsearch
杰克逊的日记3 小时前
HBased的原理
大数据·hbase
普通网友4 小时前
Stable Diffusion 图片背景完美替换
人工智能·搜索引擎·ai作画·stable diffusion·midjourney
viperrrrrrrrrr75 小时前
大数据学习(36)- Hive和YARN
大数据·hive·学习
九圣残炎6 小时前
【ElasticSearch】 Java API Client 7.17文档
java·elasticsearch·搜索引擎
认知作战壳吉桔6 小时前
中国认知作战研究中心:从认知战角度分析2007年iPhone发布
大数据·人工智能·新质生产力·认知战·认知战研究中心
2301_780356707 小时前
为医院量身定制做“旧改”| 全视通物联网智慧病房
大数据·人工智能·科技·健康医疗
risc1234568 小时前
【Elasticsearch】HNSW
elasticsearch
我的棉裤丢了9 小时前
windows安装ES
大数据·elasticsearch·搜索引擎