Skip to content

向量数据库

向量数据库是专门存储和查询向量(Embedding 模型输出的浮点数组)的数据库。它不像 MySQL 存原始文本,而是存文本经过 Embedding 后的数学表示,通过计算向量之间的相似度来检索。

为什么需要

传统数据库靠精确匹配:"跑步"只命中包含"跑步"的行。向量数据库靠语义相似:"想运动一下"能命中"今天早上跑步"——字面不同但意思相近。

场景传统数据库向量数据库
搜 "errorCode=5001"✅ 精确命中❌ 可能漂移
搜 "今天心情不好"❌ 需含关键字✅ 语义匹配到"失眠""烦躁"
搜 CPU 型号✅ 精确❌ 可能匹配到相邻型号

两者不是替代,是互补。

主流产品

产品定位特点
Milvus开源向量数据库云原生、分布式、十亿级检索
Qdrant开源向量数据库Rust 实现、高性能、过滤强
Weaviate开源向量数据库自带向量化、Hybrid Search
Pinecone云服务免运维、Serverless
Chroma轻量嵌入式Python/JS SDK,适合原型开发
pgvectorPostgreSQL 扩展不用新装数据库,SQL 直接搜向量

和传统数据库的区别

传统数据库向量数据库
存什么原始数据(文本、数字)向量(浮点数组)
怎么查SQL / 精确匹配 / 范围近邻搜索 / 相似度
排序依据ORDER BY 字段余弦相似度 / 欧氏距离
适合结构化统计语义检索、推荐

在 RAG 中的角色

用户问题 → Embedding → 向量 → Milvus 近邻检索 → Top K 文档 → LLM 回答

向量数据库是 RAG 检索层的核心组件——负责把"用户问题的语义"匹配到"最相关的知识库文档"。

📖 详细内容见 Elasticsearch(关键词检索)和 混合检索(ES + Milvus 双通道)。