es 排序 聚合统计_elastic 聚合分析之Metric & Bucket

什么是聚合(Aggregation)

1.elasticsearch 除了搜索以外,提供的针对ES数据进行统计分析的功能实时性高、Hadoop(T+1)

2.通过聚合,我们会得到一个数据的概览,是分析和总结全套的数据,而不是寻找单个文档。

3.高性能,只需要一套语句,就可以从Elasticsearch得到分析结果

聚合的分类

Aggregation共分为三种:Metric Aggregations、Bucket Aggregations、 Pipeline Aggregations。下面将分别进行总结。

0530ffbadf125d9193bef9810b2e08d7.png

Aggregation的语法

size 可以指定返回条数,默认是10 条,但是没说明,我要全部的数据指定size=0,指定0后只返回聚合值。

32dfcd272e6e8631b64f7d33afc7181d.png

关键词aggs其中max_salary、min_salary、avg_salary 是aggs的名字,可以自定义。

max、min、avg不同类型的分析。

field指定聚合字段。

88f03abb232fb097f4ce3d3568e6e380.png

Metric aggs

单值分析,只输出一个分析结果

1.min、max、avg、sum

2.Cardinality (类似 distinct count)

多值分析,输出多个分析结果

1.stats、extended stats (统计)

2.percentile、percentile rank (百分位)

3.top hits (排在前面的示例)

d2e44961910a2176778c3f994e58d869.png

统计stats

c5460b0e5ab2bf0f844f9da830e81439.png

Bucket aggs

d008ad0916c12d4c78afd2270f99f732.png

按照一定的规则将文档分配到不同的桶中,从而达到分类的目的。ES提供了一些常用的Bucket aggs

1.terms 聚合

它是按照某个字段中的值来分类,比如性别有男、女,就会创建两个桶,分别存放男女的信息。默认会搜集doc_count的信息,即记录有多少男生,有多少女生,然后返回给客户端,这样就完成了一个terms得统计。

字段需要打开fileddata才能进行terms aggs

116fb5f61a4722c1033c8c95070ff2e5.png

对job子字段keyword做聚合分类,输出了QA有3个文档,DBA有2个文档

b51fc6cd418b96e159103f3d38fc7214.png

对text字段进行terms,会分词

4bc3ee9d05f601fecae757684b911a39.png
0ed478830261adbe909c733de13e2580.png
bf22e0f82ccf2de4f425d127e78fb7f5.png
be3613506852cab4c0f8df48c9c79993.png
c9c75e7c2c22cbf8f9c872f37bc4e283.png
3ed84d889e4c3051d9b208fb4b4dc765.png
0d8faf68ced636bf4cd6c447564648a9.png
5146a58dde3187b447bcedb061dc66cf.png

在聚合查询非常频繁,索引不断有新的文档写入,把这个预加载cache打开,terms aggs会提前计算好,提示性能。

2.数字类型 range/data range 、histogram/date histogram

ed884e484a3fd2a6daf4f909d6ec9682.png
e39010b14aab702c23615047dfe42320.png

可以指定key 大于20000

92131c9e49e2f68374a0d155cbecb7d8.png
9fb468d960e484030e3240e12ade7a84.png
55ebd3c6f17ef5d2471096ef52428397.png

3.支持嵌套,可以在桶里再做分桶

43103ded98179e17c7c54af3e5b923a2.png
708f84ece5fbdb1122ff28548b80dc1d.png
354b24f746f5872cc8b658b03ba2dc62.png
c33600458f20c5112bd0b2bf926e3224.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值