什么是 元数据过滤(Metadata Filtering)?
元数据过滤(Metadata Filtering)是使用附加在文档或分块上的结构化属性来限制检索结果的做法,例如权限、来源、日期、产品、语言或版本。
工作原理
元数据过滤让检索遵守文本相似度本身无法可靠执行的约束。用户可能只能查看特定文档,可能询问某个产品版本,也可能需要官方文档而不是社区评论。过滤可以在向量搜索前、候选检索后,或混合管线中执行,但位置会改变正确性和召回率。对生产级 RAG 来说,元数据设计和嵌入同样重要,因为它控制信任、新鲜度、访问权限和相关性边界。
主要特点
- 使用租户、权限、时间戳、语言、产品和来源类型等结构化字段
- 执行语义相似度可能忽略的约束
- 可通过排除无关或未授权分块提升精确率
- 如果元数据不完整、过期或过严,可能降低召回率
- 需要在摄取和文档更新阶段保持一致的元数据分配
常见用途
- 按用户权限或租户过滤 RAG 结果
- 把答案限制在特定产品版本或区域内
- 优先检索官方文档而非社区内容
- 从检索中排除过期文档
- 按语言、文档类型或合规领域分隔结果
示例
loading...
Loading code...常见问题
为什么元数据过滤对 RAG 很重要?
它执行产品、权限、新鲜度、语言和来源约束,而这些约束无法仅靠向量相似度可靠推断。
过滤应该在向量搜索前还是搜索后执行?
预过滤有利于约束正确性但可能降低召回;后过滤更灵活,但可能浪费检索容量或返回结果过少。
哪些元数据字段通常有用?
常见字段包括来源 URL、文档类型、产品、版本、语言、时间戳、租户、访问级别、负责人和司法辖区。
元数据过滤可能出什么问题?
不完整或过期的元数据可能静默隐藏相关文档,或在错误约束下暴露结果。