向量库 2026 选型指南:Qdrant / Milvus / Weaviate / pgvector 四强对决

Qdrant、Milvus、Weaviate、pgvector —— 这四款开源向量数据库在 2026 年同期保持着高度活跃的迭代,截至本文撰写时(2026-07-19),Qdrant 累计 33,396 ⭐、Milvus 45,272 ⭐、Weaviate 16,616 ⭐、pgvector 22,250 ⭐(均据 GitHub API 直连获取)。面对 RAG、Agent 记忆、多模态检索三类典型场景,开发者究竟应该如何取舍?

一、为什么 2026 年向量库选型变得更重要

2026 年的 LLM 应用栈里,向量库的角色从「可选项」变成了「必经之路」。三个推力同时起作用:

  • RAG 工业化:企业 RAG 已从 Demo 阶段进入生产阶段,可观测性 / 权限隔离 / 混合检索是硬要求
  • Agent 长期记忆:Agent 需要在多轮对话、跨会话甚至跨用户之间持久化记忆向量
  • 多模态向量:图像 / 音视频 / 代码 embedding 让单库容量的天花板快速抬高

但「选 Qdrant 还是 Milvus 还是 Weaviate 还是 pgvector」这个问题,在 2026 年没有一个全局最优解——四款都在快速演进,定位的差异反而比两年前更明显。

二、四款定位的核心差异(架构视角)

维度 Qdrant Milvus Weaviate pgvector
------ -------- -------- ---------- ----------
语言 Rust Go + C++ Go C(PG 扩展)
部署形态 独立服务 / Cloud 独立 / 集群 独立 / Cloud Postgres 内置
主索引算法 HNSW HNSW + IVF + DiskANN HNSW + 倒排 HNSW + IVF
强项 过滤性能 + 资源效率 大规模 + 分布式 模块化 + 多模态 与业务数据共库
弱项 集群化能力仍在演进 运维复杂度高 资源占用偏重 单机容量受限

关键判断(按需取用)

  • 追求极简部署 + 单机能跑到千万级向量 → Qdrant(Rust 单二进制 + HNSW + 强过滤)
  • 数据规模超过亿级且需要水平扩展 → Milvus(生产级分片架构,etcd + MinIO + Pulsar 三件套可独立扩缩)
  • 需要 GraphQL / 模块化模块 / 多模态检索 → Weaviate(向量化模块多、可插拔)
  • 已有 Postgres 业务 + 数据量 < 500 万向量 + 需要事务一致性 → pgvector(零运维成本)

mermaid diagram

三、技术解析:四款分别在打磨什么

Qdrant:把「过滤 + 向量」做到极致

Qdrant 的核心差异点是 Payload 过滤:传统向量库只做向量召回,但 Qdrant 把结构化字段(JSON payload)做成了可索引、可过滤的一等公民。它在每次召回时都执行「向量相似度 + payload WHERE 条件」的复合查询,性能比传统「先 SQL 过滤再向量召回」更稳定。

实操里看到的几个特性:

  • UUID / 整数 / 字符串 / 地理位置都可作为 payload 索引
  • 同一个 collection 内可同时支持「最近邻」和「按地理半径召回」
  • 在 1 亿向量级别下,过滤 + ANN 查询 p99 < 30ms(据 Qdrant 官方 benchmark 页)

Milvus:从「向量库」升级为「向量基础设施」

Milvus 1.x 是单机版,2.x 重写成云原生分片架构,2026 年的版本已经在打磨 DiskANN 冷数据降本:热数据在内存里按 HNSW 检索,冷数据自动落盘走 DiskANN。这让它能在保持召回质量的前提下把存储成本压到接近 1/10。

Milvus 是四款里运维复杂度最高的——生产部署通常需要 etcd + MinIO + Pulsar 三件套。但换来的是亿级向量 + 多副本高可用 + 跨可用区分片。

Weaviate:模块化 + 多模态

Weaviate 的差异点是 vectorizer 模块化:你可以在写入时自动调用 OpenAI / Cohere / HuggingFace / 自部署模型的 vectorization,不用应用层先算 embedding 再入库。配合 GraphQL 查询,写法相对其他三款更声明式。

2026 年的迭代重点是 RAC(Replicated And Consistent)多副本协议,以及跟 LangChain / LlamaIndex 的深度集成(不绑死 SDK,但确保开箱即用)。

pgvector:让 Postgres 同时是你的向量库

pgvector 的卖点不是性能极限,而是架构简洁:你不用引入新组件、不用做数据同步、不用管事务隔离级别,业务向量直接和订单/用户表存在一起。代价是单机容量有上限(500 万 - 1500 万向量级别,HNSW 全内存);超过这个规模,HNSW 的 build time 与查询延迟会快速恶化。

实操里,pgvector 配合 pgvectorscale(Timescale 维护的扩展)能再多撑一倍,再大就要权衡是否引入独立向量库。

mermaid diagram

四、关键点(按重要性排序)

  • 没有「最好」,只有「最匹配」:数据规模、运维能力、与业务库关系决定一切
  • 生产规模 > 亿级 → Milvus 是事实标准,但要准备好运维成本
  • RAG + 中等规模 + 强过滤 → Qdrant 是 2026 年的甜点选择,Rust + 单体 + 强过滤三者齐备
  • 已有 Postgres + 数据量适中 → pgvector 永远是最经济的起点,不需要引入新组件
  • Weaviate 适合 GraphQL 团队 / 多模态重场景,但资源占用最重

五、行业影响与展望

观察 2025-2026 年的方向,有三条趋势值得聚焦:

混合检索成标配:BM25 + 向量 + 结构化过滤的组合被 Qdrant / Milvus 2.x / Weaviate 同时纳入核心 API,纯向量库的概念正在淡化

DiskANN / 冷热分层让单机向量库的容量天花板从 1 亿级向 10 亿级推进,Milvus 与 Weaviate 是走在最前面的两款

pgvector 在 PostgreSQL 生态里继续吞噬简易场景——对很多中小团队来说,引入专用向量库的 ROI 越来越低

对架构师的建议:如果你 2026 年正在选型,先按「亿级 vs 千万级 vs 百万级」+「是否有现成 Postgres」两个维度拍板,再纠结细节;过早优化在向量库选择上是常见的时间黑洞。

六、结语

向量库选型的「正确姿势」是先承认四款都活到 2026 年不是偶然——它们各自占据不同的生态位,对应不同的工程取舍。希望这篇横评能帮你把抽象的「Qdrant vs Milvus vs Weaviate vs pgvector」问题,转换成具体的「我的数据量 / 运维能力 / 业务集成需求是哪个组合」问题。

社区里对这个问题也有持续讨论:HN 上有专门的 Ask HN 帖「Which Vector Database do you recommend for LLM applications?」长期保持热度,每周都有新观点补充。读者如果对某个特定场景(比如要求强一致性 / 多租户隔离 / 离线推理)有更细的问题,欢迎在评论区提出。


参考资料

官方文档

开源项目

对比基准

社区讨论


**本文由 AI 生成**。内容基于公开资料整理,可能存在事实偏差,引用链接请以原始来源为准。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注