elassticsearch8.x-聚合搜索:Aggregations

2025-05-12 21:30

聚合搜索:Aggregations

概述

基本概念

​ 在Elasticsearch 中,聚合查询是一种分析和统计数据的功能。聚合查询能够处理大量的数据,执行各种统计分析,如计算总数、平均值、最大值、最小值、标准差等等,并生成相应的报告。

​ 聚合(aggs)不同于普通查询,是目前学到的第二种大的查询分类,第一种即query,因此在代码中的第一层嵌套由query变为了aggs。

使用场景

聚合查询可以用于各种场景,比如商业智能、数据挖掘、日志分析等等。

  • 电商平台的销售分析:统计每个地区的销售额、每个用户的消费总额、每个产品的销售量等,以便更好地了解销售情况和趋势。

  • 社交媒体的用户行为分析:统计每个用户的发布次数、转发次数、评论次数等,以便更好地了解用户行为和趋势,同时可以将数据按照地区、时间、话题等维度进行分析。

  • 物流企业的运输分析:统计每个区域的运输量、每个车辆的运输次数、每个司机的行驶里程等,以便更好地了解运输情况和优化运输效率。

  • 金融企业的交易分析:统计每个客户的交易总额、每个产品的销售量、每个交易员的业绩等,以便更好地了解交易情况和优化业务流程。

  • 智能家居的设备监控分析:统计每个设备的使用次数、每个家庭的能源消耗量、每个时间段的设备使用率等,以便更好地了解用户需求和优化设备效能。

基本语法

聚合查询的语法结构与其他查询相似,通常包含以下部分:

  • 查询条件:指定需要聚合的文档,可以使用标准的 Elasticsearch 查询语法,如 term、match、range 等等。

  • 聚合函数:指定要执行的聚合操作,如 sum、avg、min、max、terms、date_histogram 等等。每个聚合命令都会生成一个聚合结果。

  • 聚合嵌套:聚合命令可以嵌套,以便更细致地分析数据。

GET <index_name>/_search
{
    "aggs": {
        "<aggs_name>": { // 聚合名称需要自己定义
            "<agg_type>": {
                "field": "<field_name>"
            }
        }
    }
}

  • aggs_name: 聚合函数的名称

  • agg_type: 聚合种类,比如是桶聚合(terms)或者是指标聚合(avg、sum、min、max等)

    示例:查询订单商品的分类为空调的品牌分类统计

GET orders/_search
{
   "query":{
     "term": {
       "prod_cls": {
         "value": "空调"
       }
     }
   },
    "aggs": {
        "terms_agg": { 
            "terms": {
                "field": "Brand"
            }
        }
    }
}
相关新闻
热点
投票
查看结果
Tags

站点地图 在线访客: 今日访问量: 昨日访问量: 总访问量:

© 2025 个人网站 版权所有

备案号:苏ICP备2024108837号

苏公网安备32011302322151号