当前位置: 首页 > news >正文

Elasticsearch聚合----aggregations的简单使用

文章目录

  • Getting started
    • 1、搜索 address 中包含 mill 的所有人的年龄分布以及平均年龄,但不显示这些人的详情
    • 2、size=0不展示命中记录,只展示聚合结果
    • 3、按照年龄聚合,并且请求这些年龄段的这些人的平均薪资
    • 4、查出所有年龄分布,并且这些年龄段中性别M的平均薪资和性别F的平均薪资以及这个年龄段的总体平均薪资

官方文档

ES中的aggregations提供了数据分析能力,比如从数据中分组和提取数据的能力。最简单的聚合方法大致等于 SQL中GROU BY和SQL中的聚合函数。在 Elasticsearch 中,执行聚合返回 hits(命中结果)的同时还返回聚合结果。
测试数据(account.json)

Getting started

基本语法,使用‘aggs’属性进行标识

  • NAME:自定义当前聚合的名称
  • AGG_TYPE:指定当前聚合的类型
GET bank/_search
{"aggs": {"NAME": {"AGG_TYPE": {}}}
}

1、搜索 address 中包含 mill 的所有人的年龄分布以及平均年龄,但不显示这些人的详情

1、搜索 address 中包含 mill 的所有人的年龄分布

GET bank/_search
{"query": {"match": {"address": "mill"}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 10}}}
}
  • ageAgg:自定义的当前的聚合名称
  • terms:是当前聚合的类型,terms表示分布情况
    • field:表示当前聚合使用哪个字段
    • size:表示显示多少条聚合的信息

在这里插入图片描述
上图中,query的match一共命中了4条记录,其中的aggregations节点展示了当前聚合的结果 ;可以明显的看到ageAgg就是自定义的聚合名称,buckets节点统计的age的分别情况:

  • age=38的记录一共是2条
  • age=28的记录一共是1条
  • age=32的记录一共是1条

2、聚合第一步4个人的平均年龄
以上就是address 中包含 mill 的所有人的年龄分布,接下来聚合这四个人的平均年龄,同样ageAvg是给该聚合结果自定义的一个名称;avg是该聚合类型,表示聚合平均

在这里插入图片描述
下面是**搜索 address 中包含 mill 的所有人的年龄分布以及平均年龄,但不显示这些人的详情 **的完整DSL

GET bank/_search
{"query": {"match": {"address": "mill"}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 10}},"ageAvg":{"avg": {"field": "age"}}},"size": 0
}

2、size=0不展示命中记录,只展示聚合结果

在这里插入图片描述

3、按照年龄聚合,并且请求这些年龄段的这些人的平均薪资

# 2、按照年龄聚合,并且请求这些年龄段的这些人的平均薪资
# 2.1、求出所有的年龄分布
GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age"}}},"size": 0
}
# 2.2、最终;请求这些年龄段的这些人的平均薪资GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age"},"aggs": {"ageGroupBalanceAvg": {"avg": {"field": "balance"}}}}},"size": 0
}

在这里插入图片描述

4、查出所有年龄分布,并且这些年龄段中性别M的平均薪资和性别F的平均薪资以及这个年龄段的总体平均薪资

4.1、聚合所有人的年龄分布

GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 100}}},"size": 0
}

4.2、在4.1的基础上再对每组中的gender进行分布聚合

# 再所有的年龄分布基础上,再根据gender进行分布
GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 100},"aggs": {"genderAgg": {"terms": {"field": "gender.keyword","size": 10}}}}},"size": 0
}

在这里插入图片描述
4.3、最后求得每个年龄段的平均薪资

GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 100},"aggs": {"genderAgg": {"terms": {"field": "gender.keyword","size": 10}},"balanceAvg":{"avg": {"field": "balance"}}}}},"size": 0
}

在这里插入图片描述

相关文章:

Elasticsearch聚合----aggregations的简单使用

文章目录 Getting started1、搜索 address 中包含 mill 的所有人的年龄分布以及平均年龄,但不显示这些人的详情2、size0不展示命中记录,只展示聚合结果3、按照年龄聚合,并且请求这些年龄段的这些人的平均薪资4、查出所有年龄分布,…...

GOPS·2023上海站 | 提前剧透!阿里、腾讯、字节、擎创等专家齐聚上海,共话互联网运维

一、前言 2023年10月26日-27日,第二十一届 GOPS 全球运维大会 2023 上海站即将举行。作为年终前最后一场面向 IT 技术从业者的高端运维盛会。大会上,来自腾讯、阿里、字节跳动、抖音、美团、擎创科技等明星专家,将带来十大互联网行业精彩主…...

防关联浏览器推荐:MuLogin指纹浏览器安全登录多平台账号

