【橘子ES】Aggregations 聚合准备
一、聚合的概念
聚合文档
聚合区别于检索,检索是使用一系列条件把文档从es中搜索回来。但是聚合则是在搜索回来的文档的基础上进一步进行处理。
简单来说聚合就是将数据汇总为指标、统计数据或其他分析。聚合可以解决以下几类问题:
- 我的网站的平均加载时间是多少?
- 根据交易量,谁是我最有价值的客户?
- 在我的网络上,什么会被视为大文件?
- 每个商品分类有多少件商品?
基本上我们可以看出来,他是一种聚合分析,类似于做报表那样的一个功能。既然是报表分析的话那就离不开一些常见的概念,什么平均值,最大值,什么按照什么分组之后统计每个组里面的数据量这样的功能。在es中支持了三种聚合来实现这些功能。
- Metric aggregations:指标聚合是根据字段值计算量度(如总和或平均值)的量度聚合。
- Bucket aggregations:分桶聚合是根据字段值、范围或其他条件将文档分组到存储桶(也称为箱)中。其实你可以对应理解为mysql中的count … group by field1这种。
- Pipeline aggregations:管道聚合是从其他聚合而不是文档或字段获取输入的管道聚合。这个稍微比上面两个难一点,具体来说就是上面两种的聚合都是把数据检索出来进行分析之类的。但是这个不是直接获取数据分析,他是在上面两个分析之后的结果的基础上进一步分析。他是建立在聚合之上的聚合。
下面我们就来逐一分析三种聚合的使用,不过在此之前,我们先来构建我们的数据。我们构建的索引是一个衣服的索引,包括分类,名称,价格,品牌,描述,产地这几个字段,并且生成20条数据,这个生成数据直接交给llm即可。比如这样。

