39.date hitogram基础知识

主要知识点:

  • date hitogram之统计每月电视销量

   

上一节讲到histogram,他是以数值进行分组。本节讲到以日期进行bucket分组操作,也就是说把连续的日期变成离散的日期区间,然后进行聚合分析操作。date histogram,按照我们指定的某个date类型的日期field,以及日期interval,按照一定的日期间隔,去划分bucket

   

语法:

GET /tvs/sales/_search

{

"size" : 0,

"aggs": {

"sales": {

"date_histogram": {

"field": "sold_date",

"interval": "month",

"format": "yyyy-MM-dd",

"min_doc_count" : 1,

"extended_bounds" : {

"min" : "2016-01-01",

"max" : "2017-12-31"

}

}

}

}

}

   

min_doc_count0。表赤即使某个日期interval2017-01-01~2017-01-31中,一条数据都没有,那么这个区间也是要返回的,不然默认是会过滤掉这个区间的。如果设为1.也就是说这个区间至少要有一条数据才返回。

extended_boundsminmax:划分bucket的时候,会限定在这个起始日期,和截止日期内,不在这个区间内的日期会被自动过滤掉,不作为结果返回,也不会进行分组。

   

执行结果如下(部分):

"aggregations": {

"group_by_sold_date": {

"buckets": [

{

"key_as_string": "2016-01-01",

"key": 1451606400000,

"doc_count": 0

},

{

"key_as_string": "2016-05-01",

"key": 1462060800000,

"doc_count": 1

},

原文地址:https://www.cnblogs.com/liuqianli/p/8535819.html