bucket:一个数据分组
metric,就是对一个bucket执行的某种聚合分析的操作,比如说求平均值,求最大值,求最小值

先准备一些数据:

统计哪种颜色的电视销量最高

size:只获取聚合结果,而不要执行聚合的原始数据
aggs:固定语法,要对一份数据执行分组聚合操作
popular_colors:就是对每个aggs,都要起一个名字,这个名字是随机的,你随便取什么都ok
terms:根据字段的值进行分组
field:根据指定的字段的值进行分组

hits.hits:我们指定了size是0,所以hits.hits就是空的,否则会把执行聚合的那些原始数据给你返回回来
aggregations:聚合结果
popular_color:我们指定的某个聚合的名称
buckets:根据我们指定的field划分出的buckets
key:每个bucket对应的那个值
doc_count:这个bucket分组内,有多少个数据
数量,其实就是这种颜色的销量

每种颜色对应的bucket中的数据的
默认的排序规则:按照doc_count降序排序

select avg(price) from tvs.sales group by color

histogram:类似于terms,也是进行bucket分组操作,接收一个field,按照这个field的值的各个范围区间,进行bucket分组操作

"histogram":{ 
  "field": "price",
  "interval": 2000
},

interval:2000,划分范围,0~2000,2000~4000,4000~6000,6000~8000,8000~10000,buckets

date histogram,按照我们指定的某个date类型的日期field,以及日期interval,按照一定的日期间隔,去划分bucket

date interval = 1m,

2017-01-01~2017-01-31,就是一个bucket
2017-02-01~2017-02-28,就是一个bucket

min_doc_count:即使某个日期interval,2017-01-01~2017-01-31中,一条数据都没有,那么这个区间也是要返回的,不然默认是会过滤掉这个区间的
extended_bounds,min,max:划分bucket的时候,会限定在这个起始日期,和截止日期内

"interval": "quarter", 按照季度来

select count(*) from tvs.sales where brand like "%小米%" group by color

global:就是global bucket,就是将所有数据纳入聚合的scope,而不管之前的query

single_brand_avg_price:就是针对query搜索结果,执行的,拿到的,就是长虹品牌的平均价格
all.all_brand_avg_price:拿到所有品牌的平均价格

过滤之后再聚合

bucket filter:对不同的bucket下的aggs,进行filter

对聚合结果升序或者降序

有些聚合分析的算法,是很容易就可以并行的,比如说max

有些聚合分析的算法,是不好并行的,比如说,count(distinct),并不是说,在每个node上,直接就出一些distinct value,就可以的,因为数据可能会很多

es会采取近似聚合的方式,就是采用在每个node上进行近估计的方式,得到最终的结论,cuont(distcint),100万,1050万/95万 --> 5%左右的错误率
近似估计后的结果,不完全准确,但是速度会很快,一般会达到完全精准的算法的性能的数十倍

精准+实时+大数据 --> 选择2个

(1)精准+实时: 没有大数据,数据量很小,那么一般就是单击跑,随便你则么玩儿就可以
(2)精准+大数据:hadoop,批处理,非实时,可以处理海量数据,保证精准,可能会跑几个小时
(3)大数据+实时:es,不精准,近似估计,可能会有百分之几的错误率

cartinality metric,对每个bucket中的指定的field进行去重,取去重后的count,类似于count(distcint)

precision_threshold,值设置的越大,占用内存越大,1000 * 8 = 8000 / 1000 = 8KB,更准确

HyperLogLog++ (HLL)算法性能优化

cardinality底层算法:HLL算法,HLL算法的性能

会对所有的uqniue value取hash值,通过hash值近似去求distcint count

默认情况下,发送一个cardinality请求的时候,会动态地对所有的field value,取hash值; 将取hash值的操作,前移到建立索引的时候,会更快

对百分之多少的数据进行聚合分析

