Elasticsearch聚合 之 Date Histogram聚合
2019独角兽企业重金招聘Python工程师标准>>>
Elasticsearch的聚合主要分成两大类:metric和bucket,2.0中新增了pipeline还没有研究。本篇还是来介绍Bucket聚合中的常用聚合——date histogram.参考:官方文档
用法
Date histogram的用法与histogram差不多,只不过区间上支持了日期的表达式。
{
"aggs":{"articles_over_time":{"date_histogram":{"field":"date","interval":"month"}}}
}
interval字段支持多种关键字:`year`, `quarter`, `month`, `week`, `day`, `hour`, `minute`, `second`
当然也支持对这些关键字进行扩展使用,比如一个半小时可以定义成如下:
{"aggs":{"articles_over_time":{"date_histogram":{"field":"date","interval":"1.5h"}}}
}
返回的结果可以通过设置format进行格式化:
{"aggs":{"articles_over_time":{"date_histogram":{"field":"date","interval":"1M","format":"yyyy-MM-dd"}}}}
得到的结果如下:
{"aggregations":{"articles_over_time":{"buckets":[{"key_as_string":"2013-02-02","key":1328140800000,"doc_count":1},{"key_as_string":"2013-03-02","key":1330646400000,"doc_count":2},...]}}
}
其中key_as_string是格式化后的日期,key显示了是日期时间戳,
time_zone时区的用法
在es中日期支持时区的表示方法,这样就相当于东八区的时间。
{"aggs":{"by_day":{"date_histogram":{"field":"date","interval":"day","time_zone":"+08:00"}}}
}
offset 使用偏移值,改变时间区间
默认情况是从凌晨0点到午夜24:00,如果想改变时间区间,可以通过下面的方式,设置偏移值:
{"aggs":{"by_day":{"date_histogram":{"field":"date","interval":"day","offset":"+6h"}}}
}
那么桶的区间就改变为:
"aggregations":{"by_day":{"buckets":[{"key_as_string":"2015-09-30T06:00:00.000Z","key":1443592800000,"doc_count":1},{"key_as_string":"2015-10-01T06:00:00.000Z","key":1443679200000,"doc_count":1}]}
}
Missing Value缺省字段
当遇到没有值的字段,就会按照缺省字段missing value来计算:
{"aggs":{"publish_date":{"date_histogram":{"field":"publish_date","interval":"year","missing":"2000-01-01"}}}
}
其他
对于其他的一些用法,这里就不过多赘述了,比如脚本、Order、min_doc_count过滤,extended_bounds等都是支持的。
转载于:https://my.oschina.net/u/204616/blog/545390
Elasticsearch聚合 之 Date Histogram聚合相关推荐
- 白话Elasticsearch37-深入聚合数据分析之案例实战Date Histogram Aggregation:统计每月电视销量
文章目录 概述 官方说明 实例: 统计每月电视销量,没有销量的月份也要统计 概述 继续跟中华石杉老师学习ES,第37篇 课程地址: https://www.roncoo.com/view/55 官方说 ...
- Elasticsearch(三)——Es搜索(简单使用、全文查询、复合查询)、地理位置查询、特殊查询、聚合操作、桶聚合、管道聚合
Elasticsearch(三)--Es搜索(简单使用.全文查询.复合查询).地理位置查询.特殊查询.聚合操作.桶聚合.管道聚合 一.Es搜索 这里的 Es 数据博主自己上网找的,为了练习 Es 搜索 ...
- Elasticsearch Java API 分组、聚合、嵌套相关查询
Elasticsearch Java API 分组.聚合.嵌套相关查询 翼支付监控系统正使用es做后端存储,这边我们是将日志计算处理过后的数据通过kafka储存到es.选择用es作为数据储存端是考虑到 ...
- (转)Elasticsearch 聚合查询、桶聚合、管道聚合及复合查询
转自: https://blog.csdn.net/zx711166/article/details/81906881 聚合查询 聚合是一种基于查询条件对数据进行分桶.计算的方法. 聚合可以嵌套,由此 ...
- Es elasticsearch 十七 Java api 实现聚合 几个聚合示例 sql 开启许可 新特效 java 实现es7 sql 功能
目录 Java api 实现聚合 依赖 简单聚合按照颜色分组获取每个卖出数量 聚合每个颜色卖出数量,及平均价格(每个分桶子聚合) 按照颜色分组 ,获取销售数量,avg min max sum 按照60 ...
- 【Spring Data ElasticSearch】高级查询,聚合
[Spring Data ElasticSearch]高级查询,聚合 1. 高级查询 1.1 基本查询 1.2 自定义查询 1.3 分页查询 1.4 排序 2. 聚合 2.1 聚合为桶 2.2 嵌套聚 ...
- ElasticSearch实现商品搜索与聚合分析
ElasticSearch实现商品搜索与聚合分析 Gitee地址:https://gitee.com/yuyuuyuy/micro-mall 文章目录 ElasticSearch实现商品搜索与聚合分析 ...
- Elasticsearch中的date与时区问题
1 前言 本文主要讲解Elasticsearch中date类型数据的底层存储原理,以及对带时区日期字符串和不带时区的日期字符串如何在ES底层存储进行验证.对于直接存储Long类型时间戳,不作过多描述. ...
- es的聚合mysql聚合速度_Elasticsearch(8) --- 聚合查询(Metric聚合)
摘要: quot;:0,"aggs":{"stats_salary":{"stats":{"field":"s ...
最新文章
- 正则满足中文的顿号_常用的正则表达式、正则表达式之断言
- 产品经理成长三五事儿:搭建自己的成长模型
- sql2005新增排序方法
- 章鱼黑的第一篇博客~
- 基于Fragment的百度地图框架的使用
- [论文阅读] End-to-End Incremental Learning
- springMVC视图解析器的配置和使用
- linux java 自动安装_Centos7 linux 卸载自带安装的jdk 并yum自动安装jdk1.8
- WebSphere水平集群集成IHS
- tp6中的助手函数是什么意思?
- 热插拔48块硬盘服务器,中云网眼WEM-SAN100/48B48盘位网络存储设备IP-SAN
- 未能加载文件或程序集 Renci.SshNet, Version=2016.1.0.0, Culture=neutral, PublicKeyToken= 1cee9f8bde3db106或它的某
- 恋爱骗局泛滥,过亿单身女性成待宰羔羊!
- Linux软链接的创建 删除 修改
- 自动化测试构架之Robot Framework——01 介绍
- 记者讲述iPhone被盗46天后成功找回的经历
- 2018校招笔试真题汇总(java/C++)
- Java飞扬的小鸟游戏
- Unity 3D结构界面详细说明
- 8086/8088CPU内部结构,引脚图,物理地址与逻辑地址
热门文章
- Go 语言标准库中 atomic.Value
- static和不完全类型的一个例子
- 寻找峰值(局部最大、局部最小)——二分查找
- A Simple Math Problem
- centos 编译nginx php mariadb,centos7安装nginx+mariadb+php-fpm
- Linux Increase The Maximum Number Of Open Files / File Descriptors (FD)
- cmd 无法切换目录
- SQLite使用手记
- idea自定义快捷鍵
- 【最新】docker 安装elasticsearch + kibana步骤【第二篇_kibana】