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

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(五)-聚合

聚合

聚合基于Query结果的统计,执行过程是搜索的一部分,Onesearch支持0代码构建聚合,聚合目前完全在引擎层

0代码聚合

上图是聚合的配置,包括2个pdm文档聚合统计

  • termsOfExt

term桶聚合,统计ext,如,pdf,doc的数量;子聚合,sum文档的大小

  • rangeOfSize

统计3种大小范围的文件数量

构建聚合

构建agg在引擎层,aggSchema是上面xml对应的类

每类agg对应的mapping,解释agg schema构建Aggregation对象

上图是term 聚合的映射,bucket agg需处理子agg

searchObject.aggregations(aggs) 最后设置到搜索对象

聚合结果

上面搜索结果介绍过,聚合结果也在SearchResponse返回

下图处理agg结果的逻辑 

根据agg schema的agg item的key,获取Aggregate

Agg item负责从Aggregate获取集合统计值,上图是term bucket统计的获取,bucket类型的agg支持子聚合

搜索展示

本节综合展示搜索结果,包括搜索词,filter,nested,聚合,搜索使用场景的pdm-document

Nested搜索

测试代码

最上层api测试,贴近实际使用,不带agg,结果如下图

 带聚合搜索

测试代码,api层

搜索词:"组织架构",filter,带agg,返回如下

搜索部分,em是高亮

聚合部分

至此,本系列文章完毕

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • GitHub每日最火火火项目(9.20)
  • 【简单点】docker如何部署tomcat
  • 线程池的类型
  • 掌握顶会流量密码!“Mamba+CNN”双热点组合!轻松找到创新点!
  • EP21 Promise封装request请求
  • Java企业面试题3
  • 数据结构—单链表
  • 让医院更智慧,让决策更容易
  • LeetCode_sql_day30(1264.页面推荐)
  • ROS学习笔记13——rosbag功能包的简单使用
  • 【自动化测试】常见的自动化遍历工具以及如何选择合适的自动化遍历工具
  • 1、vectorCast单元测试常用操作
  • 关于 OceanBase 4.x 中被truncate的 table 不再支持进回收站的原因
  • CSS——网格布局(display: grid)之上篇
  • 链路聚合(Link Aggregation)
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【知识碎片】第三方登录弹窗效果
  • Android Studio:GIT提交项目到远程仓库
  • CODING 缺陷管理功能正式开始公测
  • codis proxy处理流程
  • Docker 笔记(2):Dockerfile
  • E-HPC支持多队列管理和自动伸缩
  • ERLANG 网工修炼笔记 ---- UDP
  • httpie使用详解
  • JavaScript 奇技淫巧
  • Koa2 之文件上传下载
  • LeetCode18.四数之和 JavaScript
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Vim 折腾记
  • yii2权限控制rbac之rule详细讲解
  • 诡异!React stopPropagation失灵
  • 后端_MYSQL
  • 回顾2016
  • 基于axios的vue插件,让http请求更简单
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 在Mac OS X上安装 Ruby运行环境
  • puppet连载22:define用法
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​Redis 实现计数器和限速器的
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​低代码平台的核心价值与优势
  • ‌移动管家手机智能控制汽车系统
  • $(selector).each()和$.each()的区别
  • $NOIp2018$劝退记
  • %@ page import=%的用法
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (35)远程识别(又称无人机识别)(二)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (二)c52学习之旅-简单了解单片机
  • (附源码)php新闻发布平台 毕业设计 141646
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三)模仿学习-Action数据的模仿