【橘子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 子网掩码:用于区分网络位和主机位 【子网掩码的二进制表达式一定是连续的&#…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
