首页/AI/RAG 与向量库速查/向量库基础概念与 CRUD
Embedding 与检索50 条

向量库基础概念与 CRUD

向量库把向量、id 与元数据组织进集合:写入(upsert)、查询(search/query)、按 id 读取、按条件删除是四类基本操作;不同产品的命名各异,但模型基本一致。

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

向量库的基本概念

向量库把向量、主键与元数据组织进集合:写入(upsert)、相似度查询(search 或 query)、按主键读取(fetch)、按条件删除(delete)是四类基本操作。各家产品命名不同但数据模型一致,理解这套对应关系后迁移就只是改 API 的问题;真正要留意的是主键类型、批量上限与一致性选项的差异。

基本信息

集合Milvus 与 Qdrant 都叫 Collection,pgvector 用表加向量列
记录Milvus 的 Entity、Qdrant 的 Point、pgvector 的行
元数据Scalar Field、Payload 或普通列与 JSONB
主键命名各异,建议由业务侧生成稳定 id

典型使用场景

  • 新库选型:按四类基本操作的完备性与客户端成熟度对比候选产品
  • 跨库迁移:把集合、记录、元数据、主键对照清楚再写适配层
  • 数据修复:按主键读取与按条件删除是清理脏数据的常用手段
  • 权限隔离:用集合或分区隔离不同租户的数据边界
  • 容量核对:按集合统计文档数确认导入是否完整

四类基本操作

四类基本操作
upsert(ids, vectors, payloads)      # 写入或覆盖
search(query_vector, top_k, filter) # 相似度检索,可带过滤
fetch(ids)                          # 按主键取回记录
delete(filter={...})                # 按条件删除
# 各库 API 名称不同,四类操作的存在形式基本一致

概念对照

概念MilvusQdrantpgvector
集合CollectionCollection表加向量列
记录EntityPoint行
元数据Scalar FieldPayload普通列或 JSONB
主键pkid主键列
过滤过滤表达式FilterSQL WHERE
先读目标库的 CRUD 示例再迁移:主键类型、批量写入上限与一致性选项各家不同,照抄旧代码容易在边界处出错。
批量写入要分批并检查返回结果:部分失败是常见情况,只按整体成功判断会漏掉未写入的数据,集合统计数量对不上时先看批量返回。
先明确数据归属再选库:切片内容、向量与元数据三者要能一起导出,否则将来换库时只能重新解析与重新向量化,代价远高于一次迁移脚本。备份策略也要覆盖向量与元数据两侧,只备份一侧无法完整恢复。

易错点

  • 用自增数字主键在多源同步时冲突,建议业务侧生成稳定 id
  • upsert 语义未确认就用于更新,部分库是插入新版本而非覆盖
  • 批量写入未分批,单次请求过大被服务端拒绝或超时
  • 迁移时忽略元数据字段类型差异,过滤条件在新库上行为不同

数据来源与参考

  • Milvus 官方文档(数据模型)
  • Qdrant 官方文档(Points 与 Collections)
  • pgvector README
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