PUT /clothes
{"settings": {"index": {"number_of_shards": 1, "number_of_replicas": 0}},"mappings": {"properties": {"category":{"type": "keyword"},"name":{"type": "keyword","fields": {"name_text":{"type": "keyword"}}},"price":{"type": "double"},"brand":{"type": "keyword"},"desc":{"type": "text"},"place_of_origin":{"type": "keyword"}}}
}POST _bulk
{ "index" : { "_index" : "clothes", "_id" : "1" } }
{ "category" : "T-shirt", "name" : "纯棉T恤", "price" : 19.99, "brand" : "品牌A", "desc" : "基础款纯棉T恤,适合日常穿着。", "place_of_origin" : "中国" }
{ "index" : { "_index" : "clothes", "_id" : "2" } }
{ "category" : "Jeans", "name" : "修身牛仔裤", "price" : 49.99, "brand" : "品牌B", "desc" : "耐穿的牛仔裤,修身款式。", "place_of_origin" : "越南" }
{ "index" : { "_index" : "clothes", "_id" : "3" } }
{ "category" : "Dress", "name" : "晚礼服", "price" : 89.99, "brand" : "品牌C", "desc" : "适合特殊场合的优雅晚礼服。", "place_of_origin" : "意大利" }
{ "index" : { "_index" : "clothes", "_id" : "4" } }
{ "category" : "Jacket", "name" : "皮夹克", "price" : 129.99, "brand" : "品牌D", "desc" : "时尚的男士皮夹克。", "place_of_origin" : "美国" }
{ "index" : { "_index" : "clothes", "_id" : "5" } }
{ "category" : "Sweater", "name" : "羊毛衫", "price" : 39.99, "brand" : "品牌E", "desc" : "适合冬季的保暖羊毛衫。", "place_of_origin" : "澳大利亚" }
{ "index" : { "_index" : "clothes", "_id" : "6" } }
{ "category" : "Skirt", "name" : "铅笔裙", "price" : 29.99, "brand" : "品牌F", "desc" : "适合办公室穿着的经典铅笔裙。", "place_of_origin" : "英国" }
{ "index" : { "_index" : "clothes", "_id" : "7" } }
{ "category" : "Shorts", "name" : "休闲短裤", "price" : 14.99, "brand" : "品牌G", "desc" : "适合夏天的舒适休闲短裤。", "place_of_origin" : "中国" }
{ "index" : { "_index" : "clothes", "_id" : "8" } }
{ "category" : "Blouse", "name" : "丝绸衬衫", "price" : 59.99, "brand" : "品牌H", "desc" : "柔软的丝绸衬衫,适合女性。", "place_of_origin" : "法国" }
{ "index" : { "_index" : "clothes", "_id" : "9" } }
{ "category" : "Coat", "name" : "冬季大衣", "price" : 199.99, "brand" : "品牌I", "desc" : "适合寒冷天气的厚冬季大衣。", "place_of_origin" : "加拿大" }
{ "index" : { "_index" : "clothes", "_id" : "10" } }
{ "category" : "Socks", "name" : "棉袜", "price" : 4.99, "brand" : "品牌J", "desc" : "一包舒适的棉袜。", "place_of_origin" : "中国" }
{ "index" : { "_index" : "clothes", "_id" : "11" } }
{ "category" : "T-shirt", "name" : "印花T恤", "price" : 24.99, "brand" : "品牌K", "desc" : "带有酷炫图案的T恤。", "place_of_origin" : "日本" }
{ "index" : { "_index" : "clothes", "_id" : "12" } }
{ "category" : "Jeans", "name" : "破洞牛仔裤", "price" : 59.99, "brand" : "品牌L", "desc" : "带有时尚破洞的牛仔裤。", "place_of_origin" : "美国" }
{ "index" : { "_index" : "clothes", "_id" : "13" } }
{ "category" : "Dress", "name" : "休闲连衣裙", "price" : 79.99, "brand" : "品牌M", "desc" : "适合日常穿着的舒适连衣裙。", "place_of_origin" : "中国" }
{ "index" : { "_index" : "clothes", "_id" : "14" } }
{ "category" : "Jacket", "name" : "风衣", "price" : 69.99, "brand" : "品牌N", "desc" : "轻便的风衣夹克。", "place_of_origin" : "德国" }
{ "index" : { "_index" : "clothes", "_id" : "15" } }
{ "category" : "Sweater", "name" : "针织毛衣", "price" : 44.99, "brand" : "品牌O", "desc" : "手工编织的毛衣。", "place_of_origin" : "英国" }
{ "index" : { "_index" : "clothes", "_id" : "16" } }
{ "category" : "Skirt", "name" : "百褶裙", "price" : 34.99, "brand" : "品牌P", "desc" : "时尚的百褶裙。", "place_of_origin" : "中国" }
{ "index" : { "_index" : "clothes", "_id" : "17" } }
{ "category" : "Shorts", "name" : "牛仔短裤", "price" : 19.99, "brand" : "品牌Q", "desc" : "适合休闲的牛仔短裤。", "place_of_origin" : "美国" }
{ "index" : { "_index" : "clothes", "_id" : "18" } }
{ "category" : "Blouse", "name" : "亚麻衬衫", "price" : 54.99, "brand" : "品牌R", "desc" : "适合夏天的轻薄亚麻衬衫。", "place_of_origin" : "意大利" }
{ "index" : { "_index" : "clothes", "_id" : "19" } }
{ "category" : "Coat", "name" : "风衣", "price" : 149.99, "brand" : "品牌S", "desc" : "经典的风衣。", "place_of_origin" : "英国" }
{ "index" : { "_index" : "clothes", "_id" : "20" } }
{ "category" : "Socks", "name" : "羊毛袜", "price" : 7.99, "brand" : "品牌T", "desc" : "适合冬季的厚羊毛袜。", "place_of_origin" : "澳大利亚" }
此时我们就构建好我们的数据了,后面我们再根据需要做修改等等操作。
好了,此时我们就准备好了,下面我们来进行操作。
相关文章:
【橘子ES】Aggregations 聚合准备
一、聚合的概念 聚合文档 聚合区别于检索,检索是使用一系列条件把文档从es中搜索回来。但是聚合则是在搜索回来的文档的基础上进一步进行处理。 简单来说聚合就是将数据汇总为指标、统计数据或其他分析。聚合可以解决以下几类问题: 我的网站的平均加载…...
vue3读取webrtc-stream 视频流
一.首先下载webrtc-stream,方便自己本地搭建视频流服务 https://download.csdn.net/download/cyw8998/90373521 解压后,启动命令 webrtc-streamer.exe -H 127.0.0.1:8020 二.vue3代码如下 <template><h1>video</h1><video id&…...
springcloud集成gateway
本篇文章只介绍gateway模块的搭建步骤,并无gateway详细介绍 gateway详解请查看:SpringCloudGateway官方文档详解 前置处理 父模块中已指定版本 不知道如何选择版本看这篇: 手把手教你梳理springcloud与springboot与springcloudalibaba的版本…...
2025常用的SEO工具有哪些?
在互联网时代,如何让自己的网站或内容脱颖而出,成为许多企业和个人站长们最关注的问题。而在这个过程中,SEO(搜索引擎优化)作为一种有效的提升网站曝光度和吸引流量的手段,已经成为了网站运营的核心之一。对…...
C++类和对象进阶:运算符重载深度详解
C类和对象进阶:运算符重载 前言引入运算符重载定义语法注意事项重载为全局函数重载为成员函数运算符重载的本质 默认赋值运算符重载(默认成员函数)编译器自己生成的赋值运算符重载函数需要自己实现的场景总结默认赋值运算符重载 拷贝构造函数和赋值重载的区分验证 总…...
Mybatisplus——Mybatisplus3.5.2版本使用Page分页插件查询,records有数据但是total显示0
目录 一、问题背景 debug 执行Mybatisplus使用Page分页插件查询时,发现 Page 里面的records有数据但是total显示0。 二、问题产生的原因 未配置MybatisPlus的分页插件拦截器导致的或者因mybatis-plus版本3.4或3.5版本导致原先的分页插件paginationInterceptor无法…...
C#(Winform)通过添加AForge添加并使用系统摄像机
先展示效果 AForge介绍 AForge是一个专门为开发者和研究者基于C#框架设计的, 也是NET平台下的开源计算机视觉和人工智能库 它提供了许多常用的图像处理和视频处理算法、机器学习和神经网络模型,并且具有高效、易用、稳定等特点。 AForge主要包括: 计算机视觉与人…...
AI使用场景简单测试
前言 今天来分享下AI的2个实用场景,我这里是使用的博主:小虚竹,搭建的AI服务,用的ChatGPT 4O模型,主要是试了3个场景,服装设计、直播带货话术、检验报告分析。 一、服装设计 对于最后需要的裁片设计上的尺寸…...
Linux 配置 MySQL 定时自动备份到另一台服务器
Linux 配置 MySQL 定时自动备份到另一台服务器 前言1、配置服务器通信1.1:配置过程 2、编写自动备份sh脚本文件3:设置定时自动执行 前言 此方案可使一台服务器上的 MySQL 中的所有数据库每天 0 点自动转储为 .sql 文件,然后将文件同步到另一…...
PostgreSQL 备库的延迟问题
目录标题 1. 查看主备状态计算方式:实际情况:举个例子: 2. 查看历史状态3. 分析日志文件4. 查看数据库层面的复制状态5. 检查活动事务6. 检查系统资源7. 检查网络状况8. 检查复制槽状态9. 检查未提交的两阶段事务 要排查 PostgreSQL 备库的延…...
力扣-二叉树-226 翻转二叉树
思路 利用递归的思路 代码 class Solution { public:TreeNode* invertTree(TreeNode* root) {if(root nullptr){return root;}swap( root->right, root->left);invertTree(root->left);invertTree(root->right);return root;} };...
基于SpringBoot的在线车辆租赁信息管理系统
系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网技术的不断发展和人们生活水平的提高,汽车租赁行业迎来了前所未有的发展机遇。传统的汽车租赁方式往往存在流程繁琐、信息不透明等问题,难以满足现代消费者对于便捷、高效服务的需求。因此&…...
掌握 systemd:Linux 服务管理的核心工具
1. 什么是 systemd? 定义:systemd 是 Linux 系统的初始化系统(init system)和服务管理器,用于替代传统的 SysVinit。核心目标: 加速系统启动(并行化任务)。统一管理服务、日志、挂载…...
【信息系统项目管理师-案例真题】2019下半年案例分析答案和详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 试题一【问题 1】(6 分)【问题 2 】(8 分)【问题 3 】(11 分)试题二【问题 1】(5分)【问题 2】 (14 分)【问题 3 】(6 分)试题三【问题 1】(8 分)【问题 2 】(6 分)【问题 3】 (8 分)【问题 4 …...
C/C++程序的内存是如何开辟的?
💬 欢迎讨论:在阅读过程中有任何疑问,欢迎在评论区留言,我们一起交流学习! 👍 点赞、收藏与分享:如果你觉得这篇文章对你有帮助,记得点赞、收藏,并分享给更多对C语言感兴…...
日志结构化处理:PO对象toString日志转JSON工具
日志结构化处理:PO对象toString日志转JSON工具 1. 解决的问题2. 下载地址 在Java项目中,PO(Plain Old Java Object)对象遍布各个角落,且常常伴随着大量的日志记录需求。传统的做法是通过toString方法直接打印这些对象&…...
python学opencv|读取图像(六十五)使用cv2.boundingRect()函数实现图像轮廓矩形标注
【1】引言 前序学习进程中,已经使用cv2.findContours()函数cv2.drawContours()函数实现图像轮廓识别和标注,这种标注沿着图像的轮廓进行,比较细致。相关文章链接为: python学opencv|读取图像(六十四)使用…...
大疆无人机需要的kml文件如何制作kml导出(大疆KML文件)
大疆无人机需要的轨迹kml文件,是一种专门的格式,这个kml里面只有轨迹点,其它的属性信息都不需要。 BigemapPro提供了专门的大疆格式输出, 软件这里下载 www.bigemap.com 安装后,kml导入如下图: 然后选择…...
ArrayList、LinkedList、HashMap、HashTable、HashSet、TreeSet
集合族谱 在这些集合中,仅有vector和hashtable是线程安全的,其内部方法基本都有synchronized修饰。 ArrayList 底层采用Object数组实现,实现了RandomAccess接口因此支持随机访问。插入删除操作效率慢。 ArrayList需要一份连续的内存空间。 A…...
手动配置IP
手动配置IP,需要考虑四个配置项: 四个配置项 IP地址、子网掩码、默认网关、DNS服务器 IP地址:格式表现为点分十进制,如192.168.254.1 子网掩码:用于区分网络位和主机位 【子网掩码的二进制表达式一定是连续的&#…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
