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

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

聚合

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

0代码聚合

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

  • termsOfExt

term桶聚合,统计ext,如,pdf,doc的数量;子聚合,term下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是高亮

聚合部分

至此,本系列文章完毕

http://www.lryc.cn/news/442589.html

相关文章:

  • Pandas中df常用方法介绍
  • LabVIEW中AVI帧转图像数据
  • 并发与并行的区别:深入理解Go语言中的核心概念
  • 小小扑克牌算法
  • 【第34章】Spring Cloud之SkyWalking分布式日志
  • easy-es动态索引支持
  • SWC(Speedy Web Compiler)
  • 【计算机网络】传输层协议UDP
  • Docker+PyCharm远程调试环境隔离解决方案
  • 数字化转型的理论框架对比:从多维视角指导企业成功变革对比DPBOKIT4ITCOBITTOGAF
  • 【C++掌中宝】深入解析C++命名空间:有效管理代码的利器
  • 2024/9/21 leetcode 21.合并两个有序链表 2.两数相加
  • Python学习的主要知识框架
  • LLaMA-Factory 使用 alpaca 格式的数据集
  • 【Mysql】Mysql数据库基础
  • 一文彻底让你搞懂轨迹规划(总结)
  • windows C++ 并行编程-异步消息块(二)
  • 【软件基础知识】什么是 API,详细解读
  • 计算机四级-计算机网络
  • 【linux 获取时间】
  • Dockerfile部署xxljob
  • Conda新建python虚拟环境问题
  • 这几个优秀的工具网站真心值得推荐——搜嗖工具箱
  • ESP32开发 -- VSCODE+PlatformIO环境安装
  • MySQL--导入SQL文件(命令行导入)
  • 【C#基础】函数传参大总结
  • 初学51单片机之IO口上下拉电阻相关
  • Resnet50网络——口腔癌病变识别
  • Python 中自动打开网页并点击[自动化脚本],Selenium
  • Spring Boot-自动配置问题