在现今的数字时代,我们的生活离不开互联网。我们使用在线平台进行银行交易、购物、社交媒体互动和其他各种活动。为了保护个人隐私和账号安全,我们需要寻找一种安全且方便的方式来管理我们的在线账号。MuLogin指纹浏览器正是为了满足这些需求而设计的一款…...

部署SeaTunnel单节点Standalone 模式环境

1.前置准备: SeaTunnel支持运行在JDK8及以上环境。该步骤需要用户自行安装JDK环境。 2.下载安装包 本次部署使用的是2.3.1版本。如果你需要下载其它版本,可以从如下网址中查询对应的版本。 Apache SeaTunnel ​ mkdir ~/seatunnel cd ~/seatunnelwget https://dl…...

二十三、设计模式之组合模式![

目录 二十三、设计模式之组合模式能帮我们干什么?主要解决什么问题?优缺点优点缺点: 使用的场景理解实现角色组合模式 总结 魔战已经完结。成功登顶。占领敌军最高峰。 二十三、设计模式之组合模式 “组合模式”也被称为“部分整体模式”该…...

hbase和aerospike基础概念及所对应的python包API使用

Hbase Hbase shell常用操作 1.创建表 create table name,column familytable name:表名 column family:列族名 2.查看所有表名称 list3.插入操作 put table name,row1,column family:column name,valuerow1:行键(即Row Key) column family:column name&#xf…...

监测难?误差大?北斗突破铁路监测预警难题,24小时全方位守护

受极端气象和复杂地形地质条件的影响,近年来铁路沿线地质灾害易发频发。为防范化解重大安全风险,提高自然灾害防治能力,国务院决策部署制定了《关于加强铁路自然灾害监测预警工作的指导意见》,强调了利用先进技术和手段开展各类自…...

kafka入门03——简单实战

目录 安装Java 安装Zookeeper 安装Kafka 生产与消费 主要是记录下Kafka的安装配置过程,前置条件需要安装jdk和zookeeper。 安装Java 1.Oracle官网下载对应jdk安装包 官网地址:Java Downloads | Oracle 好人分享了下载需要的oracle账号&#xff0c…...

工作两年,本地git分支达到了惊人的361个,该怎么快速清理呢?

说在前面 不知道大家平时工作的时候会不会需要经常新建git分支来开发新需求呢?在我这边工作的时候,需求都是以issue的形式来进行开发,每个issue新建一个关联的分支来进行开发,这样可以通过issue看到一个需求完整的开发记录&#x…...

行业追踪,2023-10-24

自动复盘 2023-10-24 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…...

【成功实现】CentOS磁盘扩容

对服务器磁盘扩容操作步骤 查看磁盘信息 fdisk -l 创建新分区 fdisk /dev/sda P n p … t 回车 8e w 重启虚拟机 reboot mkfs.ext4 /dev/sda4 查看磁盘信息 fdisk -l 创建物理卷 pvcreate /dev/sda4 y 创建卷组 并绑定物理卷 vgcreate centos /dev/sda4 创建逻辑…...

为什么亚马逊卖家一定要有独立站?新手低成本快速搭建跨境电商独立站完整图文教程

效果展示 翻译助手 一、购买域名 二、购买主机托管 三、搭建独立网站 四、网站装修设计 五、网站迁移 六、补充 前言:为什么亚马逊卖家一定要有独立站? 先来谈谈为什么亚马逊卖家一定得有独立站,从我一些个人经历来看,有独…...

spring Environment上下文环境参数变量

spring通过Environment对象来存储上下文环境变量信息,即包含当前系统环境变量也包含配置文件配置变量。Environment作为一个bean被存放在容器中,可以在需要的地方进行依赖注入直接使用。 Environment的创建 以AnnotationConfigApplicationContext容器类…...

【数据库】组合查询 UNION

组合查询 概述组合查询UNIONUNION ALLINTERSECTEXCEPT 概述 组合查询允许将两个或多个查询的结果合并成一个单一的结果集。组合查询分类包括 UNION、UNION ALL、INTERSECT 和 EXCEPT 来合并查询结果。下述不同的组合查询; 下述示例中将使用的表:Illino…...

Spring Boot配置 application.yml,根据application.yml选择启动配置

在Spring Boot 中可以选择applicant.properties 作为配置文件,也可以通过在application.yml中进行配置,让Spring Boot根据你的选择进行加载启动配置文件。 这种配置方式,我们通常在实际开发中经常使用,主要为了发布版本和以及开发…...

一文了解GC垃圾回收

一文了解GC垃圾回收 1 判断一个对象为垃圾对象的方法 引用计数法(弃用) 可达性分析算法 是否有指向GC root 的引用链,如果有,不是垃圾对象 ---->GC roo:即rt.jar包中内容 2 内存泄漏与内存溢出区别 泄漏:原本需要被回收的对象&#…...

触摸屏与施耐德PLC之间MODBUS无线通讯

一、 硬件连接 1、PLC通讯接口说明: 2、通讯电缆图: 二、PLC设置 1. 配置端口: 双击串行线路—弹出右侧设置窗口---设置串口通讯参数 2. 添加MODBUS协议。 ① 右击串口线路,选择添加设备: ② 选择现场总线&#xf…...

BOA服务器(一):简介

在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以…...

最详细STM32,cubeMX 超声波测距

这篇文章将详细介绍 STM32使用 cubeMX驱动超声波测距 。 文章目录 前言一、超声波模块测距原理 : 二、cubeMX 配置三、实验程序总结 前言 实验材料:STM32F103C8T6开发板, HC-SR04 超声波模块。所需软件:keil5 , cubeM…...

Java实现连接SQL Server解决方案及代码

下面展示了连接SQL Server数据库的整个流程: 加载数据库驱动建立数据库连接执行SQL语句处理结果关闭连接 在连接之前,前提是确保数据库成功的下载,创建,配置好账号密码。 运行成功的代码: import java.sql.*;publi…...

Cadence Allegro实战:除了Shape Keepout,还有哪些方法能精准控制铺铜区域?

Cadence Allegro实战:5种精准控制铺铜区域的进阶技巧 在复杂PCB设计中,铺铜区域的控制往往决定了信号完整性和EMC性能。Shape Keepout虽然是设计师最熟悉的工具,但Allegro其实提供了更丰富的"Areas"类命令集。本文将深入解析Route …...

NewJob智能识别插件:求职时间管理的终极解决方案

NewJob智能识别插件:求职时间管理的终极解决方案 【免费下载链接】NewJob 一眼看出该职位最后修改时间,绿色为2周之内,暗橙色为1.5个月之内,红色为1.5个月以上 项目地址: https://gitcode.com/GitHub_Trending/ne/NewJob 在…...

Hi3861点灯程序背后的构建系统:手把手教你修改BUILD.gn文件,定制你的第一个鸿蒙应用

Hi3861开发实战:深入鸿蒙构建系统与GN脚本定制指南 当LED灯在Hi3861开发板上第一次亮起时,很多开发者会认为这只是一个简单的GPIO控制实验。但鲜为人知的是,这个看似简单的"点灯"动作背后,隐藏着鸿蒙轻量设备开发中最核…...

终极音乐歌词获取指南:163MusicLyrics让你的每首歌都有完美字幕

终极音乐歌词获取指南:163MusicLyrics让你的每首歌都有完美字幕 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为音乐播放器缺少歌词而烦恼?…...

保姆级教程:用Node-RED把传感器数据传到ThingsBoard仪表盘(MQTT全流程)

从零构建物联网数据可视化:Node-RED与ThingsBoard的实战融合 在智能家居、工业监测等物联网场景中,如何将物理世界的传感器数据转化为直观的可视化图表?本文将手把手带您完成从硬件数据采集到云端展示的完整链路实现。不同于单纯的理论讲解&a…...

PyTorch模型调优第一步:用TorchSummary分析参数量与计算开销(以CNN/Transformer为例)

PyTorch模型调优第一步:用TorchSummary分析参数量与计算开销(以CNN/Transformer为例) 在深度学习项目从实验阶段走向生产部署的过程中,模型效率往往成为决定成败的关键因素。当我们完成模型架构设计后,第一个需要回答的…...

无王无帝定乾坤,来自田间第一人 大道济世安苍生

无王无帝定乾坤来自田间第一人 一、执念 千秋岁月轮转,历朝治乱兴衰,世人始终困于一个执念:天下安定,必靠帝王君临、强权统御。可纵观古今世道,王权更迭往复,霸业起落无常,真正能长久安社稷、润…...

Nodejs后端服务接入Taotoken实现AI功能的具体配置步骤

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Node.js 后端服务接入 Taotoken 实现 AI 功能的具体配置步骤 对于 Node.js 开发者而言,将大模型能力集成到后端服务中&…...

CVE-2026-42897深度解析:Exchange零日XSS武器化全链条与企业防御实战指南

摘要:2026年5月14日,微软紧急披露Exchange Server高危零日漏洞CVE-2026-42897,该漏洞无需任何前置权限,仅通过一封恶意邮件即可在OWA界面触发任意JavaScript执行。截至5月19日,全球已有超过1200台Exchange服务器被观测…...

YOLO模型如何训练救生衣检测数据集深度学习如何训练救生衣检测数据集

救生衣检测模型YOLO8-300n 提供训练好的模型文件(pt格式)、过程文件和验证图片,带对应的训练数据集10000张 1 111一、救生衣检测模型(YOLOv8-300n)完整方案1. 模型与数据集信息项目详情模型版本YOLOv8n(300…...