向量数据库(Vector Database)
专门存储和检索高维向量的数据库系统,支持通过余弦相似度等度量快速找到最相似的向量。是RAG流程中存储文档Embedding、执行语义检索的基础设施。
向量数据库(Vector Database)
一句话理解
传统数据库按字段查找精确匹配,向量数据库按"意思相近"查找最相似的内容。
为什么需要专门的数据库
文本经过 Embedding 模型转换后变成高维向量(如 1536 维),要在百万甚至千万条向量中快速找到最相似的几条,普通数据库做不到——暴力计算余弦相似度的复杂度是 O(n),数据量大时不可接受。
向量数据库通过专门的索引算法(如 HNSW、IVF)实现近似最近邻搜索(ANN),在毫秒级返回 top-K 结果。
主流方案
专用向量数据库
- Pinecone:全托管云服务,零运维,按量计费
- Milvus:开源,支持自部署,可扩展到十亿级向量
- Qdrant:Rust 实现,性能优秀,API 友好
- Weaviate:支持混合搜索(向量 + 关键词)
传统数据库的向量扩展
- PostgreSQL + pgvector:在已有 PG 基础上加向量能力,运维成本最低
- Elasticsearch 8.x:新增 dense_vector 字段和 ANN 搜索
选型建议
| 场景 | 推荐 |
|---|---|
| 快速验证 / 小规模 | pgvector(已有 PG)或 Pinecone(托管) |
| 生产环境 / 大规模 | Milvus 或 Qdrant |
| 需要混合搜索 | Weaviate 或 Elasticsearch |
在 RAG 中的角色
向量数据库是 RAG 架构的核心基础设施——它承担"语义检索层"的角色,决定了检索的速度和质量。RAG 流程中,用户查询先被转换为向量,再通过向量数据库检索最相关的文档片段,最终作为上下文送入 LLM 生成回答。