Ch13 RAG修订于 二〇二六年七月六日

深挖-向量数据库选型

一句话理解

根据数据量级、运维能力、预算、功能需求(混合检索、GPU 加速、过滤能力)综合评估,选择最适合当前场景的向量数据库——没有”最好”的数据库,只有最匹配的。

选型决策树

按优先级依次回答以下问题,即可锁定候选方案。

第一步:数据量级

数据量级典型场景推荐方案
< 百万条原型、个人项目、小团队Chroma、pgvector、FAISS
百万 - 千万中型 SaaS、企业知识库pgvector、Qdrant、Weaviate、Elasticsearch
千万 - 亿大型知识库、推荐系统Milvus、Qdrant 集群、Pinecone
> 十亿搜索引擎、广告检索Milvus 分布式、Pinecone、Elasticsearch 集群

第二步:运维能力

你能投入多少运维精力?
│
├── 零运维(只想用,不想管)
│   └── Pinecone(全托管 SaaS)或 Zilliz Cloud(Milvus 托管版)
│
├── 有一点运维能力(会配 Docker/云服务)
│   └── Qdrant Cloud、Weaviate Cloud、Elastic Cloud
│
├── 有专职运维团队
│   └── Milvus 自建集群、Qdrant 自建集群、Elasticsearch 自建集群
│
└── 完全不想额外部署(复用现有基础设施)
    └── pgvector(已有 PG)、Elasticsearch(已有 ES)

第三步:功能需求

需求关键能力推荐方案
混合检索(BM25 + 向量)原生融合检索Elasticsearch、Weaviate、Qdrant
复杂元数据过滤过滤性能不退化Qdrant(过滤性能最佳)、Milvus
GPU 加速索引构建/查询加速Milvus(GPU 索引)、FAISS(GPU 版本)
多模态向量文本+图像+音频Weaviate(原生多模态)、Milvus
多租户隔离租户级数据隔离Pinecone、Qdrant、Milvus
磁盘优先(低成本)十亿级数据存磁盘Milvus(DiskANN)、Elasticsearch

第四步:预算

预算水平策略推荐
零预算开源自建Chroma、Qdrant 开源版、pgvector、Milvus 开源版
中等预算(< $500/月)托管服务Qdrant Cloud、Weaviate Cloud、Zilliz Cloud Serverless
充足预算全托管 + 企业支持Pinecone Enterprise、Zilliz Cloud Dedicated、Elastic Cloud Enterprise

2026 年主流向量数据库综合对比

维度MilvusPineconeQdrantWeaviateChromapgvectorElasticsearch
数据量上限百亿级十亿级十亿级十亿级百万级亿级(依赖 PG)十亿级
查询延迟 (P99)< 10ms< 20ms< 10ms< 30ms< 50ms(小数据)< 20ms< 50ms
部署复杂度高(K8s 推荐)极低(SaaS)中(Docker/二进制)中(Docker/K8s)极低(pip install)低(已有 PG 则零成本)中-高(集群运维)
价格免费(开源)/ 托管按量按 Pod 计费,中等偏高免费(开源)/ Cloud 有免费层免费(开源)/ Cloud 按量免费(开源)免费(开源)免费(开源)/ Cloud 按量
混合检索支持(需配合)支持强(原生 payload 索引)强(原生 hybrid)有限强(SQL JOIN + tsvector)强(原生 BM25 + dense)
过滤能力强(标量索引)支持极强(payload 索引,过滤不降速)支持基础极强(任意 SQL WHERE)强(倒排索引 + 过滤)
社区活跃度 (2026)极高(30k+ GitHub stars)高(商业社区)高(15k+ GitHub stars)高(12k+ GitHub stars)中(8k+ GitHub stars)极高(PG 生态)极高(ES 生态)
GPU 支持是(索引构建)否(SaaS 封装)否否否否否(推理端分离)
多租户是(Collection/Partition)是(Namespace)是(Collection)是(Class/Tenant)否是(Schema 级)是(索引级)
磁盘索引是(DiskANN)否(全内存)否(计划中)否否否是(mmap)
SDK 语言Python/Java/Go/Node.jsPython/Java/Go/Node.jsPython/Rust/Go/TypeScriptPython/Java/Go/TypeScriptPython/JS所有 PG 客户端所有 ES 客户端

