Elasticsearch5.X聚合简介
2017-11-10 17:17
381 查看
聚合简介编辑
类似于 DSL 查询表达式, 聚合也有 可组合 的语法:独立单元的功能可以被混合起来提供你需要的自定义行为。这意味着只需要学习很少的基本概念,就可以得到几乎无尽的组合。要掌握聚合,你只需要明白两个主要的概念:
桶(Buckets)满足特定条件的文档的集合指标(Metrics)对桶内的文档进行统计计算
这就是全部了!每个聚合都是一个或者多个桶和零个或者多个指标的组合。翻译成粗略的SQL语句来解释吧:
SELECT COUNT(color) FROM table GROUP BY color
COUNT(color)相当于指标。 | |
GROUP BY color相当于桶。 |
COUNT()、
SUM()、
MAX()等统计方法。
桶编辑
桶 简单来说就是满足特定条件的文档的集合:一个雇员属于 男性 桶或者 女性 桶
奥尔巴尼属于 纽约 桶
日期2014-10-28属于 十月 桶
当聚合开始被执行,每个文档里面的值通过计算来决定符合哪个桶的条件。如果匹配到,文档将放入相应的桶并接着进行聚合操作。
桶也可以被嵌套在其他桶里面,提供层次化的或者有条件的划分方案。例如,辛辛那提会被放入俄亥俄州这个桶,而 整个 俄亥俄州桶会被放入美国这个桶。
Elasticsearch 有很多种类型的桶,能让你通过很多种方式来划分文档(时间、最受欢迎的词、年龄区间、地理位置等等)。其实根本上都是通过同样的原理进行操作:基于条件来划分文档。
指标编辑
桶能让我们划分文档到有意义的集合, 但是最终我们需要的是对这些桶内的文档进行一些指标的计算。分桶是一种达到目的的手段:它提供了一种给文档分组的方法来让我们可以计算感兴趣的指标。大多数 指标 是简单的数学运算(例如最小值、平均值、最大值,还有汇总),这些是通过文档的值来计算。在实践中,指标能让你计算像平均薪资、最高出售价格、95%的查询延迟这样的数据。
桶和指标的组合
聚合 是由桶和指标组成的。 聚合可能只有一个桶,可能只有一个指标,或者可能两个都有。也有可能有一些桶嵌套在其他桶里面。例如,我们可以通过所属国家来划分文档(桶),然后计算每个国家的平均薪酬(指标)。由于桶可以被嵌套,我们可以实现非常多并且非常复杂的聚合:
1.通过国家划分文档(桶)
2.然后通过性别划分每个国家(桶)
3.然后通过年龄区间划分每种性别(桶)
4.最后,为每个年龄区间计算平均薪酬(指标)
最后将告诉你每个
<国家, 性别, 年龄>组合的平均薪酬。所有的这些都在一个请求内完成并且只遍历一次数据!
文章参考:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_combining_the_two.html
相关文章推荐
- 广告聚合:KeyMob移动广告聚合平台的特色功能简介
- 忆龙2009:链路聚合模式简介
- OpenStack/Gnocchi简介——时间序列数据聚合操作提前计算并存储起来,先算后取的理念
- Jmeter 测试结果分析之聚合报告简介
- KeyMob移动广告聚合平台简介
- Jmeter 测试结果分析之聚合报告简介
- 009-elasticsearch【三】示例数据导入、URI查询方式简介、Query DSL简介、查询简述【_source、match、must、should等】、过滤器、聚合
- OpenStack/Gnocchi简介——时间序列数据聚合操作提前计算并存储起来,先算后取的理念
- 忆龙2009:链路聚合模式简介
- elasticsearch系列六:聚合分析(聚合分析简介、指标聚合、桶聚合)
- ReactiveCocoa简介四,聚合信号
- Jmeter 测试结果分析之聚合报告简介
- (一)委托模式简介 委托模式是基本的设计模式之一。委托,即是让另一个对象帮你做事情。 许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。 委托模式使得我们可以用聚合
- Elasticsearch——(API//索引//查询//聚合)简介
- 链路聚合简介
- Java更新XML的四种常用方法简介
- 批处理常用命令总结 - 批处理命令简介
- Date 对象的方法简介
- golang线程同步WaitGroup简介
- shader language学习(1)——shader language简介背景