首先要弄清楚两个概念,聚合与搜索

搜索

即从一个索引下按照特定的字段或关键词搜索出符合用户预期的一个或者一堆cocument,然后根据文档的相关度得分,在返回的结果集里并根据得分对这些文档进行一定的排序

聚合

根据业务需求,对文档中的某个或某几个字段进行数据的分组并做一些指标数据的统计分析,比如要计算一批文档中某个业务字段的总数,平均数,最大最小值等,都属于聚合的范畴

以上两个概念后是理解下面实验的基础,如果是传统关系数据库mysql,oracle等存储的数据,也可以搜索和聚合,但是在数据聚合分析一块,毕竟不是它们的强项,而且需要在程序中做大量的处理,耗时费力,尤其是大数据量的情况下酒有些力不从心了;

但在es中,由于内置了聚合统计的相关功能,只需要使用好它的语法即可达到几近实时的聚合统计,和搜索花费时间基本上没有太大差别,因此使用es很适合在数据量大的业务场景下做聚合统计与分析

高阶概念

  • Buckets(桶/集合):满足特定条件的文档的集合
  • Metrics(指标):对桶内的文档进行统计计算(例如最小值,求和,最大值等).

在聚合统计分析中,使用很频繁的一个名词叫 aggs,它是聚合的关键词之一,下面就用实验来演示一下使用aggs进行数据聚合的多种场景,

1、实验准备数据,首先往es整合批量插入一些实验数据

es聚合查询与多维度数据统计相关推荐

  1. ES聚合查询详解(二):桶聚合

    前言 前面介绍了ES的简单使用,并说明了ES聚合查询主要分为3类:指标聚合.桶聚合和管道聚合. 本文主要是介绍其中桶聚合的相关使用. 一.桶聚合 Bucket 聚合不像Metric聚合那样计算字段上的 ...

  2. ES聚合查询详解(三):指标聚合

    前言 ES聚合查询主要分为3类:指标聚合.桶聚合和管道聚合. 本文主要是介绍其中指标聚合的相关使用. 一.简介 指标聚合 Metrics Aggregations 如果说桶聚合主要是用来做分组的,那么 ...

  3. ES聚合查询根据字段进行分组

    es在使用聚合查询根据字段进行分组的时候,发现一个情况 // 声明where 条件 BoolQueryBuilder qbs = QueryBuilders.boolQuery();QueryBuil ...

  4. 增大max_result_window是错的,ES只能查询前10000条数据的正确解决方案

    文章目录 1.问题现象描述 2.错误的解决方案 2.1 使用`max_result_window`的错误解决方案 2.2 官方对`max_result_window`参数的解释 2.3 官方推荐的解决 ...

  5. es 聚合查询的报illegal_argument_exception错误

    es对没有加入索引的是不支持聚合查询的,如果需要聚合查询执行下面的语句 curl -X PUT "localhost:9200/megacorp/_mapping?pretty" ...

  6. (转)es 聚合查询并返回每个组的数据

    转自: https://blog.csdn.net/ywdhzxf/article/details/84878760 需求 我现在是有一个这样的需求, 我需要在es里面按照 cityarea 进行分组 ...

  7. ES聚合查询报 can‘t load fielddata on because fielddata is unsupported on fields of type x,use doc value..

    在es5.6版本的时候,使用聚合语句查询es的时候,会出现异常,关键信息如下: can't load fielddata on because fielddata is unsupported on ...

  8. ES聚合查询详解(四):管道聚合

    前言 前面已经介绍了指标聚合和桶聚合的使用,本文继续介绍管道聚合. 一.简介 管道聚合 Pipeline aggregations 官方文档:Pipeline Aggregations 管道聚合主要用 ...

  9. es 聚合查询 java api_javaAPI操作ES分组聚合

    连接es的客户端使用的 TransportClient SearchRequestBuilder requestBuilder = transportClient.prepareSearch(indi ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:深度卷积网络
  2. CMenu类的使用方法
  3. jdom学习:读取xml文件
  4. mysql笔试_mysql笔试题
  5. Android dp与px的转换
  6. Arts 第六周(4/22 ~ 4/28)
  7. linux nfs文件共享
  8. HCIE-RS面试--RSTP为什么优于STP
  9. sqlserver 数据多行以逗号分隔成一行
  10. java连接数据库配置文件
  11. 【信号与系统】信号频谱和测量之汉明窗
  12. java角色权限设计
  13. [填坑]ubuntu 18.04+Windows 10双硬盘双系统修改默认启动顺序
  14. windows 通过cmd命令连接wifi
  15. 怎么获得红米手机5 Plus的Root超级权限
  16. 知识点总结之Java语言的优点
  17. 2019JDATA店铺购买预测大赛复盘(冠军方案)
  18. C++ accumulate()函数
  19. Android 应用开发入门
  20. 探讨Vue 数据监测原理-第五节-展开介绍 Vue中监测-【数组】数据的原理

热门文章

  1. 听云CTO访谈:解读现代应用性能管理(APM)技术
  2. 数据结构2 - 线性表
  3. 《SaaS架构设计》试读:前 言
  4. STL vector 用法
  5. Lumen 5.4 时区设置
  6. 20145209 《信息安全系统设计基础》第14周学习总结
  7. 二维数组的遍历之查漏补缺
  8. 用DevExpress做界面开发:ASP.NET界面开发框架
  9. 深入分析FreeDos -- 前言
  10. Java线程间通信-回调的实现方式