Pipeline aggregations管道聚合

管道聚合工作于其他聚合产生的输出结果而不是文档集,用于向输出树添加信息
按管道聚集运算来源分类,管道聚集可以分为基于父聚集结果和基于兄弟聚集结果两类。
前者使用父聚集的结果并将运算结果添加到父聚集结果中,后者则使用兄弟聚集的结果并且结果会展示在自己的聚集结果中。

(1)基于父聚集

基于父聚集的管道聚集包括moving_avg、moving_fn、bucket_script、bucket_selector、bucket_sort、derivative、cumulative_sum、serial_diff八种。

(2)基于兄弟聚集

基于兄弟聚集的管道聚集包括avg_bucket、max_bucket、min_bucket、sum_bucket、stats_bucket、extended_ stats_ bucket、percentiles_bucket七种。如果将它们名称中的bucket去除,它们就与之前介绍的部分指标聚集同名了。事实上,它们不仅在名称上接近,而且在功能上也类似,只是聚集运算的范围由整个文档变成了另一个聚集结果。

buckets_path参数

  • buckets_path参数 用于指定访问其他桶中指标值的路径

  • buckets_ path参数的值由三部分组成,即聚集名称、指标名称和分隔符。聚集名称与聚集名称之间的分隔符是“>”,而聚集名称与指标名称之间的分隔符使用“.”。

  • buckets_path 语法

buckets_path Syntax 语法
AGG_SEPARATOR >
METRIC_SEPARATOR .
AGG_NAME
METRIC
MULTIBUCKET_KEY [<KEY_NAME>]
PATH <AGG_NAME><MULTIBUCKET_KEY>? (<AGG_SEPARATOR>, <AGG_NAME> )* ( <METRIC_SEPARATOR>, )

1.Average bucket aggregation 平均桶聚合 ====================================================

  • 同级管道聚合

  • 它计算同级聚合中指定度量的平均值。同级聚合必须是多桶聚合,针对的是度量聚合(metric Aggregation)。

  • 参数
    1.buckets_path 指定聚合的名称,支持多级嵌套聚合。
    2.gap_policy 当管道聚合遇到不存在的值,有点类似于term等聚合的(missing)时所采取的策略,可选择值为:skip、insert_zeros。
    – skip:此选项将丢失的数据视为bucket不存在。它将跳过桶并使用下一个可用值继续计算。
    – insert_zeros:默认使用0代替。
    3.format 用于格式化聚合桶的输出(key)。

  • Response body 反应小组
    value
    value_as_string

计算每月平均销售额:

  • 第一级聚合:sales_per_month,(按月)直方图聚合。

  • 第二级聚合:sales,在按月聚合的基础上,对每个月的文档求sum。

  • 第三级聚合:avg_monthly_sales,对上面的聚合求平均值

  • “buckets_path”: “sales_per_month>sales”
    avg_bucket聚合是想要得到sales_per_month日期直方图聚合中sales聚合值的平均值。
    1.对sales_per_month分组聚合的sales指标作为pipeline aggregations的输入源。
    2.将"sales"中的sum值作为sales_per_month桶聚合的输入
    3.将指向 sales指标值,该值包含在 “sales_per_month” 存储桶聚合中。


POST /sales/_search?size=0
{"size": 0,"aggs": {"sales_per_month": {"date_histogram": {"field": "date","calendar_interval": "month","format": "yyyy-MM"},"aggs": {"sales": {"sum": {"field": "price"}}}},"avg_monthly_sales": {"avg_bucket": {"buckets_path": "sales_per_month>sales","gap_policy": "skip","format": "#,##0.00;(#,##0.00)"}}}
}

响应结果:

  • aggregations由sales_per_month + avg_monthly_sales组成
  • 1.sales_per_month部分:
    按月份聚合bucket共3个。
    key_as_string 月份
    doc_count 当月的doc数量
    sales.value 当月price的sum值
  • 2.avg_monthly_sales部分:
    value:三个月平均值
{"took" : 1,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 16,"relation" : "eq"},"max_score" : null,"hits" : [ ]},"aggregations" : {"sales_per_month" : {"buckets" : [{"key_as_string" : "2022-04","key" : 1648771200000,"doc_count" : 2,"sales" : {"value" : 140.0}},{"key_as_string" : "2022-05","key" : 1651363200000,"doc_count" : 2,"sales" : {"value" : 30.0}},{"key_as_string" : "2022-06","key" : 1654041600000,"doc_count" : 12,"sales" : {"value" : 2110.0}}]},"avg_monthly_sales" : {"value" : 760.0,"value_as_string" : "760.00"}}
}

