日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

aggregations 详解1(概述)

發布時間:2023/12/10 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 aggregations 详解1(概述) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

aggregation分類

aggregations —— 聚合,提供了一種基于查詢條件來對數據進行分桶、計算的方法。有點類似于 SQL 中的 group by 再加一些函數方法的操作。

聚合可以嵌套,由此可以組成復雜的操作(Bucketing聚合可以包含sub-aggregation)。

聚合整體上可以分為 3 類:

1. Bucketing:桶分聚合:

  • 此類聚合執行的是對文檔分組的操作,把滿足相關特性的文檔分到一個桶里,即桶分。輸出結果往往是一個個包含多個文檔的桶。
  • 此類聚合會有一個關鍵字(field、script),以及一些桶分(分組)的判斷條件。執行聚合操作時候,文檔會判斷每一個分組條件,如果滿足某個,該文檔就會被分為該組(fall in)。

2. Metric:指標聚合:

  • 此類聚合是對文檔進行一些權值計算(比如求所有文檔某個字段的max值)。輸出結果往往是文檔的權值,相當于為文檔添加了一些統計信息。
  • 此類聚合基于特定字段(field)或腳本值(generated using scripts),計算聚合中文檔的權值。

3. Pipeline:管道聚合:

  • 對其它聚合操作的輸出及其關聯指標進行聚合。
  • 此類聚合的作用對象往往是桶,而不是文檔,是一種后期對每個分桶的一些計算操作。

應用場景

對于 3 中聚合,常見的應用場景如下流程:

buckets 聚合對文檔進行必要的歸類(桶分) ——> metric 聚合對每個桶進行一些額外的信息計算(如:max) ——> pipeline 聚合針對所有桶做一些桶層面的統計或計算

應用示例:

{"aggs" : {"sales_per_month" : {"date_histogram" : { // bucket 聚合,按照月份進行分桶,每個月的歸屬一個桶"field" : "date","interval" : "month"},"aggs": {"sales": {"sum": { // metric 聚合,對每個桶類的 price 求和,即每月的銷售額"field": "price"}}}},"max_monthly_sales": {"max_bucket": { // pipeline 聚合,求所有桶中銷售額 sales 最大的值"buckets_path": "sales_per_month>sales" }}} }

?

aggregation結構

聚合可以是父子(嵌套)關系聚合,buckets 聚合作為父,metric 聚合作為子。

聚合也可以是兄弟關系聚合,buckets 聚合在前,pipeline 聚合在后。

結構如下:

"aggregations" : { //定義聚合對象,也可用 "aggs""<aggregation_name>" : { //聚合的名稱,用戶自定義"<aggregation_type>" : { //聚合類型,比如 "histogram"<aggregation_body> //每個聚合類型都有其自己的結構定義 }[,"meta" : { [<meta_data_body>] } ]?[,"aggregations" : { [<sub_aggregation>]+ } ]? //可以定義多個 sub-aggregation }[,"<aggregation_name_2>" : { ... } ]* //定義額外的多個平級 aggregation,只有 Bucketing 類型才有意義 }

?

轉載于:https://www.cnblogs.com/licongyu/p/5499388.html

總結

以上是生活随笔為你收集整理的aggregations 详解1(概述)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。