聚合的作用范围有4种:默认对查询结果进行聚合,filter,post_filter,global
一,默认对查询结果进行聚合
GET kibana_sample_data_ecommerce/_search
{
"query": {
"match_all": {}
},
"aggs": {
"day_bucket": {
"terms": {
"field":"order_date",
// 排序
"order":[
{"_count":"desc"},
{"_key":"asc"}
]
}
}
}
}
二,filter
GET kibana_sample_data_ecommerce/_search
{
"aggs": {
"day_bucket": {
"filter":{
"range":{
"day_of_week_i":{
"from":4
}
}
},
// 基于上面的过滤结果进行聚合
"aggs":{
"count_day_i":{
"terms": {
"field":"day_of_week_i",
"order":[
{"_count":"desc"},
{"_key":"desc"}
]
}
}
}
},
// 基于所有文档进行聚合
"all_count_day_i":{
"terms": {
"field":"day_of_week_i",
"order":[
{"_count":"desc"},
{"_key":"desc"}
]
}
}
}
}
三,post_filter
GET kibana_sample_data_ecommerce/_search
{
"aggs": {
"day_bucket": {
"terms": {
"field":"day_of_week_i",
"order":[
{"_count":"desc"},
{"_key":"desc"}
]
}
}
},
"post_filter":{
"term":{
"day_of_week_i":4
}
}
}
四,global
GET kibana_sample_data_ecommerce/_search
{
"query": {
"range": {
"day_of_week_i": {
"gte": 3,
"lte": 4
}
}
},
"aggs": {
// 对查询结果进行聚合
"avg_part": {
"avg": {
"field":"day_of_week_i"
}
},
// 忽略查询结果,对所有文档进行聚合
"all":{
"global":{},
"aggs":{
"avg_all":{
"avg":{
"field":"day_of_week_i"
}
}
}
}
}
}