elasticsearch
-
Date Histogram Aggregation之日历感知间隔
{ "aggs" : { "sales_over_time" : { "date_histogram" : { "field" : "date", "calendar_interval" : "month", "format" : "yyyy-MM-dd" } } } }
此处calendear_interval指定按月,按日则为:d,但是不能间隔为2d,会报错,只能按单个日历,如1d
-
Date Histogram Aggregation之固定时间间隔
"fixed_interval" : "30d",
-
在内部,es的时间采用的是64位的数字,表示时间戳(从1970/01/01开始),key_as_string可以使用format来进行格式化。
-
设置偏移量,如果我们以1d为间隔,原本系统里面是午夜到午夜,设置了偏移量6小时,则是早上6点到隔天早上6点。
"offset": "+6h"
-
由于element属性为text,在默认情况下是禁止聚合得,因为一般情况下,对text进行聚会,会使得其消耗大量的堆空间。如果需要开启,需要把fielddata设置为true。但是好像设置好mapping之后只有少部分参数可以再修改。因此采用element.key的方法进行尝试。
{ "aggs": { "order_by_element": { "terms": { "field": "element.keyword" } } } }
-
按照时间和element(点击的模块)进行聚合
{ "aggs" : { "sales_over_time" : { "date_histogram" : { "field" : "date", "calendar_interval" : "day", "format" : "yyyy-MM-dd" }, "aggs" :{ "order_by_element": { "terms": { "field": "element" } } } } } }
logstash
在logstash中,主要有2部分组成,一个是input一个是output。input