2.Max Bucket Aggregation====================================================

  • 最大值桶聚合所定义的桶包含一组聚合指定度量的最大值,并且同时输出桶的键和值。指定的度量必须是数字并且这个聚合必须是多桶聚合。

计算每月销售总额的最大值:

  • 第一级聚合:sales_per_month,(按月)直方图聚合。

  • 第二级聚合:sales,在按月聚合的基础上,对每个月的文档求sum。

  • 第三级聚合:max_monthly_sales,对上面的聚合求最大值

  • “buckets_path”: “sales_per_month>sales”
    max_bucket聚合想要计算最大值的桶路径,要得到sales_per_month日期直方图中sales聚合的最大值
    1.对sales_per_month分组聚合的sales指标作为pipeline aggregations的输入源。
    2.将"sales"中的sum值作为sales_per_month桶聚合的输入
    3.将指向 sales指标值,该值包含在 “sales_per_month” 存储桶聚合中。

POST /sales/_search?size=0
{"aggs": {"sales_per_month": {"date_histogram": {"field": "date","calendar_interval": "month","format": "yyyy-MM"},"aggs": {"sales": {"sum": {"field": "price"}}}},"max_monthly_sales": {"max_bucket": {"buckets_path": "sales_per_month>sales","gap_policy": "skip"}}}
}

响应结果:

  • aggregations 由 sales_per_month + max_monthly_sales 组成
  • 1.sales_per_month部分:
    按月份聚合bucket共3个。
    key_as_string 月份
    doc_count 当月的doc数量
    sales.value 当月price的sum值
  • 2.max_monthly_sales 部分:
    value:三个月总价的最高值
{"took" : 0,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 16,"relation" : "eq"},"max_score" : null,"hits" : [ ]},"aggregations" : {"sales_per_month" : {"buckets" : [{"key_as_string" : "2022-04","key" : 1648771200000,"doc_count" : 2,"sales" : {"value" : 140.0}},{"key_as_string" : "2022-05","key" : 1651363200000,"doc_count" : 2,"sales" : {"value" : 30.0}},{"key_as_string" : "2022-06","key" : 1654041600000,"doc_count" : 12,"sales" : {"value" : 2110.0}}]},"max_monthly_sales" : {"value" : 2110.0,"keys" : ["2022-06"]}}
}

3.Min Bucket Aggregation ====================================================

  • 最小分组聚合所定义的桶包含一组聚合指定度量的最小值,并且同时输出桶的键和值。指定的度量必须是数字型而且这个组聚合必须是多桶聚合。

计算每月销售总额的最小值:

  • 第一级聚合:sales_per_month,(按月)直方图聚合。

  • 第二级聚合:sales,在按月聚合的基础上,对每个月的文档求sum。

  • 第三级聚合:min_monthly_sales,对上面的聚合求最小值

  • “buckets_path”: “sales_per_month>sales”
    min_bucket聚合是要得到sales_per_month日期直方图中sales聚合的最小值。
    1.对sales_per_month分组聚合的sales指标作为pipeline aggregations的输入源。
    2.将"sales"中的sum值作为sales_per_month桶聚合的输入
    3.将指向 sales指标值,该值包含在 “sales_per_month” 存储桶聚合中。

POST /sales/_search?size=0
{"aggs": {"sales_per_month": {"date_histogram": {"field": "date","calendar_interval": "month","format": "yyyy-MM"},"aggs": {"sales": {"sum": {"field": "price"}}}},"min_monthly_sales": {"min_bucket": {"buckets_path": "sales_per_month>sales" }}}
}

