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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

elasticsearch api中的Buckets(桶)及Metrics(指标)

發布時間:2024/1/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elasticsearch api中的Buckets(桶)及Metrics(指标) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

和查詢DSL一樣,聚合(Aggregations)也擁有一種可組合(Composable)的語法:獨立的功能單元可以被混合在一起來滿足你的需求。這意味著需要學習的基本概念雖然不多,但是它們的組合方式是幾近無窮的。

為了掌握聚合,你只需要了解兩個主要概念:

Buckets(桶):

滿足某個條件的文檔集合。

Metrics(指標):

為某個桶中的文檔計算得到的統計信息。

就是這樣!每個聚合只是簡單地由一個或者多個桶,零個或者多個指標組合而成。可以將它粗略地轉換為SQL:

SELECT COUNT(color) FROM table GROUP BY color

以上的COUNT(color)就相當于一個指標。GROUP BY color則相當于一個桶。

桶和SQL中的組(Grouping)擁有相似的概念,而指標則與COUNT(),SUM(),MAX()等相似。

讓我們仔細看看這些概念。


桶(Buckets)

一個桶就是滿足特定條件的一個文檔集合:

  • 一名員工要么屬于男性桶,或者女性桶。
  • 城市Albany屬于New York州這個桶。
  • 日期2014-10-28屬于十月份這個桶。

隨著聚合被執行,每份文檔中的值會被計算來決定它們是否匹配了桶的條件。如果匹配成功,那么該文檔會被置入該桶中,同時聚合會繼續執行。

桶也能夠嵌套在其它桶中,能讓你完成層次或者條件劃分這些需求。比如,Cincinnati可以被放置在Ohio州這個桶中,而整個Ohio州則能夠被放置在美國這個桶中。

ES中有很多類型的桶,讓你可以將文檔通過多種方式進行劃分(按小時,按最流行的詞條,按年齡區間,按地理位置,以及更多)。但是從根本上,它們都根據相同的原理運作:按照條件對文檔進行劃分。


指標(Metrics)

桶能夠讓我們對文檔進行有意義的劃分,但是最終我們還是需要對每個桶中的文檔進行某種指標計算。分桶是達到最終目的的手段:提供了對文檔進行劃分的方法,從而讓你能夠計算需要的指標。

多數指標僅僅是簡單的數學運算(比如,min,mean,max以及sum),它們使用文檔中的值進行計算。在實際應用中,指標能夠讓你計算例如平均薪資,最高出售價格,或者百分之95的查詢延遲。


將兩者結合起來

一個聚合就是一些桶和指標的組合。一個聚合可以只有一個桶,或者一個指標,或者每樣一個。在桶中甚至可以有多個嵌套的桶。比如,我們可以將文檔按照其所屬國家進行分桶,然后對每個桶計算其平均薪資(一個指標)。

因為桶是可以嵌套的,我們能夠實現一個更加復雜的聚合操作:

  • 將文檔按照國家進行分桶。(桶)
  • 然后將每個國家的桶再按照性別分桶。(桶)
  • 然后將每個性別的桶按照年齡區間進行分桶。(桶)
  • 最后,為每個年齡區間計算平均薪資。(指標)
  • 此時,就能夠得到每個<國家,性別,年齡>組合的平均薪資信息了。它可以通過一個請求,一次數據遍歷來完成!

    總結

    以上是生活随笔為你收集整理的elasticsearch api中的Buckets(桶)及Metrics(指标)的全部內容,希望文章能夠幫你解決所遇到的問題。

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