前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >白话Elasticsearch36-深入聚合数据分析之案例实战Histogram Aggregation:按价格区间统计电视销量和销售额

白话Elasticsearch36-深入聚合数据分析之案例实战Histogram Aggregation:按价格区间统计电视销量和销售额

作者头像
小小工匠
发布2021-08-17 14:58:50
3790
发布2021-08-17 14:58:50
举报
文章被收录于专栏:小工匠聊架构小工匠聊架构

在这里插入图片描述
在这里插入图片描述

概述

继续跟中华石杉老师学习ES,第36篇

课程地址: https://www.roncoo.com/view/55


官方说明

Histogram Aggregation: 戳这里

在这里插入图片描述
在这里插入图片描述

histogram:类似于terms,也是进行bucket分组操作,接收一个field,按照这个field的值的各个范围区间,进行bucket分组操作 .

代码语言:javascript
复制
"histogram":{ 
  "field": "price",
  "interval": 2000
},
  • interval:2000,划分范围,0~2000,2000~4000,4000~6000,6000~8000,8000~10000类似的,每个范围对应一个bucket
  • 根据price的值,比如2500,看落在哪个区间内,落在2000~4000,此时就会将这条数据放入2000~4000对应的那个bucket中
  • histogram也是bucket划分的一种方法,就好比terms,将field值相同的数据划分到一个bucket中

bucket有了之后,就可以对每个bucket执行avg,count,sum,max,min,等各种metric操作,聚合分析


案例

需求: 按价格区间统计电视销量和销售额

原始数据:

在这里插入图片描述
在这里插入图片描述

DSL:

代码语言:javascript
复制
GET /tvs/sales/_search
{
   "size" : 0,
   "aggs":{
      "price":{
         "histogram":{ 
            "field": "price",
            "interval": 2000
         },
         "aggs":{
            "revenue": {
               "sum": { 
                 "field" : "price"
               }
             }
         }
      }
   }
}

返回数据

代码语言:javascript
复制
{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 8,
    "max_score": 0,
    "hits": []
  },
  "aggregations": {
    "price": {
      "buckets": [
        {
          "key": 0,
          "doc_count": 3,
          "revenue": {
            "value": 3700
          }
        },
        {
          "key": 2000,
          "doc_count": 4,
          "revenue": {
            "value": 9500
          }
        },
        {
          "key": 4000,
          "doc_count": 0,
          "revenue": {
            "value": 0
          }
        },
        {
          "key": 6000,
          "doc_count": 0,
          "revenue": {
            "value": 0
          }
        },
        {
          "key": 8000,
          "doc_count": 1,
          "revenue": {
            "value": 8000
          }
        }
      ]
    }
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 官方说明
  • 案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档