elasticsearch 聚合搜索相关推荐

  1. Spring Data Elasticsearch聚合搜索实战

    准备环境 1 安装Elasticsearch 5.5.2 (略) 2 使用爬虫爬取厦门人才网相关招聘信息(略) 通过elasticsearch-head插件可以看到我们已经爬取很多数据了 3 在项目中 ...

  2. 聚合中返回source_大数据搜索与可视化分析(9)elasticsearch聚合分析Metric Aggregation...

    在上一篇文章中,我们介绍了<大数据搜索与可视化分析(8)kibana入门教程-2-Discover>,本文学习elasticsearch聚合分析,是对<大数据搜索与可视化分析(3)e ...

  3. Elasticsearch实战(十三)---聚合搜索Aggs聚合及Count,Avg操作

    Elasticsearch实战- 聚合搜索Aggs聚合及Count,Avg操作 文章目录 Elasticsearch实战- 聚合搜索Aggs聚合及Count,Avg操作 1.聚合搜索 bucket 桶 ...

  4. 基于Elasticsearch实现搜索推荐

    在基于Elasticsearch实现搜索建议一文中我们曾经介绍过如何基于Elasticsearch来实现搜索建议,而本文是在此基于上进一步优化搜索体验,在当搜索无结果或结果过少时提供推荐搜索词给用户. ...

  5. ElasticSearch学习29_基于Elasticsearch实现搜索推荐

    2019独角兽企业重金招聘Python工程师标准>>> 在基于Elasticsearch实现搜索建议一文中我们曾经介绍过如何基于Elasticsearch来实现搜索建议,而本文是在此 ...

  6. 【Elasticsearch】十九种Elasticsearch字符串搜索方式

    1.概述 十九种Elasticsearch字符串搜索方式 刚开始接触Elasticsearch的时候被Elasticsearch的搜索功能搞得晕头转向,每次想在Kibana里面查询某个字段的时候,查出 ...

  7. 【Elasticsearch】十九种Elasticsearch字符串搜索方式终极介绍 各种 查询

    本文为博主九师兄(QQ:541711153 欢迎来探讨技术)原创文章,未经允许博主不允许转载. 可以加我问问题,免费解答,有问题可以先私聊我,本人每天都在线,会帮助需要的人. 但是本博主因为某些原因, ...

  8. SpringCloud(9)— Elasticsearch聚合和自动补全

    SpringCloud(9)- Elasticsearch聚合和自动补全 一 数据聚合 1.聚合的分类 聚合(aggregations)可以实现对文档数据的统计,分析,运算.常见的聚合有三种: 1.桶 ...

  9. ElasticSearch(七) 搜索

    title: ElasticSearch(七) 搜索 tags: ElasticSearch author: Clown95 搜索 在前面,已经介绍了在ElasticSearch索引中处理数据的基础知 ...

  10. Elasticsearch 聚合性能优化六大猛招

    Elasticsearch 最少必要知识实战教程直播回放 1.问题引出 默认情况下,Elasticsearch 已针对大多数用例进行了优化,确保在写入性能和查询性能之间取得平衡.我们将介绍一些聚合性能 ...

最新文章

  1. 2020 年技术趋势一览:AutoML、联邦学习、云寡头时代的终结
  2. 第十六届全国大学生广东赛区线上比赛流程规范
  3. win10解决Mysql net start mysql启动,提示发生系统错误 5 拒绝访问
  4. leetCode 两个数组的交集 II 问题记录
  5. 给iOS 模拟器“安装”app文件
  6. Spring Data JPA初使用 *****重要********
  7. Orleans MultiClient 多个Silo复合客户端
  8. 三菱st语言编程实例_LD、FBD、IL、ST、SFC、CFC六种编程语言的特点
  9. delphi 生成 超大量xml_用OpenCV4实现图像的超分别率
  10. tar解压失败:gzip: stdin: not in gzip format
  11. 从高频问题透视核心原理(转)
  12. eclipse中设置JVM内存
  13. Django Zip文件下载
  14. 产品经理通用标准工作流程
  15. IM 即时通讯实现原理
  16. 解决百度地图生成器添加标注后图标不显示的问题
  17. 初学卡尔曼滤波与扩展卡尔曼滤波
  18. 浅谈限流式保护器在充电线路中电气防火的应用
  19. np.isfinite_带有Python示例的math.isfinite()方法
  20. 【图文排版】微信文章怎样可以合理布局?

热门文章

  1. thinkpad x1e 隐士进入bios
  2. Flash打造拟真生态水族鱼缸
  3. MOS管(场效应管)工作原理,及反向导通应用
  4. 支付宝首页搜索栏淡出效果HTML,jQuery实现仿Alipay支付宝首页全屏焦点图切换特效...
  5. asp.net小区物业管理系统
  6. 电子元器件符号+实物图+命名规则(太全了,绝对收藏)
  7. Nacos+openFeign 服务之间调用 出现错误:Load balancer does not contain an instance for the service 解决
  8. win10专业版和企业版的区别_win10家庭版和专业版区别
  9. 奥城大学计算机专业,2013年美国留学硕士双录取院校一览
  10. TCP close-wait 状态分析