外观
如何理解权限过滤与 ANN 候选不足?
项目版本说明
这些问答整合历史设计与实现资料;当前 main 分支 README 以工作包描述建设状态。具体能力、实验数据与设计目标的边界见项目状态与证据。
标准回答
业务上只允许在当前授权范围内返回结果,Space、资源状态和当前有效性必须成为权威查询与最终投影的约束,不能先把越权文本交给模型再要求模型忽略。缓存和备用查询也遵守同一边界。
物理执行上,ANN 索引可能先探索近邻,再应用部分过滤,严格过滤会导致返回不足。不能把 SQL 中写了 WHERE 理解为向量图一定只遍历授权子集。安全判断看是否可能返回不合法内容,质量判断看合法候选是否被近似策略漏掉。
当前 ANN 路径使用 strict_order 的迭代扫描设置,需匹配 pgvector 版本要求;这有助于过滤情况下继续寻找候选,但仍需预算与近似质量验证。零条结果可以表示没有合法候选,也可能是检索策略或模型问题,应通过诊断区分。
追问与回答
可以先全局 TopK 再在应用中删越权项吗
若全局内容已经泄露给不该接触的组件就违反边界;即使只在受信服务内部处理,也会造成合法候选不足,需严格保证全路径安全并评价召回损失。
使用独立 Space 索引是否更好
有利于隔离部分搜索工作,但增加索引数量与维护成本;取决于 Space 大小、共享模式和数据分布。
易混淆点
- 将没有返回越权数据与没有召回损失混为一谈。
参考资料
内容来源
- Android 与 AI 工程 Wiki · 原条目
q164