响应结果:

  • aggregations 由 sales_per_month + min_monthly_sales 组成
  • 1.sales_per_month部分:
    按月份聚合bucket共3个。
    key_as_string 月份
    doc_count 当月的doc数量
    sales.value 当月price的sum值
  • 2.min_monthly_sales 部分:
    value:三个月总价的最小值
{"took" : 1,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 16,"relation" : "eq"},"max_score" : null,"hits" : [ ]},"aggregations" : {"sales_per_month" : {"buckets" : [{"key_as_string" : "2022-04","key" : 1648771200000,"doc_count" : 2,"sales" : {"value" : 140.0}},{"key_as_string" : "2022-05","key" : 1651363200000,"doc_count" : 2,"sales" : {"value" : 30.0}},{"key_as_string" : "2022-06","key" : 1654041600000,"doc_count" : 12,"sales" : {"value" : 2110.0}}]},"min_monthly_sales" : {"value" : 30.0,"keys" : ["2022-05"]}}
}

4.Sum bucket aggregation====================================================

  • 总和桶聚合用于计算一组聚合创建的所有桶中指定度量的和。指定的度量必须是数字型而且这个组聚合必须是多桶聚合。

计算每月销售总额求和:

  • 第一级聚合:sales_per_month,(按月)直方图聚合。

  • 第二级聚合:sales,在按月聚合的基础上,对每个月的文档求sum。

  • 第三级聚合:sum_monthly_sales,对上面的聚合求和

  • “buckets_path”: “sales_per_month>sales”
    – sum_bucket聚合是要得到sales_per_month日期直方图中sales聚合的总和。
    – 1.对sales_per_month分组聚合的sales指标作为pipeline aggregations的输入源。
    – 2.将"sales"中的sum值作为sales_per_month桶聚合的输入
    – 3.将指向 sales指标值,该值包含在 “sales_per_month” 存储桶聚合中。


POST /sales/_search?size=0
{"aggs": {"sales_per_month": {"date_histogram": {"field": "date","interval": "month","format": "yyyy-MM"},"aggs": {"sales": {"sum": {"field": "price"}}}},"sum_monthly_sales": {"sum_bucket": {"buckets_path": "sales_per_month>sales"}}}
}

响应结果:

  • aggregations 由 sales_per_month + sum_monthly_sales 组成
  • 1.sales_per_month部分:
    按月份聚合bucket共3个。
    key_as_string 月份
    doc_count 当月的doc数量
    sales.value 当月price的sum值
  • 2.sum_monthly_sales 部分:
    value:三个月总价的总和
{"took" : 1,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 16,"relation" : "eq"},"max_score" : null,"hits" : [ ]},"aggregations" : {"sales_per_month" : {"buckets" : [{"key_as_string" : "2022-04","key" : 1648771200000,"doc_count" : 2,"sales" : {"value" : 140.0}},{"key_as_string" : "2022-05","key" : 1651363200000,"doc_count" : 2,"sales" : {"value" : 30.0}},{"key_as_string" : "2022-06","key" : 1654041600000,"doc_count" : 12,"sales" : {"value" : 2110.0}}]},"sum_monthly_sales" : {"value" : 2280.0}}
}

5.Stats Bucket Aggregation统计桶聚合====================================================

  • 统计桶聚合,在一组聚合的所有桶中对一个指定的度量计算各种统计值。指定的度量必须是数字型而且这个桶聚合必须是多桶聚合。

计算每月销售总额各种统计状态:

count 总数
min 最小值
max 最大值
avg 平均值
sum 总和

  • 第一级聚合:sales_per_month,(按月)直方图聚合。

  • 第二级聚合:sales,在按月聚合的基础上,对每个月的文档求sum。

  • 第三级聚合:stats_monthly_sales,对上面的聚合统计状态

  • “buckets_path”: “sales_per_month>sales”
    stats_bucket聚合是要得到sales_per_month日期直方图中的sales聚合的统计信息。
    1.对sales_per_month分组聚合的sales指标作为pipeline aggregations的输入源。
    2.将"sales"中的sum值作为sales_per_month桶聚合的输入
    3.将指向 sales指标值,该值包含在 “sales_per_month” 存储桶聚合中。

