向量数据库(Vector Database)
向量数据库是专门存储和检索高维向量的数据库系统。Embedding 后 的文档 / 图像 / 用户特征都存在这里,支持最近邻(ANN)检索。
核心能力
- 向量索引:HNSW、IVF、PQ 等算法,把 O(n) 暴力搜索降到亚毫秒级。
- 元数据过滤:向量相似 + tag/category/date 过滤组合查询。
- 混合检索:向量 + BM25 双路召回再融合。
- 水平扩展:支持亿级到千亿级向量规模。
主流产品
开源自托管
- Qdrant(Rust):高性能、易部署、REST + gRPC。
- Milvus(Go/C++):CNCF 项目,亿级生产首选。
- Weaviate(Go):模块化、内置 RAG pipeline。
- Chroma(Python):轻量、原型首选。
- LanceDB(Rust 内嵌):嵌入式场景。
- pgvector:PostgreSQL 插件,不引入新组件。
云托管
- Pinecone:最成熟的 SaaS。
- Weaviate Cloud、Qdrant Cloud:开源产品的托管版。
- Elasticsearch dense_vector:ES 用户的零迁移方案。
选型建议
| 规模 | 推荐 |
|---|---|
| 原型 / < 100k 向量 | Chroma / LanceDB / pgvector |
| 生产 / 1M-100M | Qdrant / Milvus / Weaviate |
| 超大规模 / > 100M | Milvus / Pinecone / Vespa |
| 不想引入新组件 | pgvector / ES dense_vector |
关键指标
- Recall@10:检索质量(vs 暴力搜索)。
- QPS:每秒查询数。
- P99 latency:长尾延迟(向量库通常 < 10ms)。
- Memory:向量原始大小 × 索引膨胀系数(HNSW ~2x,IVF ~1.2x)。