ES拥有强大的聚合统计能力故而应用广泛,简单结构的聚合统计功能不多,如何针对复杂结构进行聚合统计实际上是很多生产上需要面对的问题,而ES相关文档毕竟很少,大多数人又不太愿意去读官方文档。这里写一下如何对复杂结构进行聚合,产生我们想要的统计数据。

本次用到工具Kibana,操作均在Kibana上进行。例我们现在有一个doc,里面有很多很多的字段,其中一个字段为wordFrequency,其样式大致如下:

          "wordFrequency" : [{"keyword" : "01","count" : 1},{"keyword" : "宽带","count" : 1}]

里面分别记录了词,词的数量,现在我们有大量的doc,里面有很多的词。我们要做的就是以词为维度,统计其词量。类似于sql里的group by之后在count指定字段的功能。

其统计实现如下:

GET audio/info/_search
{"size": 0, "query":{"bool": {"must": [{"range": {"info.inputTime": {"gte": "2019-07-01 05:51:47","lte": "2019-07-09 09:59:59"}}}]}},"aggs": {"wordgroup": {"nested": {"path": "wordFrequency"},"aggs": {"word": {"terms": {"field": "wordFrequency.keyword","size": 50,"exclude": ["这个"], "order": {"wordnum.value": "desc"}},"aggs": {"wordnum": {"sum": {"field": "wordFrequency.count"}}}}}}}
}

首先query里可以对需要统计的doc先做一边筛选,aggs里为具体的统计实现。

由于我们需要进行统计的字段为复杂结构,所以第一层需要指定一下我们要统计wordFrequency这个nested下的内容。

exclude可以指定排除哪些内容,order是按什么排序,这里是按照词统计之后的量进行倒序排列。下一个aggs为将每个词所对应的词量加一起。

ElasticSearch查询复杂结构,aggs进行复杂结构(nested)聚合相关推荐

  1. Elasticsearch查询和聚合基本语法

    1.概述 Elasticsearch主要的查询语法包括URI查询和body查询,URI比较轻便快速,而body查询作为一种json的格式化查询,可以有许多限制条件.本文主要介绍结构化查询的query, ...

  2. elasticsearch 查询(match和term)

    elasticsearch 查询(match和term) es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL). 由于DSL查询更为直观也更为简 ...

  3. 为什么Elasticsearch查询变得这么慢了?

    Elasticsearch 最少必要知识实战教程直播回放 0.引言 Elasticsearch社区中经常看到慢查询问题:"你能帮我看看Elasticsearch的响应时间吗?"或者 ...

  4. Elasticsearch查询时还在百度DSL语句吗?你可能需要这份总结

    意气风发啊骑上我快乐的小摩托良心公众号啊!我上墙了你开始了嚯嚯嚯嚯嚯哈哈哈哈哈皮皮虾我们走可乐在厨房 红牛在冰箱6666666 看弹幕,点关注 " Do your little bit of ...

  5. Elasticsearch:Elasticsearch 查询示例 - 动手练习(一)

    在我之前的文章文章: Elasticsearch:有用的 Elasticsearch 查询示例 开始使用 Elasticsearch (2) 我列举了很多关于 Elasticsearch 查询的例子. ...

  6. Elasticsearch:Elasticsearch 查询示例 - 动手练习(二)

    这是继上一篇文章 "Elasticsearch:Elasticsearch 查询示例 - 动手练习(一)" 的续篇. Compound Queries 到目前为止,在本教程中,我们 ...

  7. Elasticsearch查询使用

    学习笔记:慕课网:elasticsearch入门,讲师:瓦力 Postman直接导入版本在最下边,当前使用elasticsearch-6.4.0. 在 ES2.x 版本字符串数据是没有 keyword ...

  8. 数据的逻辑结构(线性结构、非线性结构;集合结构、树状结构、网状结构),数据的存储结构(顺序结构、链式结构、索引结构、散列结构)

    数据的逻辑结构 数据的逻辑结构指数据元素之间的逻辑关系(和实现无关). 分类1:线性结构和非线性结构 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继. ...

  9. 结构化、非结构化和半结构化数据

    一直对结构化.非结构化和半结构化数据三个数据类型的概念有点模糊不清,今天特意花点时间网上查找了一番,继而,来此处进行一通总结. ** 结构化数据 ** 结构化数据可以使用关系型数据库来表示和存储,如M ...

  10. mysql 非结构化数据_hbase非结构化数据库与结构化数据库比较

    目的:了解hbase与支持海量数据查询的特性以及实现方式 传统关系型数据库特点及局限 传统数据库事务性特别强,要求数据完整性及安全性,造成系统可用性以及伸缩性大打折扣.对于高并发的访问量,数据库性能不 ...

最新文章

  1. 在内核中增加对yaffs文件系统的支持
  2. Deployment详解
  3. 一个mui+ajax+php的demo
  4. 国庆6.37亿出游花费4665.6亿处于什么水平?哪个省市客流最大?收入最高?
  5. 4、容器虚拟化网络概述
  6. java sessionid放入cookie_JAVA开发 SESSION和COOKIE的关系
  7. tomcat 无法关闭 :8005端口未启动
  8. mysql pdo 获取最后一条sql_一条sql语句的执行过程-mysql
  9. 矩阵分析 (八) 矩阵的直积
  10. AMS Audio Converter如何编辑音频/ MP3的ID3信息?
  11. PowerDesigner 16.5 安装图解 与 快速入门
  12. HTML案例之注册页面
  13. 虚拟机专用win xp 系统 ios
  14. access to同义替换_access to 用法
  15. 2016《A survey of transfer learning》迁移学习笔记
  16. js实战案例--创建一个电脑对象
  17. FS2120双节锂电池保护 IC
  18. MySQL讲义第 45 讲——select 查询之查询练习(三)
  19. 百度在线笔试计算机视觉,[转载]2014 百度 计算机视觉笔试
  20. 工业大数据白皮书(2019版)

热门文章

  1. 基于javaweb jsp的财务管理系统
  2. 第一集 天路独行终成行,萍水相逢待相逢
  3. web开发选择php还是java
  4. 1.JAVA猜数字游戏: 一个类A有两个成员变量v、num,v有一个初值100。 定义一个方法guess,对A类的成员变量v,用num进行猜。 *如果num比v大则提示大了,反之则提示小了.
  5. charles抓包工具详细教程
  6. python3 - RC4 算法
  7. 如何修改避免闪烁(Anti-Flicker)默认值
  8. Nginx配置跨域访问
  9. php 正则 转移,php 正则表达式字符怎样转义
  10. 2023山东科技大学计算机考研信息汇总