什么是 元数据过滤(Metadata Filtering)?
更新于
元数据过滤(Metadata Filtering)是对文档或分块的结构化属性执行谓词,从而定义哪些候选有资格进入检索结果。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
把元数据设计成检索契约
索引前应定义字段类型、允许值、负责人、空值语义、继承和更新行为。租户、ACL、有效期等硬约束必须与权威度或新鲜度加权等软特征分开。安全谓词应由服务端根据已认证主体生成,而不是信任可编辑的用户输入。鉴权元数据缺失或过期时应失败关闭;可选描述字段缺失则可采用已记录的回退策略。
过滤位置会改变搜索行为
前过滤在符合条件的项目中搜索,倾向于保护过滤后召回,但高选择率谓词可能要求遍历更多图节点或执行精确搜索。后过滤先搜索再求交,ANN 工作量更可预测,却可能返回不足 k 个结果或产生假阴性。Azure AI Search 明确记录了这些权衡;Filtered-DiskANN 研究进一步说明元数据感知图索引能够改善过滤 ANN 效率,但结论取决于过滤类型、索引设计和数据集。
同时测试选择率、安全与新鲜度
先为代表性查询构造精确过滤真值,再按过滤选择率、谓词组合深度、分片数和更新状态测量 Recall@K 与延迟。测试无用户组、单用户组和多用户组主体、已撤销权限、已删除文档、缺失标签、版本切换以及命中数量少于 k 的过滤器。持续监控假阴性、生成前越权候选、元数据陈旧时长、空结果率、p95 延迟,以及近似与精确过滤检索的差距。
主要特点
- 对文档或分块的非向量字段执行类型化谓词
- 把硬资格约束与软相关性、排序信号分开
- 可在近似搜索前、中、后执行,并产生不同召回与延迟表现
- 依赖摄取和更新过程中完整、最新且正确传播的元数据
- 支持租户、鉴权、版本、区域、语言和生命周期边界
- 需要面向选择率的相关性、性能和负向权限测试
常见用途
- 把企业 RAG 证据限制为当前主体有权读取的文档
- 只检索目标产品、发布版本和部署区域对应的文档
- 排除过期、被替代、隔离或已删除知识
- 将多语言检索路由到符合语言与司法辖区要求的语料切片
- 把结构化商品约束与语义商品相似度组合
示例
Loading code...常见问题
元数据过滤和相关性加权是一回事吗?
不是。过滤决定资格:项目要么属于可检索集合,要么不属于;加权只改变合格项目之间的排序。租户、权限和法律范围通常应是硬过滤器,不能被其他高分信号覆盖。
向量过滤应该在 ANN 搜索前还是搜索后执行?
不存在脱离后端的统一答案。前过滤通常保护过滤后召回,但会增加遍历成本;后过滤可能更快、更可预测,却可能返回不足 k 个结果并漏掉合格近邻。需要按实际引擎和过滤选择率测试。
用户提交的元数据过滤器可以用于鉴权吗?
不能。鉴权作用域必须由服务端根据已认证身份生成,并默认拒绝。用户过滤器可以缩小该作用域,但绝不能扩大;鉴权服务失败时也不能暴露未过滤候选。
为什么过滤查询可能返回不足 topK 个结果?
合格语料可能本来就少于 k,或者后过滤从有限的未过滤窗口中移除了项目。应通过精确真值、候选数量和过滤诊断区分两者,不能通过放宽硬谓词来补满结果。
文档元数据变更后应如何传播到分块?
使用有明确负责方的 Schema 和版本化摄取链路,原子更新所有派生分块。保留来源身份,审计撤权与删除,测量传播延迟,并验证旧副本或缓存不会继续返回已撤回内容。