1. 程式人生 > >ElasticSearch聚合分析API

ElasticSearch聚合分析API

aggs

前言

說完了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聚合 之 Terms

exc 定性 方式 earch des 執行 stc 默認 gen 本篇著重講解的terms聚合,它是按照某個字段中的值來分類: 比如性別有男、女,就會創建兩個桶,分別存放男女的信息。默認會搜集doc_count的信息,即記錄有多少男生,有多少女生,然後返回給客戶端,這樣

Elasticsearch聚合初探——metric篇

方式 top .... time 時也 att 求和 還需 upper 前言 ES中的聚合被分為兩大類:Metric度量和bucket桶(原諒我英語差,找不到合適的詞語.....就用單詞來說吧!)。說的通俗點,metric很像SQL中的avg、max、min等方法,而buc