还是基于上一篇文章的索引,kibana_sample_data_ecommerce。
基于pipeline 求最大值
这个是查询周一购买的金额的各项统计。
GET kibana_sample_data_ecommerce/_search
{
"track_total_hits": true,
"size": 0,
"aggs": {
"terms_day_of_week": {
"terms": {
"field": "day_of_week",
"size": 1000,
"include": "Monday"
},
"aggs": {
"stats_taxful_total_price": {
"stats": {
"field": "taxful_total_price"
}
}
}
}
}
}
{
"took" : 5,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 4675,
"relation" : "eq"
},
"max_score" : null,
"hits" : [ ]
},
"aggregations" : {
"terms_day_of_week" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "Monday",
"doc_count" : 579,
"avg_taxful_total_price" : {
"count" : 579,
"min" : 15.9765625,
"max" : 2250.0,
"avg" : 78.42882394214162,
"sum" : 45410.2890625
}
}
]
}
}
}
从上边的语句中提取到最大的值或者最小的值。
GET kibana_sample_data_ecommerce/_search
{
"track_total_hits": true,
"size": 0,
"aggs": {
"terms_day_of_week": {
"terms": {
"field": "day_of_week",
"size": 1000,
"include": "Monday"
},
"aggs": {
"stats_taxful_total_price": {
"stats": {
"field": "taxful_total_price"
}
}
}
},
"pipeline-max-taxful_total_price":{
"max_bucket": {
"buckets_path": "terms_day_of_week>stats_taxful_total_price.max"
}
}
}
}
pipeline 2层获取
先获取stats_taxful_total_price中的最大。
然后再获取terms_day_of_week中的最大值。
GET kibana_sample_data_ecommerce/_search
{
"track_total_hits": true,
"size": 0,
"aggs": {
"terms_day_of_week": {
"terms": {
"field": "day_of_week",
"size": 1000
},
"aggs": {
"terms_manufacturer": {
"terms": {
"field": "taxful_total_price"
},
"aggs": {
"stats_taxful_total_price": {
"stats": {
"field": "taxful_total_price"
}
}
}
},
"pipeline_taxful_total_price_max":
{
"max_bucket": {
"buckets_path": "terms_manufacturer>stats_taxful_total_price.max"
}
}
}
},
"pipeline_day_of_week_max":{
"max_bucket": {
"buckets_path": "terms_day_of_week>pipeline_taxful_total_price_max"
}
}
}
}
pipeline-cumulative_sum 累计求和
GET kibana_sample_data_ecommerce/_search
{
"track_total_hits": true,
"size": 0,
"aggs": {
"order_date_date_histogram": {
"date_histogram": {
"field": "order_date",
"calendar_interval": "week",
"extended_bounds": {
"min": "now/d",
"max": "now/d"
}
},
"aggs": {
"stats_taxful_total_price": {
"stats": {
"field": "taxful_total_price"
}
},
"pipeline-cumulative_sum":{
"cumulative_sum": {
"buckets_path": "stats_taxful_total_price.sum"
}
}
}
}
}
}
moving_avg-类滑动窗口的求平均值
GET kibana_sample_data_ecommerce/_search
{
"track_total_hits": true,
"size": 0,
"aggs": {
"order_date_date_histogram": {
"date_histogram": {
"field": "order_date",
"calendar_interval": "week",
"format": "yyyy-MM-dd",
"extended_bounds": {
"min": "now/d",
"max": "now/d"
}
},
"aggs": {
"sum_taxful_total_price": {
"sum": {
"field": "taxful_total_price"
}
},
"pipeline-avg":{
"moving_avg": {
"buckets_path": "sum_taxful_total_price",
"window": 2
}
}
}
}
}
}
moving_fn-类滑动窗口计算
GET kibana_sample_data_ecommerce/_search
{
"track_total_hits": true,
"size": 0,
"aggs": {
"order_date_date_histogram": {
"date_histogram": {
"field": "order_date",
"calendar_interval": "week",
"format": "yyyy-MM-dd",
"extended_bounds": {
"min": "now/d",
"max": "now/d"
}
},
"aggs": {
"sum_taxful_total_price": {
"sum": {
"field": "taxful_total_price"
}
},
"pipeline-avg":{
"moving_fn": {
"buckets_path": "sum_taxful_total_price",
"window": 2,
"script":"MovingFunctions.sum(values)",
"shift":1
}
}
}
}
}
}
serial_diff-计算2个结果的差值
GET kibana_sample_data_ecommerce/_search
{
"track_total_hits": true,
"size": 0,
"aggs": {
"order_date_date_histogram": {
"date_histogram": {
"field": "order_date",
"calendar_interval": "week",
"format": "yyyy-MM-dd",
"extended_bounds": {
"min": "now/d",
"max": "now/d"
}
},
"aggs": {
"sum_taxful_total_price": {
"sum": {
"field": "taxful_total_price"
}
},
"pipeline-avg":{
"serial_diff": {
"buckets_path": "sum_taxful_total_price"
}
}
}
}
}
}