POST /sales/_search?size=0
{"aggs": {"sales_per_month": {"date_histogram": {"field": "date","calendar_interval": "month","format": "yyyy-MM"},"aggs": {"sales": {"sum": {"field": "price"}}}},"stats_monthly_sales": {"stats_bucket": {"buckets_path": "sales_per_month>sales"}}}
}

响应结果:

  • aggregations 由 sales_per_month + stats_monthly_sales 组成

  • 1.sales_per_month部分:
    按月份聚合bucket共3个。
    key_as_string 月份
    doc_count 当月的doc数量
    sales.value 当月price的sum值

  • 2.stats_monthly_sales 部分:
    value:三个月总价的统计状态

{"took" : 1,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 16,"relation" : "eq"},"max_score" : null,"hits" : [ ]},"aggregations" : {"sales_per_month" : {"buckets" : [{"key_as_string" : "2022-04","key" : 1648771200000,"doc_count" : 2,"sales" : {"value" : 140.0}},{"key_as_string" : "2022-05","key" : 1651363200000,"doc_count" : 2,"sales" : {"value" : 30.0}},{"key_as_string" : "2022-06","key" : 1654041600000,"doc_count" : 12,"sales" : {"value" : 2110.0}}]},"stats_monthly_sales" : {"count" : 3,"min" : 30.0,"max" : 2110.0,"avg" : 760.0,"sum" : 2280.0}}
}

6. Extended stats bucket aggregation扩展stats====================================================

  • 同级管道聚合,它计算同级集合中指定度量的所有桶的各种统计信息。指定的度量必须是数字,同级聚合必须是多桶聚合。

  • 与stats_bucket聚合相比,此聚合提供了更多的统计信息(平方和,标准偏差等)。

  • 参数
    gap_policy 在数据中找到差异时应用的策略
    format 应用于此聚合的输出值的格式
    sigma 要显示的平均值之上/之下的标准偏差数

计算每月销售总额扩展统计状态:

count 总数
min 最小值
max 最大值
avg 平均值
sum 总和
sum_of_squares
variance
variance_population
variance_sampling
std_deviation
std_deviation_population
std_deviation_sampling
std_deviation_bounds

  • 第一级聚合:sales_per_month,(按月)直方图聚合。

  • 第二级聚合:sales,在按月聚合的基础上,对每个月的文档求sum。

  • 第三级聚合:extended_stats_bucket,对上面的聚合统计状态

  • “buckets_path”: “sales_per_month>sales”
    extendes_stats_bucket聚合要得到在sales_per_month日期直方图中计算sales聚合的统计信息。
    1.对sales_per_month分组聚合的sales指标作为pipeline aggregations的输入源。
    2.将"sales"中的sum值作为sales_per_month桶聚合的输入
    3.将指向 sales指标值,该值包含在 “sales_per_month” 存储桶聚合中。

POST /sales/_search?size=0
{"aggs": {"sales_per_month": {"date_histogram": {"field": "date","calendar_interval": "month","format": "yyyy-MM"},"aggs": {"sales": {"sum": {"field": "price"}}}},"stats_monthly_sales": {"extended_stats_bucket": {"buckets_path": "sales_per_month>sales"}}}
}

响应结果:

  • aggregations 由 sales_per_month + extended_stats_bucket 组成

  • 1.sales_per_month部分:
    按月份聚合bucket共3个。
    key_as_string 月份
    doc_count 当月的doc数量
    sales.value 当月price的sum值

  • 2.extended_stats_bucket 部分:
    value:三个月的统计状态

{"took" : 2,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 16,"relation" : "eq"},"max_score" : null,"hits" : [ ]},"aggregations" : {"sales_per_month" : {"buckets" : [{"key_as_string" : "2022-04","key" : 1648771200000,"doc_count" : 2,"sales" : {"value" : 140.0}},{"key_as_string" : "2022-05","key" : 1651363200000,"doc_count" : 2,"sales" : {"value" : 30.0}},{"key_as_string" : "2022-06","key" : 1654041600000,"doc_count" : 12,"sales" : {"value" : 2110.0}}]},"stats_monthly_sales" : {"count" : 3,"min" : 30.0,"max" : 2110.0,"avg" : 760.0,"sum" : 2280.0,"sum_of_squares" : 4472600.0,"variance" : 913266.6666666666,"variance_population" : 913266.6666666666,"variance_sampling" : 1369900.0,"std_deviation" : 955.6498661469412,"std_deviation_population" : 955.6498661469412,"std_deviation_sampling" : 1170.427272409525,"std_deviation_bounds" : {"upper" : 2671.2997322938827,"lower" : -1151.2997322938825,"upper_population" : 2671.2997322938827,"lower_population" : -1151.2997322938825,"upper_sampling" : 3100.85454481905,"lower_sampling" : -1580.8545448190498}}}
}

