亦余心之所善兮,虽九死其犹未悔。这篇文章主要讲述ES-聚合操作相关的知识,希望能为你提供帮助。
- 所谓?
?聚合?
??,就是在查询完某些数据之后,进行??group by?
? 等操作,并进行一系列的统计- 基本语法如下:
POST /index/_search
& nbsp; & nbsp; & nbsp; & nbsp; & quot; size& quot; :0,
& nbsp; & nbsp; & nbsp; & nbsp; & quot; query& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; match_all& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; ,
& nbsp; & nbsp; & nbsp; & nbsp; & quot; aggs& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; group_by_model& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; terms& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; field& quot; :& quot; red& quot;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp;
统计每个type下的文档数量
- 以下是对以上的参数的解释:
【ES-聚合操作】
- ?
?size?
?:不查询任何数据,因为聚合操作主要是为了统计,查询数据并没有意义- ?
?match_all?
?:查询所有- ?
?group_by_model?
??:相当于给??count(*)?
? 起一个别名- ?
?field?
?:根据哪个字段聚合
- 对应的 SQL 语句:select type,count(*) from artuicle group by type
POST /index/_search
& nbsp; & nbsp; & nbsp; & nbsp; & quot; query& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; match_all& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; ,
& nbsp; & nbsp; & nbsp; & nbsp; & quot; size& quot; :0,
& nbsp; & nbsp; & nbsp; & nbsp; & quot; aggs& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; types_count& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; terms& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; field& quot; :& quot; types& quot;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp;
统计阅读量大于100的文档数量
POST /index/_search
& nbsp; & nbsp; & nbsp; & nbsp; & quot; query& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; range& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; red& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; gt& quot; :100
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; ,
& nbsp; & nbsp; & nbsp; & nbsp; & quot; size& quot; :0,
& nbsp; & nbsp; & nbsp; & nbsp; & quot; aggs& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; types_count& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; terms& quot; :
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & quot; field& quot; :& quot; types& quot;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;
& nbsp; & nbsp; & nbsp; & nbsp;
bucket和metric
- 除了统计数量以外,es 还支持?
?最大值?
??、??最小值?
??、??平均值?
??、??总和?
? 等操作- 分别对应着max、min、avg、sum,只需要把上面的?
?terms?
? 换成这些关键字即可
- ?
?bucket?
?:数据的分组
班级 | 姓名 |
一年级 | BNTang |
一年级 | 李四 |
二年级 | 王五 |
二年级 | 赵六 |
二年级 | 田七 |
- 划分出来两个?
?bucket?
?,一个一年级,一个是二年级- 一年级?
?bucket?
?:包含了 2 个人,BNTang,李四- 二年级?
?bucket?
?:包含了 3 个人,王五,赵六,田七
- ?
?metric?
??:对数据分组执行的统计,比如说??最大值?
??、??最小值?
??、??总数?
??、??平均值?
?
- ?
推荐阅读
- Tomcat服务器
- 美化博客园样式
- mac 光标自动聚焦在激活窗口上
- 关于单倍型和Phasing
- git 查看分支创建时间
- 生信工程师如何写一个小工具()
- #yyds干货盘点#一个Getter引发的血案
- shell函数应用
- 关于ThreadLocal的九个知识点,看完别再说不懂了!