Skip to content

十、向量知识库

← 上一章:九、RAG 框架 | 返回总览 | 下一章:十一、Embedding 模型 →

主流向量数据库

数据库类型特点
Pinecone云服务全托管,企业级,易上手
Milvus / Zilliz开源/云服务生产级,大规模向量检索,云原生架构
Qdrant开源/云服务Rust 编写,高性能,支持过滤
Weaviate开源/云服务内置向量化模块,GraphQL API
Chroma开源轻量级,适合原型和中小规模

向量数据库选型对比

数据库部署性能规模过滤能力上手难度成本
Pinecone全托管云十亿级强(元数据过滤)偏高
Milvus/Zilliz自托管/云极高百亿级强(标量+向量混合)自托管免费,云付费
Qdrant自托管/云极高(Rust)十亿级强(高级过滤)自托管免费,云付费
Weaviate自托管/云亿级强(GraphQL)自托管免费,云付费
Chroma自托管百万级基础极低免费

选型建议

  • 原型验证(<1M 向量)Chroma:零配置,Python 一行启动
  • 生产环境(千万-亿级)Milvus / Qdrant:性能最强,社区大
  • 不想管运维Pinecone / Zilliz Cloud:全托管,开箱即用
  • GraphQL 技术栈Weaviate:原生 GraphQL API
  • Rust 技术栈 + 极致性能Qdrant:Rust 编写,高并发

核心概念

向量索引类型

索引类型原理查询速度召回率内存占用适用场景
HNSW基于图的近似最近邻,多层跳表导航极快较高生产环境首选,延迟敏感
IVF先聚类再搜索,只查相关聚类大规模数据,可接受精度换速度
Flat(暴力)逐个比较,精确搜索100%小数据集(<10万),需要精确结果

选择建议:<100 万向量用 Flat(精确);100 万-1 亿用 HNSW(又快又准);>1 亿用 IVF + HNSW 组合。

混合检索

纯向量检索可能遗漏关键词精确匹配,混合检索同时使用向量+关键词,兼顾语义和精确匹配:

用户查询:"Python 3.12 新特性"
  ├── 向量检索 → 找到语义相关的文档
  ├── 关键词检索(BM25)→ 精确匹配"Python 3.12"
  └── 融合排序(RRF)→ 综合两路结果,重排输出

Milvus、Qdrant、Weaviate 都原生支持混合检索。

过滤策略

在向量检索前/后加上元数据过滤(如时间、类别、权限),缩小检索范围:

  • 预过滤:先过滤元数据,再在子集中做向量搜索。适合过滤后数据量仍较大的场景
  • 后过滤:先做向量搜索,再过滤不满足条件的结果。可能丢失结果,需增大 top-k

相关文章

  • 向量数据库全面解析:从原理到选型CSDN

基于 CC BY-NC-SA 4.0 发布