ElasticSearch聚合分析API
前言
說完了ES的索引與檢索,接著再介紹一個ES高階功能API – 聚合(Aggregations),聚合功能為ES注入了統計分析的血統,使使用者在面對大資料提取統計指標時變得遊刃有餘。同樣的工作,你在hadoop中可能需要寫mapreduce或hive,在mongo中你必須得用大段的mapreduce指令碼,而在ES中僅僅呼叫一個API就能實現了。
開始之前,提醒老司機們注意,ES原有的聚合功能Facets在新版本中將被正式被移除,抓緊時間用Aggregations替換Facets吧。Facets真的很慢!
1 關於Aggregations
Aggregations的部分特性類似於SQL語言中的group by,avg,sum等函式。但Aggregations API還提供了更加複雜的統計分析介面。
掌握Aggregations需要理解兩個概念:
- 桶(Buckets):符合條件的文件的集合,相當於SQL中的group by。比如,在users表中,按“地區”聚合,一個人將被分到北京桶或上海桶或其他桶裡;按“性別”聚合,一個人將被分到男桶或女桶
- 指標(Metrics):基於Buckets的基礎上進行統計分析,相當於SQL中的count,avg,sum等。比如,按“地區”聚合,計算每個地區的人數,平均年齡等
對照一條SQL來加深我們的理解:
1 |
SELECT
COUNT(color) FROM table GROUP BY color |
GROUP BY相當於做分桶的工作,COUNT是統計指標。
下面介紹一些常用的Aggregations API。
2 Metrics
2.1 AVG
求均值。
1 2 3 4 5 6 |
GET
/company/employee/_search
{
"aggs"
: {
"avg_grade"
: { "avg" : { "field" : "grade" } }
}
}
|
執行結果
1 2 3 4 5 |
{
"aggregations":
{
"avg_grade":
{"value": 75}
}
}
|
其他的簡單統計API,如valuecount, max,min,sum作用與SQL中類似,就不一一解釋了。
2.2 Cardinality
cardinality的作用是先執行類似SQL中的distinct操作,然後再統計排重後集合長度。得到的結果是一個近似值,因為考慮到在大量分片中排重的效能損耗Cardinality演算法並不會load所有的資料。
1 2 3 4 5 6 7 |
{
"aggs"
: {
"author_count"
: {
"cardinality"
: {"field" : "author"}
}
}
}
|
2.3 Stats
返回聚合分析後所有有關stat的指標。具體哪些是stat指標是ES定義的,共有5項。
1
2
3
4
相關推薦ElasticSearch聚合分析API前言 說完了ES的索引與檢索,接著再介紹一個ES高階功能API – 聚合(Aggregations),聚合功能為ES注入了統計分析的血統,使使用者在面對大資料提取統計指標時變得遊刃有餘。同樣的工作,你在hadoop中可能需要寫mapreduce或hive,在 ElasticSearch聚合分析發生 ucc 語句 time 視頻 HERE selector pip 實際應用 聚合用於分析查詢結果集的統計指標,我們以觀看日誌分析為例,介紹各種常用的ElasticSearch聚合操作。 目錄: 查詢用戶觀看視頻數和觀看時長 聚合分頁器 查詢視頻uv 單個視頻uv 搜尋引擎(Elasticsearch聚合分析)開發十年,就只剩下這套架構體系了! >>> ElasticSearch 聚合分析> **公號:碼農充電站pro** > **主頁:** ES 中的[聚合分析](https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations.html)(Aggregations)是對資料的統計分析功能,它的 Elasticsearch 之(43) Java API 實現 ES 的 增刪改查、聚合分析package com.es.app; import java.net.InetAddress; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.transport.Transpo Elasticsearch學習之深入聚合分析三---案例實戰引用 實戰 avg buck oba core 電視 針對 過濾 1. 統計指定品牌下每個顏色的銷量 任何的聚合,都必須在搜索出來的結果數據中進行,搜索結果,就是聚合分析操作的scope GET /tvs/sales/_search { "size": 0, " Elasticsearch學習之深入聚合分析五---案例實戰ppi ont doc indices 理解 req eve 同步 nod 1. fielddata核心原理 fielddata加載到內存的過程是lazy加載的,對一個analzyed field執行聚合時,才會加載,而且是field-level加載的,一個index的 elasticsearch 筆記四:聚合分析1.第一個分析需求:計算每個tag下的商品數量 GET /ecommerce/product/_search { "aggs": { "group_by_tags": { "terms": { "field": "tags" ElasticSearch最佳入門實踐(七十三)Java 實戰 - 對員工資訊進行聚合分析構建資料 client.prepareIndex("company", "employee", "1") .setSource(XContentFactory.jsonBuilder() .startOb Elasticsearch搜尋引擎第十二篇-聚合分析文章目錄 聚合分析簡介 指標聚合 max min sum avg 文件計數 佔比百分位對應的值統計 統計值小於等於指定值的文件佔比 求文件幾種的座標點範圍 求中心點座標值 桶聚合 實時搜尋引擎Elasticsearch(4)——Aggregations (聚合)API的使用上一篇部落格介紹了ES中的簡單查詢API的使用,本篇將介紹ES提供的聚合API的使用。ES提供的聚合功能可以用來進行簡單的資料分析。本文仍然以上一篇提供的資料為例來講解。資料如下: studentNo name male age birthday ElasticSearch教程——kibana巢狀聚合,下鑽分析,聚合分析兩個核心概念:bucket和metric city name 北京 小李 北京 小王 上海 小張 上海 小麗 上海 小陳 基於city劃分buckets 劃分出來兩個bucket,一個是北京bucket,一個是上海bucket 北京bucket:包含了2個人,小 ElasticSearch之——巢狀聚合,下鑽分析,聚合分析1、第一個分析需求計算每個tag下的商品數量GET /ecommerce/product/_search { "aggs": { "group_by_tags": { "terms": { "field": "tags" } } } }將文 第三篇 elasticsearch的group by+avg+sort等聚合分析本文依據如下資料模板進行分析 PUT /ecommerce/product/1 { "name" : "gaolujie yagao", "desc" : "gaoxiao meibai", "price" : 30, Arcgis api for JavaScript 4.6 點聚合分析建立物件:var clusterLayer = new ClusterLayer({ "view":mapManager.view, "map":mapManager.map, "data": photoInfo.data, elasticsearch系列六:聚合分析(聚合分析簡介、指標聚合、桶聚合){ "took": 2059, "timed_out": false, "_shards": { "total": 58, "successful": 58, "skipped": 0, "failed": 0 }, "hits": { "total": 1015, ElasticStack學習(八):ElasticSearch索引模板與聚合分析初探一、Index Template與Dynamic Template的概念 1、Index Template:它是用來根據提前設定的Mappings和Settings,並按照一定的規則,自動匹配到新建立的索引上。 1)模板僅是一個索引被建立時才會起作用,修改模板並不會影響已建立的索引; Elasticsearch 之聚合分析入門本文主要介紹 Elasticsearch 的聚合功能,介紹什麼是 Bucket 和 Metric 聚合,以及如何實現巢狀的聚合。 首先來看下聚合(Aggregation): ## 什麼是 Aggregation? ![](https://img-blog.csdnimg.cn/2020032 Elasticsearch聚合 之 Termsexc 定性 方式 earch des 執行 stc 默認 gen 本篇著重講解的terms聚合,它是按照某個字段中的值來分類: 比如性別有男、女,就會創建兩個桶,分別存放男女的信息。默認會搜集doc_count的信息,即記錄有多少男生,有多少女生,然後返回給客戶端,這樣 Elasticsearch聚合初探——metric篇方式 top .... time 時也 att 求和 還需 upper 前言 ES中的聚合被分為兩大類:Metric度量和bucket桶(原諒我英語差,找不到合適的詞語.....就用單詞來說吧!)。說的通俗點,metric很像SQL中的avg、max、min等方法,而buc |