项目需求:需要过滤后聚合某些没有分词的字段
注意:因为项目字段都是string 所以这里都是Terms Aggregation
# 基本字段查询 query_string针对的是没有分词的字段,time对应是每秒的时间戳
{
"query":{
"query_string":{
"query":"time:[1491987322 TO 1491988222] AND types:[6 TO 7] AND citys:广州"
}
}
}
# data_histogram_time 间隔时间聚合查询
# 这里是针对查询出来的结果进行间隔时间段的聚合
# field 聚合字段 interval 时间间隔区间 time_zone 时区(一开始没设置慢了8小时) format输出的格式
{
"query":{
"query_string":{
"query":"time:[1492012800 TO 1492082307] AND types:[1 TO 2] "
}
},
"aggs":{
"data_histogram_time":{
"date_histogram":{
"field":"time",
"interval":"1h",
"time_zone":"+08:00",
"format":"MM/dd-HH:mm"
},
"aggs":{
"all_types":{
"terms":{
"field":"types"
}
}
}
}
}
}
# 聚合分析多个字段
# 主要针对一个API 返回多个统计维度的聚合字段
{
"query":{
"query_string":{
"query":"time:[1492963200 TO 1493024521] AND types:[1 TO 5]"
}
},
"aggs":{
"citys":{
"terms":{
"field": "position",
"size":"5"
}
},
"operators":{
"terms":{
"field": "operator",
"size":"5"
}
}
}
}
# 嵌套集合多个字段
# 先聚合position,再聚合position下的type,可以层层嵌套
{
"query":{
"query_string":{
"query":"time:[1491987322 TO 1492052831] AND types:[1 TO 5]"
}
},
"aggs":{
"citys":{
"terms":{
"field":"position",
"size":100
},
"aggs":{
"types":{
"terms":{
"field":"types"
}
}
}
}
}
}