1. 向量数据库的定义与核心目标
向量数据库(Vector Database) 是一种面向高维向量数据的专用数据库系统,其核心目标是:
在高维向量空间中,实现大规模向量的高效存储、索引与近似相似度检索(Approximate Nearest Neighbor, ANN)。
1.1 数据处理流程
-
向量化(Embedding)
原始数据(文本、图像、代码、信号等)通过嵌入模型映射至高维连续向量空间。
-
索引构建(Indexing)
使用 ANN 算法构建高效检索结构。
-
相似度检索(Similarity Search)
基于距离度量返回 Top-K 相似向量,并可结合元数据过滤。
1.2 常见技术要素
-
距离度量:Cosine Similarity / Inner Product / L2
-
索引算法:HNSW、IVF、PQ、ScaNN
-
扩展能力:Metadata Filter、Hybrid Search、MMR
1.3 典型应用
-
语义搜索与信息检索
-
RAG(Retrieval-Augmented Generation)
-
推荐系统
-
多模态检索
-
代码与文档检索系统
2. 主流向量数据库系统分析
2.1 Chroma
2.1.1 系统定位
Chroma 是轻量级、Python 优先的向量数据库,主要面向原型验证与教学场景。
2.1.2 技术特征
-
Python API 设计,深度集成 LangChain / LlamaIndex
-
本地存储为主(SQLite / DuckDB)
-
基于 CPU 的 HNSW 索引
-
单节点运行,不强调分布式架构
2.1.3 优势
-
极低的上手与部署成本
-
API 简洁,适合快速构建 RAG 原型
-
非常适合 Notebook 与本地实验环境
2.1.4 局限
-
不支持 GPU 加速
-
高并发与大规模数据能力有限
-
不适合生产级 SLA 场景
2.1.5 适用场景
-
教学与实验
-
本地 RAG Demo
-
小规模语义检索原型
2.2 Weaviate
2.2.1 系统定位
Weaviate 是面向复杂搜索需求的功能型向量数据库,强调搜索范式的融合。
2.2.2 技术特征
-
GraphQL / REST 接口
-
HNSW 向量索引
-
支持:
-
纯向量搜索
-
词法搜索(BM25)
-
混合搜索(Hybrid Search)
-
最大边际相关性(MMR)
-
-
Schema 化的数据与元数据管理
-
可内嵌第三方 Embedding 服务
2.2.3 核心优势:Hybrid Search
-
向量搜索:捕获语义相似性
-
词法搜索:保证精确匹配能力
-
混合搜索:在相关性与精确性之间取得平衡
该特性在技术文档、论文检索和法律文本等场景中具有显著优势。
2.2.4 局限
-
架构复杂度与运维成本较高
-
单机极限性能弱于纯性能导向系统
2.2.5 适用场景
-
高质量语义搜索系统
-
生产级 RAG 应用
-
搜索相关性要求高的业务系统
2.3 Qdrant
2.3.1 系统定位
Qdrant 是性能与工程可控性优先的向量数据库,面向高并发与低延迟应用。
2.3.2 技术特征
-
使用 Rust 实现,强调并发性能与稳定性
-
高效 HNSW 索引
-
原生支持 Payload(结构化元数据)
-
向量字段与 Payload 字段严格区分
-
支持本地、私有化与云端部署
2.3.3 工程优势
-
极高的 QPS 与低延迟表现
-
强过滤能力(Filtered ANN)
-
支持多视角向量与元数据复用
2.3.4 局限
-
搜索范式相对单一
-
功能丰富度不及 Weaviate
2.3.5 适用场景
-
高并发检索服务
-
工程化语义搜索系统
-
对性能和稳定性要求严格的生产环境
3. 系统对比总结
| 维度 | Chroma | Weaviate | Qdrant |
|---|---|---|---|
| 系统定位 | 原型 / 教学 | 功能型搜索 | 性能型工程 |
| 索引能力 | HNSW | HNSW | HNSW |
| 搜索范式 | 向量 | 向量 + 词法 + MMR | 向量 + Filter |
| 并发性能 | 低 | 中 | 高 |
| 运维复杂度 | 低 | 高 | 中 |
| 生产可用性 | 否 | 是 | 是 |
4. 选型原则(工程视角)
-
快速原型与教学实验:Chroma
-
复杂语义检索与高相关性搜索:Weaviate
-
高并发、低延迟、工程可控系统:Qdrant