第三阶段 21 · terms 分组聚合
📅 2026/8/2 16:18:34
👁️ 次浏览
21 · terms 分组聚合阶段第三阶段 / 聚合能力EStermsagg | PostgreSQLGROUP BY col1. 概念terms聚合按某字段的值分桶bucket每个不同的值一个桶相当于 SQL 的GROUP BY。每个桶默认带doc_count该组文档数。2. PostgreSQL 对照-- 按 geo 分组统计数量和金额SELECTgeo_cd,COUNT(*)AScnt,SUM(net_amount)AStotalFROMsalesdataGROUPBYgeo_cdORDERBYtotalDESCLIMIT10;3. ES DSL基本分组GET salesdata_idx/_search { size: 0, aggs: { by_geo: { terms: { field: geo_cd, size: 10 } } } }返回每个geo_cd及其doc_count。分组 组内指标GROUP BY SUMterms里嵌一个子聚合就是GROUP BY后再算指标GET salesdata_idx/_search { size: 0, aggs: { by_geo: { terms: { field: geo_cd, size: 10, order: { total: desc } }, aggs: { total: { sum: { field: net_amount } } } } } }order: { total: desc }相当于ORDER BY SUM(net_amount) DESC。4. Spring Boot 实现ComponentpublicclassDoc21TermsAgg{AutowiredprivateElasticsearchClientelasticsearchClient;/** GROUP BY geo_cd, SUM(net_amount) */publicMapString,DoublesumByGeo(StringindexName,inttopN)throwsIOException{SearchResponseVoidrespelasticsearchClient.search(s-s.index(indexName).size(0).aggregations(by_geo,a-a.terms(t-t.field(geo_cd).size(topN).order(List.of(NamedValue.of(total,SortOrder.Desc)))).aggregations(total,sub-sub.sum(su-su.field(net_amount)))),Void.class);MapString,DoubleresultnewLinkedHashMap();for(StringTermsBucketbucket:resp.aggregations().get(by_geo).sterms().buckets().array()){Stringgeobucket.key().stringValue();doubletotalbucket.aggregations().get(total).sum().value();result.put(geo,total);}returnresult;}}读取要点字符串 terms 用.sterms()数值 terms 用.lterms()桶列表.buckets().array()桶 key 用bucket.key().stringValue()。importco.elastic.clients.elasticsearch._types.aggregations.StringTermsBucket、co.elastic.clients.util.NamedValue桶排序用order接收ListNamedValueSortOrder不是Map。5. 坑与最佳实践size默认只返回前 10 个桶要更多分组记得调大size但别无脑设很大。terms的计数是近似的分片场景分片多时doc_count可能有误差需要精确可加大shard_size或用 composite 聚合。高基数字段慎用对唯一值极多的字段如订单号分组会很吃内存考虑 composite 分页聚合。对keyword分组text字段分组要用field.keyword。组内排序 vs 组间排序order控制桶组之间的顺序别和文档排序混淆。下一篇22-date_histogram-时间分桶.md。
Mac上如何通过Android手机实现USB网络共享?HoRNDIS驱动终极指南 【免费下载链接】HoRNDIS Android USB tethering driver for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/ho/HoRNDIS
你是否经常需要在Mac电脑上使用Android手机的移动网络࿱…
📅 2026/8/2 16:18:34
1. 当“人类最后的考试”成为AI的滑铁卢最近,一篇发表在《自然》杂志上的研究,在AI圈子里扔下了一颗重磅炸弹。标题很直接,也很有冲击力:“MMLU已死?「人类最后考试」登Nature:全球AI模型集体不及格&#x…
📅 2026/8/2 16:18:34
1. 项目缘起:当工业边缘计算遇上开源自动化最近在折腾一个工业数据采集与可视化的项目,手头正好有一台倍福(Beckhoff)的Edge Box RPi 200。这玩意儿本质上是个基于树莓派CM4模块的工业级边缘控制器,接口丰富࿰…
📅 2026/8/2 16:18:34
1. 项目概述:当“AI冲击就业”成为伪命题,应届生真正的挑战是什么?最近,斯坦福大学发布的一份关于人工智能与就业市场的研究报告,在科技圈和应届生群体里激起了不小的水花。报告的核心结论有点反直觉:至少到…
📅 2026/8/2 17:06:20
1. 项目概述:为什么spec文件是打包复杂项目的“定海神针” 如果你用PyInstaller打包过Python脚本,大概率体验过那种“一键生成exe”的爽快感。一个简单的 pyinstaller your_script.py 命令,就能把脚本和依赖库捆成一个独立的可执行文件&am…
📅 2026/8/2 17:06:20
聊《做过前端的人学大模型,哪些经验可以直接迁移?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要去年我带过一个前端转大模型的同学,简历上写着"独立开发AI客服Agent&…
📅 2026/8/2 17:06:20
CIMPro孪大师6.2版本发布:十大新功能全面解读
前言
CIMPro孪大师在2026年7月发布了6.2版本,带来了大量重磅新功能。本文将为你详细解读这些新特性,帮助你快速上手新版本。
一、AI能力全面升级
1.1 智能场景生成
新版支持通过自然语言描述自动…
📅 2026/8/2 17:06:20
终极美化方案:如何用TranslucentTB打造Windows任务栏透明化桌面 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB
你是否厌倦了…
📅 2026/8/2 17:06:20
1. 项目概述:当开源硬件遇上实时操作系统最近在捣鼓Seeed Studio新出的XIAO RP2350开发板,这块板子核心是树莓派自家的RP2350双核Cortex-M33芯片,性能相当可以。我一直在想,除了跑常见的FreeRTOS、Zephyr,有没有更“硬…
📅 2026/8/2 17:05:20
1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…
📅 2026/8/2 0:00:48
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…
📅 2026/8/2 0:00:48
1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同ÿ…
📅 2026/8/2 0:00:48
1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…
📅 2026/8/2 0:00:48
温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…
📅 2026/8/2 0:00:48
1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同ÿ…
📅 2026/8/2 0:00:48
AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言
HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…
📅 2026/8/2 1:22:12
无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut
在数字媒体创作领域,视频编辑处理的质量损…
📅 2026/8/2 0:02:59
1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…
📅 2026/8/2 1:22:12