7.Percentiles Bucket Aggregation(百分数桶聚合) ====================================================

  • 同级管道聚合,它计算同级聚合中指定度量的所有桶的百分位数。指定度量必须是数字,并且同级聚合必须是多桶聚合。

  • 百分数桶返回最近输入的数据点,该数据点不大于所请求的百分数;它不会在数据点之间插值。

  • 百分数是精确计算的,不是近似值(与百分数指标不同)。这意味着在丢弃数据之前,实现会在内存中维护一个有序的数据列表来计算百分数。如果你尝试在数百万的数据点中计算一个百分数的percentiles_bucket,可能会遇到内存压力问题。

  • 参数
    gap_policy 在数据中找到差异时应用的策略
    format 应用于此聚合的输出值的格式
    sigma 要显示的平均值之上/之下的标准偏差数
    percents 要计算的百分数列表

计算每月sales桶总数的百分数:

  • 第一级聚合:sales_per_month,(按月)直方图聚合。

  • 第二级聚合:sales,在按月聚合的基础上,对每个月的文档求sum。

  • 第三级聚合:percentiles_monthly_sales,对上面的聚合统计状态

  • “buckets_path”: “sales_per_month>sales”
    percentiles_bucket聚合需要得到sales_per_month数据直方图中计算sales聚合的统计数据
    1.对sales_per_month分组聚合的sales指标作为pipeline aggregations的输入源。
    2.将"sales"中的sum值作为sales_per_month桶聚合的输入
    3.将指向 sales指标值,该值包含在 “sales_per_month” 存储桶聚合中。

  • percents指定了我们希望计算的百分数,在这里,是第25,第50和第75百分数。

POST /sales/_search?size=0
{"aggs": {"sales_per_month": {"date_histogram": {"field": "date","calendar_interval": "month","format": "yyyy-MM"},"aggs": {"sales": {"sum": {"field": "price"}}}},"percentiles_monthly_sales": {"percentiles_bucket": {"buckets_path": "sales_per_month>sales", "percents": [ 25.0, 50.0, 75.0 ]         }}}
}

响应结果:

  • aggregations 由 sales_per_month + percentiles_monthly_sales 组成

  • 1.sales_per_month部分:
    按月份聚合bucket共3个。
    key_as_string 月份
    doc_count 当月的doc数量
    sales.value 当月price的sum值

  • 2.percentiles_monthly_sales 部分:
    value:三个月的统计状态
    第25百分数
    第50百分数
    第75百分数

{"took" : 3,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 16,"relation" : "eq"},"max_score" : null,"hits" : [ ]},"aggregations" : {"sales_per_month" : {"buckets" : [{"key_as_string" : "2022-04","key" : 1648771200000,"doc_count" : 2,"sales" : {"value" : 140.0}},{"key_as_string" : "2022-05","key" : 1651363200000,"doc_count" : 2,"sales" : {"value" : 30.0}},{"key_as_string" : "2022-06","key" : 1654041600000,"doc_count" : 12,"sales" : {"value" : 2110.0}}]},"percentiles_monthly_sales" : {"values" : {"25.0" : 140.0,"50.0" : 140.0,"75.0" : 2110.0}}}
}

数据源

