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

【Elasticsearch】post_filter

post_filter是在进行聚合之后,再对最终返回的文档列表做额外过滤,不破坏那份聚合/统计的完整性”**。

也就是说如果在聚合之前进行过滤,然后进行聚合,聚合的内容其实是针对于过滤后的文档进行的,比如如果聚合是求平均分,如果先过滤 那么聚合的时候 针对的就是过滤后的文档进行求平均,而是用post_filter 在聚合之后 针对返回的hits文档过滤 不影响聚合 聚合是针对全部的文档来求平均。

换句话说:

  • 如果不需要聚合/统计——直接把条件写进 bool.filterquery 里即可,post_filter 完全没必要。

  • 只有在既想保留完整聚合,又想对最终列表再砍一刀时,post_filter 才成为“不破坏聚合”的工具。

“在用户已经拿到聚合/统计结果以后,再对最终返回的文档列表做一次额外过滤,而不污染聚合。”

因此:

  • 如果你的场景根本不需要聚合(例如只想搜完就完),直接把条件放到 bool.filter 即可,post_filter 完全多余。

  • 只有当你既要用聚合展示全集统计,又要让用户最后点选、切分列表时,post_filter 才派上用场。

所以:
post_filter ≠ 为聚合而生,它只是“不破坏聚合”的一种过滤手段。

post_filter 只过滤最终返回的 hits,完全不碰聚合(aggs)的数据范围;聚合仍然基于 query + filter 阶段后的全集来计算。

http://www.xdnf.cn/news/15191.html

相关文章:

  • 代码审计-Struts2漏洞分析
  • java进阶(一)+学习笔记
  • 【嵌入式】51单片机学习笔记-Keil5软件安装教程
  • 【6.1.3 漫画分布式锁】
  • 算法魅力-BFS解决最短路问题
  • Android音视频探索之旅 | C++层使用OpenGL ES实现视频渲染
  • 【文献阅读】DEPTH PRO: SHARP MONOCULAR METRIC DEPTH IN LESS THAN A SECOND
  • AI:机器人行业发展现状
  • 【软件测试面试】面试了字节、美团、腾讯等30几家公司后,才知道软件测试面试全是这个套路......
  • PyVision:基于动态工具的具身智能体
  • linux学习第30天(线程同步和锁)
  • 【世纪龙科技】比亚迪新能源汽车结构原理体感教学软件
  • 从零到一:企业如何组建安全团队
  • CSS选择器进行定位
  • 医疗AI前端开发中的常见问题分析和解决方法
  • 计算机视觉与深度学习 | 基于Matlab的多特征融合可视化指纹识别系统(附完整代码)
  • 电脑上如何查看WiFi密码
  • [BUUCTF 2018]Online Tool
  • tp8.0\jwt接口安全验证
  • 什么是 Bootloader?怎么把它移植到 STM32 上?
  • 《人件》第六章 快乐地工作
  • Python-难点-uinttest
  • 秋招笔试考什么?如何针对性去练习?
  • w459客户管理系统
  • xml映射文件的方式操作mybatis
  • 多线程进阶——JUC的常见类
  • 跨系统开发代码换行符如何解决
  • docker-compose方式搭建lnmp环境——筑梦之路
  • 2025 XYD Summer Camp 7.10 筛法
  • Go语言生态成熟度分析:为何Go还无法像Java那样实现注解式框架?