Elasticsearch聚合查询

三种类型的聚合

1、桶聚合

类似与SQL中的group by

text类型不能用于聚合查询、keyword

语法:常规聚合

{
  "aggs":{ 
    "term_brand":{ //聚合名称
      "trems":{ //查询函数
        "field":"brand.keyword" //聚合字段
      }
    }
  }
}

范围聚合 查询价格为2000 、2000-5000、5000以上 范围内 各个手机的数量

{
  "aggs":{
    "range_price":{ //聚合名称
        "range":{
          "field":"price",
          "ranges":[
            {
              "to":2000,
            },
            {
              "form":2000,
              "to":5000
            },
            {
              "from":5000
            }
          ]
        }
    }
  }
}

Multi Terms

当在聚合的时候需要对多个字段同时聚合的时候,可以使用multi_Terms来完成

{
  "aggs":{ 
    "agg_name":{ //聚合名称
      "multi_terms":{//查询函数
        "trems":[
          { 
            "field":"field1" //聚合字段
          }	,
          { 
            "field":"field2" //聚合字段
          }	
        ]
      }
      
    }
  }
}
2、指标聚合

场景:用于统计某个指标,如最大值、最小值、平均值,可以使用桶聚合一起使用,如按照商品类型分桶,统计每个桶的平均价格

指标函数:

  • 平均值:Avg
  • 最大值:Max
  • 最小值:Min
  • 求和:Sum
  • 详细信息:Status
  • 数量:Value count

统计商品价格的 最大值、最小值、和平均值

GET goods/_search
{
  "aggs":{
    "metric_max":{
      "max":{
        "field":"price"
      }
    },
    "metric_min":{
      "min":{
        "field":"price"
      }
    },
    "metric_avg":{
      "avg":{
        "field":"price "
      }
    }
  }
}

3、管道聚合

统计平均价格最低商品品牌

1、对品牌分桶

2、对每个桶计算平均价格

3、计算平均价格最低值

GET goods/_search
{
  "aggs":{
    "agg_pip":{
      "terms":{
        "filed":"brand.keyword"
      },
      "aggs":{
        "avg_price":{
          "avg""{
            "field":"price"
          }
        }
      }
    }
  },
  "min_avg_price":{
    "min_bucket":{
      "buckets_path":"agg_pip>avg_price"
    }
  }
}
相关推荐
DavidSoCool42 分钟前
Elasticsearch Java API Client [8.17] 使用
java·大数据·elasticsearch
用户199701080181 小时前
淘宝买家/卖家订单列表、订单详情、订单物流 API 接口全攻略
大数据
Arbori_262151 小时前
大数据 spark hive 总结
大数据·hive·spark
阿里云大数据AI技术1 小时前
中免日上使用阿里云向量检索服务 Milvus 版搭建在线推荐系统
大数据
LaughingZhu2 小时前
PH热榜 | 2025-03-10
前端·人工智能·经验分享·搜索引擎·产品运营
m0_748251722 小时前
Python大数据可视化:基于python大数据的电脑硬件推荐系统_flask+Hadoop+spider
大数据·python·flask
kngines3 小时前
【实战ES】实战 Elasticsearch:快速上手与深度实践-5.1.2基于Painless脚本的日志告警
大数据·elasticsearch·搜索引擎
caihuayuan53 小时前
「mysql」Mac mysql一路畅通式安装
java·大数据·spring boot·后端·课程设计
阿里云大数据AI技术5 小时前
降价46%,Hologres Serverless Computing 快速入门
大数据·serverless
钡铼技术物联网关5 小时前
工业数据采集与控制:ARM一体机的低功耗高可靠性方案
大数据·linux·arm开发·人工智能