用法
date histogram的用法與histogram差不多丢氢,只不過區(qū)間上支持了日期的表達式。
{
"aggs":{
"articles_over_time":{
"date_histogram":{
"field":"date",
"interval":"month"
}
}
}
}
interval字段支持多種關(guān)鍵字:year
, quarter
, month
, week
, day
, hour
, minute
, second
當(dāng)然也支持對這些關(guān)鍵字進行擴展使用纺且,比如一個半小時可以定義成如下:
{
"aggs":{
"articles_over_time":{
"date_histogram":{
"field":"date",
"interval":"1.5h"
}
}
}
}
返回的結(jié)果可以通過設(shè)置format進行格式化:
{
"aggs":{
"articles_over_time":{
"date_histogram":{
"field":"date",
"interval":"1M",
"format":"yyyy-MM-dd"
}
}
}
}
得到的結(jié)果如下:
{
"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時區(qū)的用法
在es中日期支持時區(qū)的表示方法嫁艇,這樣就相當(dāng)于東八區(qū)的時間。
{
"aggs":{
"by_day":{
"date_histogram":{
"field":"date",
"interval":"day",
"time_zone":"+08:00"
}
}
}
}
offset 使用偏移值论皆,改變時間區(qū)間
默認(rèn)情況是從凌晨0點到午夜24:00猾漫,如果想改變時間區(qū)間,可以通過下面的方式悯周,設(shè)置偏移值:
{"aggs":{
"by_day":{
"date_histogram":{
"field":"date",
"interval":"day",
"offset":"+6h"
}
}
}
}
那么桶的區(qū)間就改變?yōu)椋?/p>
"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缺省字段
當(dāng)遇到?jīng)]有值的字段禽翼,就會按照缺省字段missing value來計算:
{
"aggs":{
"publish_date":{
"date_histogram":{
"field":"publish_date",
"interval":"year",
"missing":"2000-01-01"
}
}
}
}
腳本、Order锐墙、min_doc_count過濾长酗,extended_bounds等都是支持的。