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

16.数据聚合

聚合 aggregations 实现对文档的分析、统计和运算。

常见聚合分为三类:

1.Bucket桶聚合:对文档做分组。这里的字段是不分词的,可以是keyword、日期、数值和布尔等。不能是text

        TermAggregation: 按照文档字段值分组

        Date Histogram: 按照日期阶梯分组,例如一周为一组、一月为一组、一季度为一组、一年为一组。

2.Metric度量聚合:用以计算一些值,比如:最大值、最小值、平均值等。

        Avg: 求平均值

        Max: 求最大值

        Min: 求最小值

        Stats: 同时求max、min、avg、sum等。

3.管道(Pipeline)聚合:其他聚合的结果为基础做聚合。

案例:

1.第一步酒店数据按照品牌分组——bucket桶聚合

2.第二步计算不同品牌酒店的平均价格——Metric度量聚合

3.第三步对平均价格进行排序或者获取最大值和最小值——Pipeline管道聚合

场景:统计所有数据中酒店品牌有几种,可以根据酒店品牌的名称做聚合。

酒店品牌brand是keyword类型

bucket聚合使用term类型。

聚合必须的三要素:

1.聚合名称brandAgg

2.聚合类型terms

3.聚合字段brand

默认情况下,bucket聚合会统计bucket内的文档数量,记为_count,并且按照_count降序排序。

可以修改结果的排序方式:

自定义排序规则

默认情况下,bucket聚合会对索引库的所有文档做聚合。可以限定要聚合的文档范围,添加query条件。

案例:获取每个品牌的用户评分的min,max,avg等值。

利用stats聚合。

再按照metric聚合中的平均值降序排序

http://www.dtcms.com/a/257731.html

相关文章:

  • C++的前世今生-C++11
  • 进入python虚拟环境的方法
  • hive集群优化和治理常见的问题答案
  • 「ECG信号处理——(18)基于时空特征的心率变异性分析」2025年6月23日
  • 实时反欺诈:基于 Spring Boot 与 Flink 构建信用卡风控系统
  • 2025.06.23【甲基化】methylKit:甲基化测序数据分析安装与详细使用教程
  • 鸿蒙容器组件 Row 全解析:水平布局技术与多端适配指南
  • 《Effective Python》第十章 健壮性——善用 try/except/else/finally,写出更健壮的 Python 异常处理代码
  • 体制内写公文,用ai工具辅助写材料
  • Advent of Cyber 1 [2019] - [Day 13] | TryHackMe
  • Go 语言使用 excelize 库操作 Excel 的方法
  • FastAPI + PyMySQL 报错:“dict can not be used as parameter”的原因及解决方案
  • ​​MQTT​​通讯:​​物联网
  • 【Torch】nn.GRU算法详解
  • Java 类加载机制详解
  • 高级版 Web Worker 封装(含 WorkerPool 调度池 + 超时控制)
  • 渗透测试指南(CSMSF):Windows 与 Linux 系统中的日志与文件痕迹清理
  • 【时时三省】(C语言基础)怎样定义指针变量
  • 无人驾驶汽车运动控制分为纵向控制和横向控制
  • 软件更新 | 从数据到模型,全面升级!TSMaster新版助力汽车研发新突破
  • AIGC工具平台-FishSpeech零样本语音合成
  • 用 GitHub Issues 做任务管理和任务 List,简单好用!
  • 《Redis高并发优化策略与规范清单:从开发到运维的全流程指南》
  • 关于变换矩阵的计算
  • 同源数据互补修复机制:从DNA修复到分布式系统的可靠性设计
  • fiddler+安卓模拟器,解决无网络、抓不到https问题
  • 【Linux网络编程】序列化与反序列化
  • 组件化设计核心:接口与实现分离(C++)
  • JAVA学习-练习试用Java实现“TensorFlow/Deeplearning4j:利用DL4J构建卷积神经网络进行图像分类”
  • ios签名错误的解决办法