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

ElasticSearch的桶聚合

桶聚合

  在前面几篇博客中介绍的聚合指标是指符合条件的文档字段的聚合,有时还需要根据某些维度进行聚合。例如在搜索酒店时,按照城市、是否满房、标签和创建时间等维度统计酒店的平均价格。这些字段统称为“桶”,在同一维度内有一个或者多个桶。例如城市桶,有“北京”、“天津”等,是否满房桶,有“满房”和“非满房”。

1.1 单维度桶聚合

  最简单的桶聚合是单维度桶聚合,指的是按照一个维度对文档进行分组聚合。在桶聚合时,聚合的桶也需要匹配,匹配的方式有termsfilterranges等。这里只介绍比较有代表性的terms查询和ranges查询。

1.1.1 terms聚合

  terms聚合是按照字段的实际完整值进行匹配和分组的,它使用的维度字段必须是keywordboolkeyword数组等适合精确匹配的数据类型,因此不能对text字段直接使用terms聚合,如果对text字段有terms聚合的需求,则需要在创建索引时为该字段增加多字段功能。

  以下的DSL描述的是按照城市进行聚合的查询:

# 按照城市进行聚合

相关文章:

  • 如何基于 Python 快速搭建 QQ 开放平台 QQ 群官方机器人详细教程(更新中)
  • 学了这篇面试经,轻松收割网络安全的offer
  • 主流后端开发语言对比
  • linux 网桥学习
  • 多视图变换矩阵与SLAM位姿估计中的地图点投影的几何约束
  • oracle 删除当前用户下所有表
  • 2001-2023年上市公司数字化转型测算数据(含原始数据+处理代码+计算结果)
  • 【微信小程序】开发环境配置
  • Android10 动态修改开机动画(一)新增分区
  • 额定值高于 1 kW 的电机驱动应用使用 GaN 逆变器 IC
  • 虚拟仿真实训平台助力院校人才培养与产业发展共赢
  • VMware Workerstation开启虚拟机后,产生乱码名称日志文件
  • C++ 贪心算法——跳跃游戏、划分字母区间
  • 【Java】解决Java报错:FileNotFoundException
  • 【FAS】《CN103106397B》
  • @angular/forms 源码解析之双向绑定
  • 【391天】每日项目总结系列128(2018.03.03)
  • CSS中外联样式表代表的含义
  • ES6系统学习----从Apollo Client看解构赋值
  • Java读取Properties文件的六种方法
  • Laravel 菜鸟晋级之路
  • React组件设计模式(一)
  • 创建一个Struts2项目maven 方式
  • 分布式熔断降级平台aegis
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 力扣(LeetCode)56
  • 使用API自动生成工具优化前端工作流
  • 为什么要用IPython/Jupyter?
  • 我这样减少了26.5M Java内存!
  • 学习使用ExpressJS 4.0中的新Router
  • 一个JAVA程序员成长之路分享
  • 用 Swift 编写面向协议的视图
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​ArcGIS Pro 如何批量删除字段
  • #前后端分离# 头条发布系统
  • $.ajax()
  • (1)(1.11) SiK Radio v2(一)
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (52)只出现一次的数字III
  • (AngularJS)Angular 控制器之间通信初探
  • (day6) 319. 灯泡开关
  • (二) 初入MySQL 【数据库管理】
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (四)Android布局类型(线性布局LinearLayout)
  • (四)opengl函数加载和错误处理
  • (一)Java算法:二分查找
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • *p++,*(p++),*++p,(*p)++区别?
  • .htaccess配置重写url引擎
  • .Net IE10 _doPostBack 未定义
  • .NET 药厂业务系统 CPU爆高分析
  • .NET 中 GetProcess 相关方法的性能
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET牛人应该知道些什么(2):中级.NET开发人员