ElasticSearch的聚合查詢基礎使用教程之度量(Metric)聚合

2020-12-16 計算機java編程

ElasticSearch Aggregation

聚合框架有助於基於搜索查詢提供聚合數據。它基於稱為聚合的簡單構建塊,可以進行組合以構建複雜的數據摘要。

聚合可以看作是在一組文檔上建立分析信息的工作單元。執行的上下文定義此文檔集是什麼(例如,頂級聚合在搜索請求的已執行查詢/過濾器的上下文中執行)。有許多不同類型的聚合,每種聚合都有自己的目的和輸出。為了更好地理解這些類型,通常更容易將它們分為四個主要家族:

Metric:在一組文檔上跟蹤和計算指標的聚合。這些值通常是從文檔的欄位中提取的(使用欄位數據),但也可以使用腳本生成。Bucketing:生成存儲桶的一組聚合,其中每個存儲桶都與一個鍵和一個文檔條件相關聯。執行聚合時,將對上下文中的每個文檔評估所有存儲桶條件,並且當條件匹配時,該文檔將被視為「落入」相關存儲桶。到聚合過程結束時,我們將得到一個存儲桶列表-每個存儲桶都有一組「屬於」的文檔。Matrix:操作多個欄位並根據從請求的文檔欄位中提取的值生成矩陣結果的集合。與Metric和Bucketing不同,這個聚合不支持腳本!Pipeline:它聚合其他聚合的輸出及其相關的Metric。由於每個存儲桶有效地定義了一個文檔集(所有文件都屬於該存儲桶),因此可以潛在地在存儲桶級別關聯聚合,並且這些聚合將在該存儲桶的上下文中執行。這就是聚合真正的力量所在:聚合可以嵌套!

存儲桶聚合可以具有子聚合(存儲桶或指標)。子聚合將針對其父聚合生成的存儲桶進行計算。嵌套聚合的級別/深度沒有硬性限制(可以將一個聚合嵌套在「父」聚合下,該「父」聚合本身是另一種更高級別的聚合的子聚合)。聚合作用於double數據的表示形式。因此,當運行絕對值大於的多頭時,結果可能是近似的2^53。

度量(Metric)聚合

數值指標聚合是一種特殊類型的指標聚合,可輸出數值。一些聚合輸出單個數值度量(例如avg)並被稱為single-value numeric metrics aggregation,其他聚合則生成多個度量(例如stats)並被稱為multi-value numeric metrics aggregation。當這些值充當某些存儲桶聚合的直接子聚合(某些存儲桶聚合使您可以基於每個存儲桶中的數字度量對返回的存儲桶進行排序)時,單值和多值數字度量聚合之間的區別將發揮作用。

度量(Metric)聚合在ElasticSearch官方文檔中有很中聚合,這裡我只列舉我們最常用的幾個聚合示例。

avg 聚合

計算的平均個從聚集的文檔中提取數值。這些值可以從文檔中的特定數字欄位中提取,也可以由提供的腳本生成。

這裡我們用一個實例來進行說明,得到一個班級的學生分數平均分數。

DSL語句示例:

注: grade 欄位類型必須是整型

當然,如果成績還包含權重(weight)的話,我們可以為其添加權重.權重: 在計算常規平均值時,每個數據點都具有相等的``權重''...它對最終值的貢獻均等。可以理解為權重值越大,就越靠前,加權公式為: ∑(value * weight) / ∑(weight).

DSL語句示例:

max/min 聚合

這裡我們用一個實例來進行說明,得到班級的最高分和最低分。

DSL語句示例:

sum聚合

得到某欄位總和的值。

DSL語句示例>

top 聚合

一個top_hits指標聚合不斷被聚合跟蹤最相關的文檔。該聚合器旨在用作子聚合器,以便可以按存儲分區匯總最匹配的文檔。該top_hits聚合器可以有效地通過某些欄位經由鏟鬥聚合器用於將結果集。一個或多個存儲桶聚合器確定將結果集切成哪些屬性。

選件

from -與您要提取的第一個結果的偏移量。size-每個存儲區返回的最匹配匹配項的最大數量。默認情況下,返回前三個匹配項。sort-熱門匹配項的排序方式。默認情況下,命中按主要查詢的分數排序。這裡我們依舊通過一個示例來進行說明。根據grade(成績)降序取前2條數據,欄位只包含grade(成績)和name(姓名)。

DSL語句示例:

JAVA代碼示例

