第三阶段 21 · terms 分组聚合
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驱动终极指南

Mac上如何通过Android手机实现USB网络共享?HoRNDIS驱动终极指南

Mac上如何通过Android手机实现USB网络共享?HoRNDIS驱动终极指南 【免费下载链接】HoRNDIS Android USB tethering driver for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/ho/HoRNDIS 你是否经常需要在Mac电脑上使用Android手机的移动网络&#xff1…

2026/8/2 16:18:30 阅读更多 →
AI评测新基准HLE揭示大模型真实能力:从MMLU高分到推理短板的深度反思

AI评测新基准HLE揭示大模型真实能力:从MMLU高分到推理短板的深度反思

1. 当“人类最后的考试”成为AI的滑铁卢最近,一篇发表在《自然》杂志上的研究,在AI圈子里扔下了一颗重磅炸弹。标题很直接,也很有冲击力:“MMLU已死?「人类最后考试」登Nature:全球AI模型集体不及格&#x…

2026/8/2 16:18:30 阅读更多 →
工业边缘计算实战:基于Node-RED与Modbus TCP的数据采集与监控

工业边缘计算实战:基于Node-RED与Modbus TCP的数据采集与监控

1. 项目缘起:当工业边缘计算遇上开源自动化最近在折腾一个工业数据采集与可视化的项目,手头正好有一台倍福(Beckhoff)的Edge Box RPi 200。这玩意儿本质上是个基于树莓派CM4模块的工业级边缘控制器,接口丰富&#xff0…

2026/8/2 16:18:29 阅读更多 →

最新新闻

Bigemap添加高清影像图:从瓦片原理到实战配置全解析

Bigemap添加高清影像图:从瓦片原理到实战配置全解析

1. 项目概述:从“有图”到“用好图”的跨越在GIS(地理信息系统)和地图应用领域,一张清晰、准确、时效性强的影像底图,其价值不亚于一份精准的导航。无论是做规划设计、环境监测、还是户外活动路线分析,一张…

2026/8/2 17:01:55 阅读更多 →
免费降低AI检测率:3款工具与实操技巧

免费降低AI检测率:3款工具与实操技巧

1. 项目背景与核心痛点最近在内容创作圈子里,AI检测率成了大家热议的话题。作为一个每天要处理大量文字工作的自媒体人,我深刻体会到被平台标记"AI生成"的尴尬。上周我的一篇原创文章竟然被系统判定为AI生成,申诉过程之繁琐让我下定…

2026/8/2 17:01:55 阅读更多 →
扩散模型如何革新文本生成?从自回归瓶颈到并行推理的突破

扩散模型如何革新文本生成?从自回归瓶颈到并行推理的突破

1. 告别“逐字蹦”:为什么自回归模型成了AI推理的瓶颈?如果你最近关注过AI大模型,尤其是文本生成领域,肯定会发现一个现象:无论是ChatGPT还是Claude,它们在生成回复时,总给人一种“边想边说”的…

2026/8/2 17:01:55 阅读更多 →
树莓派机器人无线化实战:基于Wi-Fi与SSH的Reachy Mini远程控制配置指南

树莓派机器人无线化实战:基于Wi-Fi与SSH的Reachy Mini远程控制配置指南

1. 项目概述:Reachy Mini无线版是什么?如果你对桌面级机器人感兴趣,最近可能听说过Reachy Mini。它是一款基于Raspberry Pi(树莓派)的开源机器人套件,设计初衷就是让机器人开发变得触手可及。而我今天要聊的…

2026/8/2 17:01:55 阅读更多 →
智能零售语音AI实战:从边缘计算到系统集成的完整架构与优化

智能零售语音AI实战:从边缘计算到系统集成的完整架构与优化

1. 项目概述:当零售货架开始“说话”想象一下,你走进一家便利店,拿起一瓶饮料,旁边的货架立刻用语音告诉你:“这款苏打水今天第二件半价,配料表已为您展示在侧屏。”或者,一位顾客在生鲜区犹豫不…

2026/8/2 17:01:55 阅读更多 →
【2024内容安全红线预警】:监管新规生效前72小时,AI审核模型必须完成的3项动态适配动作

【2024内容安全红线预警】:监管新规生效前72小时,AI审核模型必须完成的3项动态适配动作

更多请点击: https://kaifayun.com 第一章:AI内容审核机制的监管演进与技术范式迁移 全球范围内,AI内容审核正经历从“人工为主、规则为辅”向“模型驱动、人机协同、动态治理”的深刻范式迁移。这一转变既由监管政策持续加码所推动&#xf…

2026/8/2 17:00:55 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →