首页/AI/RAG 与向量库速查/Qdrant 集合与点操作

Qdrant 集合与点操作

Qdrant 以 collection 管理向量配置与距离度量,以 point 为记录单元(id + vector + payload):建集合时指定向量维度与距离,写入 upsert、读取 retrieve、删除 delete。

RAG 与向量库速查AI更新于 2026-10-13

Qdrant 集合与点模型

Qdrant 用 collection 管理一组向量配置:向量维度、距离度量与是否多向量都在建集合时定下来。记录单元叫 point,由三部分组成:id、vector、payload(任意结构的元数据)。距离度量建后不可修改,换度量只能新建集合并重灌数据,所以建库前先确认模型输出维度与度量口径。id 支持无符号整数或 UUID 字符串,同一个集合里混用两类 id 时注意客户端 SDK 的类型校验。

基本信息

管理单元collection(含向量维度与距离度量)
记录单元point = id + vector + payload
核心操作upsert 写入、retrieve 按 id 读取、delete 删除、query 检索
id 类型无符号整数或 UUID 字符串
接口REST(6333)与 gRPC(6334),Python 客户端两者都支持

典型使用场景

  • 新建知识库集合:先按 embedding 维度与度量建库,再批量 upsert 切片
  • 按 id 精确回查:拿到检索结果的 id 后取原文,用于引用与人工核查
  • 删除过期内容:按 id 列表或过滤条件删除,配合增量更新链路
  • 多集合隔离:不同模型或不同业务各建一个集合,避免维度冲突
  • payload 精简:只放来源、页码、版本等检索与过滤真正需要的字段

建集合(REST)

建集合(REST)
curl -X PUT http://localhost:6333/collections/kb \
  -H 'Content-Type: application/json' \
  -d '{"vectors": {"size": 1024, "distance": "Cosine"}}'
# 距离度量建后不可改:换度量要重建集合

upsert / retrieve / delete

upsert / retrieve / delete
from qdrant_client import QdrantClient
from qdrant_client.models import PointStruct

client = QdrantClient(url='http://localhost:6333')
client.upsert('kb', points=[PointStruct(id='c-1', vector=vec,
                                        payload={'source': 'faq', 'page': 3})])
print(client.retrieve('kb', ids=['c-1']))
client.delete('kb', points_selector=['c-1'])   # 容错:重复删除不报错

距离度量选择

度量含义适用
Cosine夹角余弦,忽略模长文本向量检索的默认选择
Dot内积,受模长影响已归一化或需要按模长加权
Euclid欧氏距离图像、坐标类数据
Manhattan曼哈顿距离特定度量需求,较少使用

运维与排错要点

  • 容量观察:向量与 payload 都写在数据目录,注意磁盘水位而非只看内存
  • 索引补齐:过滤用到的 payload 字段要建索引,否则过滤在扫描阶段逐点执行
  • 写入幂等:以稳定 id 为准覆盖写入,重跑任务不会产生重复点
  • 回收测试:删除后立即按 id 回查,确认异步删除已经生效
payload 里不要塞整段原文:它随每次检索一起传输与反序列化,体积过大会拖慢查询;原文放对象存储或关系库,payload 只留定位用的字段。

易错点

  • distance 建成后不可更改,换度量要重建集合并重灌数据,前期选型草率会付出成倍返工
  • payload 塞入整段原文,传输与索引开销显著上升
  • id 混用整数与 UUID 字符串,SDK 类型校验失败导致整批写入被拒
  • 写入用了错误的向量维度,报错信息指向集合而非数据,排查方向容易被带偏
  • 删除后不做验证,异步删除尚未生效时误以为已完成,增量更新出现新旧并存

数据来源与参考

  • Qdrant 官方文档(Collections / Points)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