标准答案

  1. 每个文档和切片携带文档 ID、版本、状态、租户、访问范围和更新时间。更新时生成新版本,旧版本进入失效或删除流程;删除要有可重试的 tombstone 或清理任务。
  2. 在线检索必须先按租户、用户、角色或 ACL 做元数据过滤,再进行重排序和生成。模型不能负责判断用户是否有权限。
  3. 对强一致要求的权限变更,可在索引查询前回源校验或使用短暂拒答窗口;对可接受延迟的知识更新,向用户展示资料时间并监控索引滞后。

题目解析

更新和删除通常是异步的,消息可能重复、乱序或丢失。索引任务需要幂等、版本比较、重试和死信处理,不能只依赖“最后写入”的时间。

权限信息变化比文档内容更敏感。即使文本没有更新,ACL 变化也必须使旧向量不可检索;缓存、预计算答案和引用页面同样需要失效。

索引任务成功不等于用户马上读到新内容。应记录文档版本、索引版本和查询命中版本,提供可观测的 freshness 指标。

常见误区

  • 只更新向量文本,不更新权限和版本元数据。
  • 删除主文档后认为向量库会自动消失。
  • 把 tenantId 作为用户可传的过滤条件,未从登录身份和服务端权限计算。

作者信息