iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 20
0
Elastic Stack on Cloud

Python&Elasticsearch 入門系列 第 20

IT鐵人第20天 Elasticsearch 使用python查詢資料 Aggregations

  • 分享至 

  • twitterImage
  •  

今天的文章要帶大家認識Elasticsearch提供的一個非常強大的功能:Aggregations

Aggregations以我的看法的話,我會解釋成可以把搜尋出來的結果依照需求統計的功能,下面就來對Aggregations做一點簡單的介紹吧

Aggregations

Aggregations有分以下4種:

Bucket Aggregations

這種聚合方式會建立bucket(桶),每一個Bucket都與一個key跟document criterion(文檔條件)有關聯,執行聚合時會對每個文檔比對所有bucket,當條件匹配時文檔會被存入bucket,當聚合結束時會得到一個bucket列表,每個bucket都有屬於該bucket的文檔

Metrics Aggregations

對一組文檔進行追蹤及計算指標

Pipeline Aggregations

匯總其他Aggregations的ouput以及其相關的指標的一種聚合

Matrix Aggregations

可對多個字段進行操作,並根據從搜尋結果的文檔字段中提取的值生成矩陣結果,這種Aggregations不支援scripting(腳本)

另外聚合也支援巢狀結構,就是在一種聚合底下再聚合另外一種聚合

以下是官方給的聚合的基本結構

"aggregations" : {
    "<aggregation_name>" : {
        "<aggregation_type>" : {
            <aggregation_body>
        }
        [,"meta" : {  [<meta_data_body>] } ]?
        [,"aggregations" : { [<sub_aggregation>]+ } ]?
    }
    [,"<aggregation_name_2>" : { ... } ]*
}

aggregations:也可寫成aggs
aggregation_name:該次聚合的名稱
aggregation_type:聚合的方式
aggregation_body:想聚合的字段之類的

今天就先對聚合做一點簡單的介紹就好,明天開始還有之後好幾天都會對Metrics Aggregations的每一種聚合方式做介紹跟範例


上一篇
IT鐵人第19天 Elasticsearch 使用python查詢資料 function_score 範例(2)
下一篇
IT鐵人第21天 Elasticsearch 使用python查詢資料 Aggregations:Avg/Weighted Avg
系列文
Python&Elasticsearch 入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言