相關焦點

  • Elasticsearch高階使用方法有哪些?
    布爾組合查詢、範圍查詢…等多種高級查詢。以及非常重要的聚合查詢,其兩種常用類型:桶和度量的說明與使用。昨天學了match匹配和term匹配,這是兩種最基礎也很重要的查詢方式,使用起來也簡單。②度量(metrics)也就是我們以前學的聚合函數,比如求平均值、最大值、最小值以及求和…等這些運算。2聚合的使用在使用之前,我們需要創建一個索引庫並添加數據,作為聚合的測試數據。
  • 在springboot 中使用elasticsearch
    無論您如何將數據導入Elasticsearch,都必須考慮另一個問題。數據結構。您可能在關係資料庫中的幾個表之間分配了數據。如果您想利用Elasticsearch的優勢,則應將其存儲為單個類型。它迫使您保留冗餘數據,從而導致更大的磁碟空間使用。當然,如果查詢比關係資料庫中的等效查詢運行得更快,那麼這種效果是可以接受的。
  • Dubbo Metrics 發布新版本 2.0.1 | Dubbo 的度量統計基礎設施
    Metrics 作為微服務的重要組件,為服務的監控提供了全面的數據基礎。近日,Dubbo Metrics 發布了2.0.1版本,本文將為您探秘 Dubbo Metrics 的起源,及 7 大改進。 Dubbo Metrics 的起源Dubbo Metrics(原Alibaba Metrics)是阿里巴巴集團內部廣泛使用的度量埋點基礎類庫,有 Java 和 Node.js 兩個版本,目前開源的是 Java 版本。
  • Elasticsearch安全功能入門教程
    您可以使用企業 CA 來完成這一步驟,但是在此演示中,我們將會使用一個名為 elasticsearch-certutil的命令,通過這一命令,您無需擔心證書通常帶來的任何困擾,便能完成這一步。步驟 1:在 Elasticsearch 主節點上配置 TLS您可以使用 cd命令更改至 master 目錄,然後運行下列命令:接下來,使用您最常用的文本編輯器打開文件 config/elasticsearch.yaml。將下列代碼行粘貼到文件末尾。保存文件,現在我們便可以啟動主節點了。
  • 非常歷害的全文檢索技術Elasticsearch
    全文檢索技術Elasticsearch的學習,牽扯到的知識點太多太多了:首先要創建一個虛擬機,然後要在該虛擬機上裝Linux系統。再然後使用Xshell連接到該虛擬機。再然後安裝elasticsearch的Linux版並配置和運行elasticsearch。最後Kibana的安裝和使用,還有ik分詞器。一、Elasticsearch是什麼?
  • Elasticsearch對壘8大競品技術,孰優孰劣?
    本文僅代表個人的觀點,不代表社區技術陣營觀點,無意口水之爭,限於本人的經驗知識有限,可能與讀者觀點認知不一致。Elastic近年的快速發展,市面上已經很少發現基於Lucene構建搜尋引擎的項目,幾乎清一色選擇Elasticsearch作為基礎資料庫服務,由於其開源特性,廣大雲廠商也在此基礎上定製開發,與自己的雲平臺深度集成,但也沒有獨自發展一個分支。本次的競爭中,Elasticsearch完勝。
  • 「患者同程查詢」、「地區疫情查詢」、「在線問診」聚合…搜狗...
    搜狗搜索已在第一時間上線「全國疫情實時動態」聚合查詢功能,通過該功能用戶可以獲取全國各地疫情最新情況,在線問診聚合、確診患者同程查詢、權威疫情科普防護知識及各地發熱門診名單等等這些對個人防護極其重要的內容,為「宅」在家裡的網友提供全面的疫情信息及服務。這裡我們為大家整理了一份上述最新功能的使用指南,方便大家更好防控新型冠狀病毒疫情。
  • ElasticSearch介紹以及使用
    埠連接的信息2.在SearchField.config三.webService與Eclipse建立連接(Eclipse中引入webService接口地址)四.IIS需知WCF封裝好的webService接口,需要搭建IIS服務,然後引用之
  • Elasticsearch集群模式知多少
    Elasticsearch在默認情況下,不用任何牌配置也可以運行,這也是它設計的精妙之處,相比其它很多數據產品集群配置,如Mongodb,簡化了很多,起步入門容易。2.基本高可用(初級)集群數據節點與管理節點分離Elasticsearch內部執行查詢或者更新操作時,需要路由,默認所有節點都具備此職能,特別是大的查詢時,協調節點需要分發查詢命令到各個數據節點,查詢後的數據需要在協調節點合併排序,這樣原有數據節點代價很大
  • 交換機及聚合配置(教學篇)
    圖1 傳統的交換機鏈路工程師診斷後,決定在原設備上配置鏈路聚合進行改進,可將交換機的多個物理埠綁定成一個邏輯埠,根據用戶配置的埠負荷分擔策略,鏈路聚合能實現鏈路帶寬的增加、節約設備及工程成本,提高網絡的安全性和可靠性。
  • 鏈路聚合是什麼 鏈路聚合技術優點介紹【詳解】
    現在,撥號線路的鏈路聚合相對簡單。桌面作業系統(例如Microsoft Windows)支持MLPPP(多鏈路PPP),這是將運行PPP(點對點協議)的多個撥號鏈路結合在一起的協議。它綁定兩個ISDN64KbpsB信道。提供一個128Kps的連接信道。  使用諸如Cisco的分布式MLPPP協議,使WAN鏈路上的多鏈路路由器連接成為可能。
  • 眾神之神:正打造資金聚合&人才聚合雙寡頭
    引言:區塊鏈3.0時代,是應用大繁榮的時代,這個時期開發者就是神,而AC做了一個Keep3r,他自然變成了眾神之神。 AC相當於做了兩個事,一個聚合資產YFI,一個聚合人KP3R。這樣的話,這個盤子變成了超級巨大,AC真的變成了區塊鏈3.0之神。之所以這樣猜測,是因為之前說Pickle和Yearn的開發人員已經設計出一種結構,可以使兩個項目能夠共生地協同工作。進一步,我想AC會不會將審計也會整合進Keep3r中,讓全世界的白帽黑客或者審計公司為各種項目尋找漏洞以及獎勵?
  • 永久免費的聚合SDK工具的意義和使用
    對於許多遊戲發行方來說,也許對聚合SDK還是懵懵懂懂地,在這裡我們做一次系統的普及,讓發行能夠快速直觀地了解聚合工具以及如何使用。首先,我們的聚合SDK工具是一款永久免費的功能,通常一款遊戲開發完成後是需要上架應用市場接入渠道SDK的,通常為了獲取更多的推廣資源,遊戲需要上架的渠道是多多益善的。
  • 《星際戰甲》聚合物束怎麼得 聚合物束獲取攻略
    導 讀《星際戰甲》遊戲中的聚合物束是在金星、水星和天王星掉落的,在更新9之後玩家可以用白金直接在商店購買獲得。
  • RNA的轉錄與RNA聚合酶
    RNA聚合酶與轉錄機制的研究也是生命科學中的重要內容。2006年,羅傑·科恩伯格(Roger D. Kornberg,亞瑟·科恩伯格長子)「因其對真核轉錄的分子基礎的研究」而獲得諾貝爾化學獎。這也為轉錄機制的研究打下了基礎。同時,也說明結構生物學研究並非僅僅依靠儀器,敏銳的頭腦也是必不可少的。這三種RNA聚合酶最初是根據它們對一種抑制劑(α-鵝膏蕈鹼)的敏感性來區分的,RNAP I不受抑制;RNAP II對其敏感,低劑量即產生抑制;RNAP III在高劑量時才被抑制。
  • 機器學習在馬蜂窩酒店聚合中的應用初探
    最後,此版方案機器能自動處理的部分只佔到約 30%,剩餘 70% 仍需要人工處理;且機器自動聚合準確率約為 95%,也就是有 5% 的概率會產生 AB 店,用戶到店無單,入住體驗非常不好。於是,伴隨著機器學習的興起,我們開始了將機器學習技術應用於酒店聚合中的探索之旅,來解決實時性和準確性這對矛盾。
  • 2021年聚合工藝模擬考試及聚合工藝考試軟體
    題庫來源:安全生產模擬考試一點通小程序2021年聚合工藝模擬考試及聚合工藝考試軟體,包含聚合工藝模擬考試答案和解析及聚合工藝考試軟體練習。由安全生產模擬考試一點通公眾號結合國家聚合工藝考試最新大綱及聚合工藝考試真題匯總,有助於聚合工藝在線考試考前練習。
  • 使用ELASTICSEARCH進行近實時索引
    該Elasticsearch 文檔確實有一些一般建議,有一些小技巧,從其他公司,但它也取決於特定用例。在典型情況下,您有一個資料庫作為事實的來源,並且有一個使事物可搜索的索引。您可以採用以下策略:隨著數據的出現而建立索引–您可以同時插入資料庫並建立索引。如果沒有太多數據,這是有道理的。否則索引將變得非常低效。
  • ElasticSearch 中的中文分詞器以及索引基本操作詳解
    查詢分析則主要分為兩個步驟:詞條化:分詞器將輸入的文本轉為一個一個的詞條流。過濾:比如停用詞過濾器會從詞條中去除不相干的詞條(的,嗯,啊,呢);另外還有同義詞過濾器、小寫過濾器等。ElasticSearch 中內置了多種分詞器可以供使用。
  • 嗶哩聚合怎麼用?嗶哩聚合如何破解看限制已刪除下線視頻?
    那麼嗶哩聚合怎麼用?嗶哩聚合如何使用?嗶哩聚合是一款集合了「嗶哩嗶哩PC客戶端」和「嗶哩聚合ios版」的優勢而打造的全新軟體,嗶哩聚合可以強制使用B站播放器播放視頻,並且可以繞過(破解)播放地區限制、破解播放部分已被刪除下線的視頻等。  嗶哩聚合怎麼用?嗶哩聚合如何使用?