DELETE salesPUT sales
{"mappings": {"properties": {"name": {"type": "keyword"},"type": {"type": "keyword"},"price": {"type": "integer"},"country": {"type": "keyword"},"tags": {"type": "keyword"},"date": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis","fields": {"keyword": {"type": "keyword","ignore_above": 20}}}}}
}POST sales/_bulk
{"index":{"_id":1}}
{"name":"yellow pepper","type":"pepper","price":20,"date":"2022-06-08 21:41:27","timestamp":1654695687000,"promoted":0,"country":"CN","tags":["vegetable","pepper","fresh","kick","yellow"]}
{"index":{"_id":2}}
{"name":"red pepper","type":"pepper","price":10,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"EN","tags":["vegetable","pepper","fresh","hot","red"]}
{"index":{"_id":3}}
{"name":"green pepper","type":"pepper","price":20,"date":"2022-05-31 21:41:27","timestamp":1654004487000,"promoted":1,"country":"TH","tags":["vegetable","pepper","fresh","fiery","green"]}
{"index":{"_id":4}}
{"name":"bule pepper","type":"pepper","price":10,"date":"2022-05-31 21:41:27","timestamp":1654004487000,"promoted":1,"country":"CN","tags":["vegetable","pepper","pecial discount","hot","blue"]}
{"index":{"_id":5}}
{"name":"balck t-shirt","type":"t-shirt","price":60,"date":"2022-04-01 12:41:27","timestamp":1648788087000,"promoted":1,"country":"TH","tags":["clothes","t-shirt","grandad shirt","balck","hot","sport","cotton"]}
{"index":{"_id":6}}
{"name":"green t-shirt","type":"t-shirt","price":80,"date":"2022-04-01 12:41:27","timestamp":1648788087000,"promoted":1,"country":"CN","tags":["clothes","t-shirt","green","v-neck","blouse","pure cotton"]}
{"index":{"_id":7}}
{"name":"blue t-shirt","type":"t-shirt","price":100,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"EN","tags":["clothes","t-shirt","blue","navy collar","100% cotton"]}
{"index":{"_id":8}}
{"name":"red t-shirt","type":"t-shirt","price":80,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":0,"country":"CN","tags":["clothes","t-shirt","red","sweetheart (heart shaped) neckline","pure cotton"]}
{"index":{"_id":9}}
{"name":"balck hat","type":"hat","price":260,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"CN","tags":["clothes","hat","balck","streetwear","sunscreen","Bucket hat","Screen Printing","polyester 190t","Kaitlyn Bristow"]}
{"index":{"_id":10}}
{"name":"red hat","type":"hat","price":200,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"EN","tags":["clothes","hat","red","streetwear","sunscreen","straw hat","90% straw"]}
{"index":{"_id":11}}
{"name":"white hat","type":"hat","price":180,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"CN","tags":["clothes","hat","white","streetwear","sunscreen","cowboy cap","felt","Bollman Hat","80% wool,20% N"]}
{"index":{"_id":12}}
{"name":"balck hat","type":"hat","price":160,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"TH","tags":["clothes","hat","balck","streetwear","Bucket hat","Baseball cap","hot","sport","30% cotton"]}
{"index":{"_id":13}}
{"name":"blue hat","type":"hat","price":160,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"TH"}
{"index":{"_id":14}}
{"name":"red bag","type":"bag","price":300,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"EN","tags":["bag","red","sport","90% straw"]}
{"index":{"_id":15}}
{"name":"white bag","type":"bag","price":380,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"CN","tags":["bag","white","sport","80% wool,20% N"]}
{"index":{"_id":16}}
{"name":"balck bag","type":"bag","price":260,"date":"2022-06-12 21:41:27","timestamp":1655041287000,"promoted":1,"country":"TH","tags":["clothes","bag","balck","hot","sport","30% cotton"]}

Pipeline aggregations管道聚合-Sibling-1相关推荐

  1. Elasticsearch Pipeline Aggregation管道聚合详解

    文章目录 1. buckets_path 2. 特殊路径 3. Bucket Sort Aggregation 4. Avg Bucket Aggregation 5. Max Bucket Aggr ...

  2. ES聚合查询详解(四):管道聚合

    前言 前面已经介绍了指标聚合和桶聚合的使用,本文继续介绍管道聚合. 一.简介 管道聚合 Pipeline aggregations 官方文档:Pipeline Aggregations 管道聚合主要用 ...

  3. (转)Elasticsearch 聚合查询、桶聚合、管道聚合及复合查询

    转自: https://blog.csdn.net/zx711166/article/details/81906881 聚合查询 聚合是一种基于查询条件对数据进行分桶.计算的方法. 聚合可以嵌套,由此 ...

  4. python解决Mongodb 管道聚合后单文档16M限制

    最近产品定位一个问题,因为代码里面使用了管道聚合(aggregate)后,导致几万个数据里面有超过16M的数据,从而报了一个"BSONobj is invaild. Size must be ...

  5. Redis之Pipeline(管道)

    1.Pipeline定义 管道(pipeline)可以一次性发送多条命令并在执行完后一次性将结果返回,pipeline 通过减少客户端与 redis 的通信次数来实现降低往返延时时间,而且 Pipel ...

  6. Elasticsearch(三)——Es搜索(简单使用、全文查询、复合查询)、地理位置查询、特殊查询、聚合操作、桶聚合、管道聚合

    Elasticsearch(三)--Es搜索(简单使用.全文查询.复合查询).地理位置查询.特殊查询.聚合操作.桶聚合.管道聚合 一.Es搜索 这里的 Es 数据博主自己上网找的,为了练习 Es 搜索 ...

  7. 实时搜索引擎Elasticsearch(4)——Aggregations (聚合)API的使用

    上一篇博客介绍了ES中的简单查询API的使用,本篇将介绍ES提供的聚合API的使用.ES提供的聚合功能可以用来进行简单的数据分析.本文仍然以上一篇提供的数据为例来讲解.数据如下: studentNo ...

  8. Elasticsearch 管道聚合

    管道聚合 管道聚合处理其他聚合产生的输出,而不是处理文档集,它将信息添加到输出树.存在许多不同类型的管道聚合,这些聚合从其他的聚合中计算不同的信息,这些聚合主要分成两类: 双亲:与双亲聚合输出一起提供 ...

  9. 如何用item pipeline(管道)清洗数据

    管道是什么 Item管道(Item Pipeline): 主要负责处理有蜘蛛从网页中抽取的Item,主要任务是清洗.验证和存储数据. 当页面被蜘蛛解析后,将被发送到Item管道,并经过几个特定的次序处 ...

最新文章

  1. 树莓派+百度api实现人脸识别
  2. 像证券交易员一样思考和行动_3纪律与心态
  3. flink 检查点_Flink检查点和恢复
  4. @JsonFormat Date类型时间 格式化 注解 使用
  5. 解决左下角没有显示桌面图标
  6. 【Express】—get根据不同的参数返回不同的数据
  7. HUE与HBase的集成
  8. linux 查看数据库和表
  9. 中职一年级c语言考试试卷,一年级C语言课后习题答案.doc
  10. 数据库的基本操作(增删改查)
  11. 读丁磊内部邮件有感“丁磊点评:微信5分 陌陌4分 易信0分 来往负分”
  12. 闲聊机器人实例三:python实现小姜机器人(检索式chatbot_sentence_vec_by_word_词向量句向量)
  13. 正确使用自旋锁、互斥锁
  14. texstudio暗色主题2.0
  15. MySQL Kill出现Killed死锁处理
  16. python语音标注平台_Python下的自然语言处理利器-LTP语言技术平台 pyltp 学习手札...
  17. Python+IDM实现百度网盘批量下载
  18. 极域工具包 1.1正式发布!窗口化极域,解键盘锁,适配学生机房管理助手7.4-7.5!
  19. 【数字设计】芯动科技|芯原科技_2023届_笔试面试题目分享
  20. CSS开发-简单布局模板

热门文章

  1. centos根分区扩容,扩展磁盘
  2. 小米max2怎么获得sn与imei验证手机真伪
  3. html:常见标签以及标签的默认样式
  4. 中国银行将构建以电商为核心的网络银行
  5. 【ACM】漫漫长路——刷题(8)
  6. 第7章 Linux下的文件编程(一)
  7. python: isspace函数
  8. (八十四):A Hierarchical Network for Abstractive Meeting Summarization with Cross-Domain Pretraining
  9. JUnit测试命名规范
  10. 使用HttpClient模拟登陆并爬取网页