用途
该技能用于运行面向 AI 的向量数据库,支撑语义搜索、RAG(检索增强生成)与推荐系统。适用场景包括:为 RAG 或语义搜索应用搭建向量数据库;在 Qdrant、Weaviate、pgvector、Pinecone 之间做选型;管理集合、索引与数据迁移;针对生产负载优化查询性能与索引;通过命名空间隔离实现多租户向量检索。
主要能力
资料提供向量数据库对比表,按适用场景、托管方式、过滤能力和规模列出:Qdrant 适合高性能、丰富过滤、自托管,过滤能力“优秀”,规模“很高”;Weaviate 以 schema 优先、混合搜索、多模态见长;pgvector 适合已有 Postgres 的简单场景;Pinecone 为全托管无运维服务;Chroma 面向本地开发与原型。另包含 Qdrant 生产部署配置、集合管理、过滤检索、pgvector 扩展与索引、Weaviate 部署、备份恢复和性能调优等代码示例。
使用方式
资料给出具体操作示例:
Qdrant Docker 单节点部署:
docker run -d \
--name qdrant \
-p 6333:6333 \
-p 6334:6334 \
-v $(pwd)/qdrant-data:/qdrant/storage \
qdrant/qdrant:latest
自定义配置可挂载 qdrant-config.yaml,其中包含 on_disk_payload、HNSW 的 m 与 ef_construct、full_scan_threshold、int8 标量量化及遥测关闭等参数。
Python 客户端创建集合时设置向量维度(如 1536)、余弦距离、on_disk、HNSW 参数与标量量化,并为 tenant_id、created_at 建立 payload 索引。过滤检索使用 query_points 配合 Filter 的 must/should 条件实现租户隔离与元数据筛选。
pgvector:启用 vector 扩展,建表使用 VECTOR(1536) 列,可建 HNSW 索引(m=16, ef_construction=64)或 IVFFlat 索引(lists=100),查询用 <=> 余弦距离并结合 tenant_id 与 JSONB 元数据过滤。Docker 部署镜像为 pgvector/pgvector:pg16。
Weaviate:docker compose 示例包含端口 8080/50051、API Key 鉴权、text2vec-openai 与 generative-openai 模块及数据卷。
备份与恢复:Qdrant 通过快照 API 创建、下载与恢复;pgvector 使用 pg_dump/pg_restore 自定义格式备份。
性能调优:批量导入后通过 optimizer_config 强制索引并轮询集合状态至 green。
常见问题与最佳实践
资料列出慢查询(索引未建好)、内存过高(向量在内存,可启用 on_disk=True)、召回差(提高查询时 ef)、pgvector 慢(IVFFlat 需 VACUUM ANALYZE)、Weaviate OOM(启用异步索引、增加堆内存)等成因与修复。最佳实践包括:归一化向量用余弦距离、非归一化用点积;为过滤字段建立 payload 索引;超过 1000 万向量时用磁盘向量加常驻内存量化;选 IVFFlat 或 HNSW 前用真实查询模式基准测试;批量删除或迁移前先做快照。
限制
资料提示:基础设施命令可能中断服务,变更状态前应确认目标主机与范围,并准备备份或快照。该技能仅为文档导入,上游脚本与模板未随附。相关技能提及 rag-infrastructure、通用数据库管理与 postgresql。