场景推荐

原型开发 / 快速验证

首选 Chroma

  • pip install 即可使用,无需 Docker、无需配置
  • 适合数据量 < 10 万条的快速实验
  • 缺点:无分布式、无高可用、过滤能力弱

已有 PostgreSQL

首选 pgvector

  • 零额外基础设施,SQL 查询向量 + 元数据一步完成
  • 2026 年 pgvector 已支持 HNSW 索引,性能接近专用向量数据库
  • 缺点:数据量受 PG 单机限制(通常 < 1 亿条),高并发写入场景较弱

已有 Elasticsearch

首选 ES 原生向量搜索

  • 不引入新组件,团队已有运维经验
  • 混合检索(BM25 + 向量)在 ES 8.x+ 中已很成熟
  • 缺点:向量搜索性能不如专用向量数据库,内存占用较高

大规模生产环境(千万 - 十亿级)

首选 Milvus(开源)或 Zilliz Cloud(托管)

  • 云原生架构,支持水平扩展,实测百亿级向量检索
  • 支持 DiskANN 磁盘索引,大幅降低内存成本
  • 缺点:部署复杂(需 K8s),学习曲线陡峭,自建运维成本高

零运维 / 专注业务

首选 Pinecone

  • 全托管 SaaS,5 分钟建立索引,无需关心服务器
  • 自动扩缩容、高可用、备份恢复
  • 缺点:价格较高(按 Pod 计费),数据在第三方,无法私有部署

高性能 + 复杂过滤

首选 Qdrant

  • Rust 实现,单节点查询延迟极低(P99 < 10ms)
  • Payload 索引机制使过滤操作几乎不影响向量搜索速度
  • 缺点:分布式能力相对 Milvus 稍弱,中文社区较小

需要原生多模态

首选 Weaviate

  • 内置多模态模块(text2vec、img2vec、multi2vec)
  • GraphQL 接口,前端友好
  • 缺点:大规模场景下性能不如 Milvus,社区活跃度略低于竞品

2026 年趋势

1. 传统数据库吃掉中低端市场

PostgreSQL (pgvector) 和 Elasticsearch 在 2026 年已覆盖 80% 的向量检索需求。对大多数团队而言,引入专用向量数据库的必要性正在降低——“用现有数据库的向量功能”比”引入一个新数据库”更划算。pgvector 的 HNSW 索引成熟度已接近专用数据库,ES 的 dense_vector 字段 + 混合检索方案在中小规模场景中表现优异。

2. 专用向量数据库聚焦高端需求

Milvus、Qdrant、Pinecone 等专用数据库转向差异化竞争:

  • Milvus:十亿级以上数据量、需要 GPU 索引加速、DiskANN 磁盘存储
  • Qdrant:极致过滤性能、超低延迟、Rust 生态
  • Pinecone:零运维 + 企业级 SLA + 合规认证
  • Weaviate:多模态 + AI 原生集成(直接调用 Embedding/LLM API)

3. 混合检索 + 过滤成为标配

2026 年,单独依赖向量搜索已无法满足生产需求。BM25 + 向量 + 结构化过滤的”三合一”方案成为主流。Qdrant 和 Weaviate 在过滤性能上持续领先,Elasticsearch 在混合检索上凭借 BM25 基因有天然优势。

4. 成本优化压力推动磁盘索引

随着 Embedding 模型输出的向量维度越来越高(2026 年主流模型已到 4096-8192 维),全内存存储的成本急剧上升。Milvus 的 DiskANN 和 Elasticsearch 的 mmap 方案开始被广泛采用,用磁盘换内存,将十亿级数据的存储成本降低 70-80%。

5. 选型简化:从”选什么数据库”到”选什么接口”

2026 年多个数据库框架(如 LlamaIndex、LangChain)提供了统一的向量数据库抽象层。选型的影响正在从”绑定特定数据库”转向”选择部署模式”——自建 vs 托管、内存 vs 磁盘、单机 vs 分布式。业务代码通过统一接口操作,底层数据库可以根据数据增长灵活切换。

相关笔记

来源

关联13

知识图谱

局部图谱 · 点节点跳转