ElasticSearch 搜索引擎入门到实战 16-- 聚合查询之指标聚合

news/2023/6/5 21:28:29

ES聚合分析

  1. 聚合分析是数据库中重要的功能特性,完成对⼀个查询的数据集中数据的聚合计算,如:找出某字段(或计算表达式的结果)的最⼤值、最⼩值,计算和、平均值等。ES作为搜索引擎兼数据库,同样提供了强⼤的聚合分析能⼒。
  2. 对⼀个数据集求最⼤、最⼩、和、平均值等指标的聚合,在ES中称为指标聚合
  3. ⽽关系型数据库中除了有聚合函数外,还可以对查询出的数据进⾏分组group by,再在组上进⾏指标聚合。在ES中称为桶聚合

max min sum avg

  • 例如 求出⽕箭队球员的平均年龄
POST /nba/_search
{"query": {"term": {"teamNameEn": {"value": "Rockets"}}},"aggs": {"avgAge别名": {"avg": {"field": "age"}}},"size": 0
}


value_count 统计⾮空字段的⽂档数

  • 求出⽕箭队中球员打球时间不为空的数量
POST /nba/_search
{"query": {"term": {"teamNameEn": {"value": "Rockets"}}},"aggs": {"countPlayerYear别名": {"value_count": {"field": "playYear"}}},"size": 0
}

 
Cardinality 值去重计数

  • 查出⽕箭队中年龄不同的数量
POST /nba/_search
{"query": {"term": {"teamNameEn": {"value": "Rockets"}}},"aggs": {"counAget别名": {"cardinality": {"field": "age"}}},"size": 0
}

 
stats 统计count max min avg sum 5个值

  • 查出⽕箭队球员的年龄stats
POST /nba/_search
{"query": {"term": {"teamNameEn": {"value": "Rockets"}}},"aggs": {"statsAge别名": {"stats": {"field": "age"}}},"size": 0
}


Extended stats ⽐stats多4个统计结果: 平⽅和、⽅差、标准差、平均值加/减两个标准差的区间

  • 查出⽕箭队球员的年龄Extend stats
POST /nba/_search
{"query": {"term": {"teamNameEn": {"value": "Rockets"}}},"aggs": {"extendStatsAge别名": {"extended_stats": {"field": "age"}}},"size": 0
}


Percentiles 占⽐百分位对应的值统计,默认返回[ 1, 5, 25, 50, 75, 95, 99 ]分位上的值

  • 查出⽕箭的球员的年龄占⽐
POST /nba/_search
{"query": {"term": {"teamNameEn": {"value": "Rockets"}}},"aggs": {"pecentAge别名": {"percentiles": {"field": "age"}}},"size": 0
}
  • 查出⽕箭的球员的年龄占⽐(指定分位值用 percents)
POST /nba/_search
{"query": {"term": {"teamNameEn": {"value": "Rockets"}}},"aggs": {"percentAge别名": {"percentiles": {"field": "age","percents": [20,50,75]}}},"size": 0
}

 


https://dhexx.cn/news/show-18668.html

相关文章

正则表达式-零宽度断言详解

零宽度断言是正则表达式中一种重要方法,它主要用于捕获指定内容之前或之后的字符串。 (?:X):非捕获组 它用于捕获包含某一段特征内容X的字符串,但并不捕获特征内容X 比如有一字符串“ID1234567”,仅想捕获ID的具体内容…

【初窥javascript奥秘之Ajax】简述下你所知道的Ajax?

【初窥javascript奥秘之Ajax】简述下你所知道的Ajax? 原文 http://www.cnblogs.com/yexiaochai/archive/2013/04/24/3037069.html 【初窥javascript奥秘之Ajax】简述下你所知道的Ajax? 前言 ajax已经流行很多年了,现在来说它是否已经晚了呢&a…

数字总和排列二叉树模型求解

题目的原型来自于前段时间在论坛上看到的一道水友分享的一道卓越亚马逊的笔试算法题,题目如下: 每个大于1的数字都可以由其他数字相加组合而成,例如: 514, 523; 716, 725, 734; 现要求输入正整数n&#xff…

samba没有权限写入linux,Redhat 7安装Samba服务后只能读取目录,无法写入的处理办法...

今天在RedHat 7安装samba服务的时候,系统中已经设置了用户为smb1,用户组为users[global]netbios name SERVER.REDHAT.SUNserver string Samba Server Version %vlog file /var/log/samba/log.%mmax log size 50load printers Noidmap config * : backend tdbc…

ASP.NET是如何在IIS下工作的

原文地址:http://www.cnblogs.com/fengzheng/p/3668283.html ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的不同,导致ASP.NET的工作原理也发生了相应的变化。 IIS6(IIS7的经典模式)与IIS7的集成模式的不同 IIS6的运行过程&#…

10 款精美的 CSS3 全新特效

大家都知道,在网页制作时使用CSS技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。CSS3是CSS技术…

Sharding-JDBC分库分表 概述 [文档]

Sharding-Sphere概述 在介绍Sharding-JDBC之前,我们需要先说明下Sharding-Sphere。 Sharding-Sphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(计划中)这3款相互…

什么是垂直分库分表,水平分库分表

垂直分片 按照业务拆分的方式称为垂直分片,又称为纵向拆分,它的核心理念是专库专用。 在拆分之前,一个数据库由多个数据表构成,每个表对应着不同的业务。而拆分之后,则是按照业务将表进行归类,分布到不同的…

函数、递归 与 闭包(执行环境、变量对象 与 作用域链)

函数表达式 1、JavaScript中定义函数有2钟方法: 1-1.函数声明: function funcName(arg1,arg2,arg3){//函数体 } ①name属性:可读取函数名。非标准,浏览器支持:FF、Chrome、safari、Opera。    ②函数声明提升:指执…

linux环境nutch的配置,Nutch 1.3 在Ubuntu上的简单配置

因为Nutch 1.3跟以前比改了不少东西,所以1.2中的有些配置已经不在适用了首先我的机器用的是Ubuntu 10.04,挺老的版本了,因为有它的光盘,一直没有升级当然是先下载nutch的包了,用的人人的镜像http://labs.renren.com/apache-mirror…