Appearance
多租户 Collection 设计
多租户指 多个客户/部门 共用一套 Qdrant 集群,数据需 隔离 与 可运维。
方案一:每租户一个 Collection
优点:隔离清晰,删租户即删集合。
缺点:集合数量极大时 元数据与运维 压力大;Qdrant 对集合数量有实践上限,需评估。
方案二:单 Collection + tenant_id 过滤
所有点 payload 带 tenant_id(或 org_id),检索时 must 匹配当前租户。
优点:集合少、资源集中。
缺点:误配 filter 有串数据风险;必须在网关层强制注入 tenant 条件。
安全建议
- 应用层绝不信任客户端传来的 filter alone:服务端根据 登录态 写入
tenant_id条件。 - 对
tenant_id建 keyword 索引。 - 合规要求高时考虑 物理隔离(独立集群或独立 Collection)。
与 Python / Java
两种语言均在 search 时传入 Filter.must(matchKeyword("tenant_id", currentTenant));逻辑相同。
容量规划
租户数据量差异大时,大客户可 单独 Collection 或 单独分片,避免相互影响热点。