跳到正文
SGSteven Guan

原子概念

权限过滤与ANN召回

pre/post/in-filter差别、选择率与语义相关性、迭代扫描、exact子集基线。

要解决的问题为什么加了tenant或ACL过滤后会找不满top-k?

检索别名:filtered ANN · pre-filter · post-filter · HNSW

BLUEPRINT局部蓝图

01 输入

  1. query向量
  2. 当前授权过滤与索引配置
→

02 处理机制

  1. 计算授权子集exact基线
  2. 按选择率测试ANN策略
  3. 检查召回、结果数与尾延迟
→

03 输出与证据

  1. 过滤后候选集合
  2. 近似误差与隔离诊断

过滤改变了正确答案的集合

企业查询通常带tenant、部门、客户事项、日期和资料类型约束。ANN应寻找授权子集内的最近邻,而不是先找全库最近邻再删除不可见结果。后者可能让top-k不足,甚至把真正相关但不在全库前列的授权资料完全漏掉。

pgvector官方说明近似索引扫描之后应用过滤可能减少结果,并提供iterative scans继续扫描直到达到条件或上限。Qdrant、Milvus、Elastic和Weaviate采用不同过滤与搜索机制,不能仅根据都支持HNSW就认为过滤质量相同。

小集合未必该走近似搜索

过滤可能留下全库10%、1%或极少资料。条件还可能与语义分布相关或反相关,多个AND过滤会进一步改变图的可达性。对非常小的授权子集,exact scan可能更简单;对大集合则需要近似索引和适当搜索参数。具体切换由实际数据与执行计划决定。

基准真值应在授权子集内计算exact kNN,再与近似结果比较;这衡量索引近似误差,与人工标注的语义相关性Recall是两个指标。即使近似召回完美,embedding仍可能认为错误资料最相近,不能把两种质量混成一个分数。

同时验证隔离与尾延迟

按选择率、tenant规模、冷暖缓存和更新并发分桶,记录实际返回数量、exact overlap、p95以及扫描工作量。共享索引中一个热租户可能影响其他租户性能,分区可以改善隔离,却增加分区管理与跨域检索成本。

验收不能通过取消过滤来达到延迟目标。若预算不足,应缩小范围、采用经过验证的exact策略或说明证据不足。返回得快且结果数量够,不等于找到了正确授权证据;安全和检索质量都要独立检查。

RELATIONSHIP MAP

与其他节点的关系

箭头从本节点指向目标;关系是工程分析映射,不代表厂商合作或已披露的内部实现。

哪些节点指向本页 · 6

PRIMARY SOURCES

来源与阅读边界

来源按研究截止日整理。官方文档说明能力和约束,代码只证明对应版本,论文与讲座不自动证明生产效果。 资料截止:2026-10-15。

  1. pgvector:Filtering与Iterative Index Scans ↗公开代码
  2. Milvus:Filtered search ↗官方文档 / 声明