es统计有多少个分组_ElasticSearch 分组查询的几个例子
facets接口可以根据query返回统计数据,其中的 terms_stats 是分组统计,根据key的情况返回value的统计数据,类似group by的意思。
"terms_stats" : { "key_field" : "", "value_field" : "" }
例子:查询每个ip的请求执行时间
查询语句:
1: {
2: "size": 0,
3: "facets": {
4: "ips_stats": {
5: "terms_stats": {
6: "key_field": "nginx_log.@fields.ip",
7: "value_field": "nginx_log.@fields.request_time",
8: "size": 5
9: }
10: }
11: }
12: }
说明:
第2行的 size 表示 hits 命中的返回0条;
第3行的facets,第5行的terms_stats 是做分组查询的必要关键字。
第4行的 ips_stats 是对这个分组查询的命名,可以自己随便起。
第6行 key_field 表示对 nginx_log.@fields.ip 字段进行分组。
第7行 value_field 表示 对 nginx_log.@fields.request_time 的值进行分组后的运算。
第8行的 size 表示分组运算,最多返回多少行。
这个例子的查询结果如下,这里简单起见,只返回了2条。:
1: {
2: "took": 35641,
3: "timed_out": false,
4: "_shards": {
5: "total": 5,
6: "successful": 5,
7: "failed": 0
8: },
9: "hits": {
10: "total": 193109307,
11: "max_score": 1,
12: "hits": []
13: },
14: "facets": {
15: "ips_stats": {
16: "_type": "terms_stats",
17: "missing": 0,
18: "terms": [
19: {
20: "term": "180.149.157.110",
21: "count": 1871112,
22: "total_count": 1871112,
23: "min": 0.016,
24: "max": 80.306,
25: "total": 545853.1529999943,
26: "mean": 0.2917266058899704
27: },
28: {
29: "term": "59.49.225.22",
30: "count": 515179,
31: "total_count": 515179,
32: "min": 0,
33: "max": 600.004,
34: "total": 27793.9160000002,
35: "mean": 0.053950017372602924
36: }
37: ]
38: }
39: }
40: }
从结果我们可以看到,我们对 每个ip的执行时间计算了 个数、最大最小值,平均值,合计的计算。
例子:按照每个ip的请求数排序
查询JSON
1: {
2: "size": 0,
3: "facets": {
4: "time_stats": {
5: "terms_stats": {
6: "key_field": "nginx_log.@fields.ip",
7: "value_field": "nginx_log.@fields.request_time",
8: "size": 2,
9: "order": "total"
10: }
11: }
12: }
13: }
只比上述查询多了一个 order 属性.输出结果格式跟上面一样,只不过是排好序的,就不罗列了.
例子:查询整个网站的执行时间
查询json:
1: {
2: "query": {
3: "match_all": {}
4: },
5: "size": 0,
6: "facets": {
7: "stat1": {
8: "statistical": {
9: "field": "nginx_log.@fields.request_time"
10: }
11: }
12: }
13: }
说明:
最初的查询条件我们没有写,意味着取全部,如果你想查询指定范围,可以在这里书写。第2-4行。第5行的size表示查询条件显示的数据条数。
statistical 是对一个数字字段做统计的facet。
结果:
1: {
2: "took": 4824,
3: "timed_out": false,
4: "_shards": {
5: "total": 5,
6: "successful": 5,
7: "failed": 0
8: },
9: "hits": {
10: "total": 193109307,
11: "max_score": 1,
12: "hits": []
13: },
14: "facets": {
15: "stat1": {
16: "_type": "statistical",
17: "count": 142590544,
18: "total": 59320216.00531181,
19: "min": 0,
20: "max": 5347.085,
21: "mean": 0.4160178812790826,
22: "sum_of_squares": 14578358539.95768,
23: "variance": 102.06623708075713,
24: "std_deviation": 10.102783630304923
25: }
26: }
27: }
这个方法的更多参考:
整体参考资料:
es统计有多少个分组_ElasticSearch 分组查询的几个例子相关推荐
- es统计有多少个分组_ES 24 - 如何通过Elasticsearch进行聚合检索 (分组统计)
1 普通聚合分析 1.1 直接聚合统计 (1) 计算每个tag下的文档数量, 请求语法: GET book_shop/it_book/_search { "size": 0, // ...
- es统计有多少个分组_es多字段分组去重统计
< es多字段分组去重统计 oracle中sql: select a1 ,b1 from dual group by a1 ,b1 或 select DISTINCT a1 ,b1 from d ...
- es统计有多少个分组_es中数据分组统计 es分组统计
数据在ElasticSearch,需要对数据进行统计分析,怎么做? 如何对excel2016中的数据进行分类汇总?在对表进行分类汇总之前,首先要对汇总表的关键字进行排序,对小计的字段进行排序,然后单击 ...
- java操作es聚合操作并显示其他字段_java使用elasticsearch分组进行聚合查询过程解析...
这篇文章主要介绍了java使用elasticsearch分组进行聚合查询过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 java连接elas ...
- list 分组_Power query 灵活处理员工特殊出勤问题(3)-TableGroup分组 amp; 合并查询
断更了几天, 忙着别的事情去.....今天终于好好坐下, 继续写分享. 这一期主要内容是, 利用TableGroup分组 & 最终合并查询; 一. 数据反馈 前几天, 妹纸发来消息说数据不对, ...
- mysql分组排列的查询语句_数据的排序与分组语句_MySQL
bitsCN.com 数据的排序与分组语句 使用SQL语句执行查询操作时,我们可能发现查询出的数据结果的排序是无序的.为了更好的观察数据表中的查询结果,开发人员或者用户经常要对查询的数据进行排序操作, ...
- mysql数据库(排序,聚合函数,分组,分页查询,union,连接查询,主键外键)
1.排序(order by) select * from stu order by age; -- 默认升序 升序 ASC 降序DESC -- DESC 具有查看表的结构的功能 desc stu; 不 ...
- mysql 分组_mysql分组查询(总结)
分组查询 /* 语法: select 查询列表 from 表 [where 筛选条件] group by 分组的字段 [order by 排序的字段]; 特点: 1.和分组函数一同查询的字段必须是gr ...
- influxdb 最近小时统计_用pandas快速统计学生年龄班级等分组信息
最近收到一个求助邮件,他的需求如下: 我是小学的一名统计员,因长期做统计工作,近期,自学一点python,但如何把excel中的8位数出生日期转成年龄,一直做不好,现请您帮忙一下,不知能否帮! 这个问 ...
- mysql 分组查询例子_分组查询GROUP BY用法例子详解
GROUP BY在mysql中是分组查询了,那么你对于GROUP BY有了解多少呢,下面我们来看一篇关于GROUP BY使用例子,具体的细节如下所示. 在SQL中使用GROUP BY来对SELECT的 ...
最新文章
- 10月份机房技术指标
- 什么是正定 半正定 矩阵 用通俗话解释的
- mysql数据库优化课程---16、mysql慢查询和优化表空间
- 撩课-Web大前端每天5道面试题-Day38
- Xcode12.5最新快捷键的使用(学会事半功倍)
- AIX主机信任关系配置
- 看完这篇Redis缓存三大问题,够你和面试官battle几回合了
- 沈南鹏问了微软CEO四个问题
- 河北软件职业技术学院计算机专业分数线,河北软件职业技术学院录取分数线2021是多少分(附历年录取分数线)...
- golang 使用 consul 做服务发现
- FORTRAN里的SCALE函数
- 04.如何升级扩展以支持Visual Studio 2019
- Jenkins下载插件,报java.net.SocketTimeoutException: Read timed out
- 用友服务器换了ip地址怎么修改,用友服务器ip地址更换
- EMNIST: an extension of MNIST to handwritten letters(数据集简介)
- Python:SM2
- subscript on non-array or too many dimensions
- Linux/Unix-stty命令详解
- 降压(Buck)变换电路设计原理、参数取值及MATLAB仿真实验
- VMWare 15安装以及创建Ubuntu虚拟机