ES-搜索

聚合分析

聚合分析,英文为Aggregation,是es 除搜索功能外提供的针对es 数据做统计分析的功能
- 功能丰富,提供Bucket、Metric、Pipeline等多种分析方式,可以满足大部分的分析需求
实时性高,所有的计算结果都是即时返回的,而hadoop 等大数据系统一般都是
T+1级别的

为了便于理解,es将聚合分析主要分为如下4类

Bucket,分桶类型,类似SQL中的GROUP BY语法

Metric,指标分析类型,如计算最大值、最小值、平均值等等

Pipeline,管道分析类型,基于上一级的聚合分析结果进行再分析

Matrix,短阵分析类型

Metric

主要分如下两类:
单值分析,只输出一个分析结果
-min,max,avg,sum
-cardinality

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

-stats,extended stats

-percentile, percentile rank
-top hits

Bucket

Pipeline

Pipeline 的分析结果会输出到原结果中,根据输出位置的不同,分为以下两类Parent 结果内嵌到现有的聚合分析结果中
- Derivative
- Moving Average
- Cumulative Sum
Sibling 结果与现有聚合分析结果同级
- Max/Min/Avg/Sum Bucket
- Stats/Extended Stats Bucket
- Percentiles Bucket

filter

1.在倒排索引中查找搜索串,获取document list

2.为每个在倒排索引中搜索到的结果构建一个bitset, [0.0,1],匹配就是1,不匹配就是0

3.遍历每个过滤条件对应的bitset,优先从最稀疏的开始搜索..查找满足所有条件的document

4.caching bitset,跟踪guery,在最近256e个query中超过一定次数的过滤条件,缓存其bitset。

对于小segment (filter针对小segment获取到的结果,可以不缓存,segment记录数<1000,或者segment大小<index总大小3%,小得segment会在后台自动合并,很快消失),不缓存bitset。

5.fileter在query之前执行,先尽量过滤掉尽可能多的数据

6.如果document有新增或修改,那么cached bitset会被自动更新

7.以后只要是有相尚的filter条件的,会直接来使用这个过滤条件对应的cached bitset

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤舞飘伶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值