广告位 · header_banner

Vector DB 横评:Qdrant、Milvus、Weaviate 怎么选

三个主流、三个场景,三选一

Vector Database 在 2026 年已经从”要不要上”变成”上哪个”。本篇把 Qdrant / Milvus / Weaviate 三个主流开源向量库放一起对比,从架构、性能、运维成本三个角度给个清晰选择。

它们的定位速览

数据库 语言/底层 强项 弱项
Qdrant Rust,单二进制 性能 + 部署简单 云生态弱
Milvus Go + C++,分布式 10亿+ 向量规模 运维复杂
Weaviate Go,模块化 多模态原生(向量+对象+LLM) 大集群性能不如 Milvus

性能对比(基于 ANN-Benchmarks 数据)

场景 Qdrant Milvus Weaviate
1M 向量 / 768 维 / recall@10 ≥0.95 ~6ms ~7ms ~9ms
10M 向量 ~14ms ~10ms ~18ms
100M+ 向量 需要分片优化 原生分布式快 需要企业版支持

1M 级 RAG 业务三家差不多;过 10M 之后 Milvus 开始领先;100M 量级基本是 Milvus 主场。

运维复杂度对比

Qdrant

  • 单二进制部署,几分钟跑起来;
  • 支持嵌入式模式(直接进 Python 进程),适合原型;
  • 生产集群靠 cluster + sharding,文档清晰;
  • 运维上手 1-2 天。

Milvus

  • 基于 etcd + MinIO + Pulsar(默认 Standalone 用 Badger),分布式部署组件多;
  • 运维资源占用大,资源不够容易踩坑;
  • 运维上手 1-2 周。

Weaviate

  • 单进程启动简化部署;
  • 集群化配置比 Milvus 简单但比 Qdrant 复杂;
  • 运维上手 3-7 天。

多模态与混合检索能力

Weaviate 的隐藏王牌:模块化

Weaviate 把向量、对象属性、LLM 拼装成一个一体化 schema,能直接做:

  • 文本 + 图像混合向量;
  • 按元数据过滤(”过去一个月 / 客户端类型 = 移动”)后再做向量召回;
  • 原生支持 GraphQL API,业务侧上手快。

如果你的业务”非结构化文本 + 结构化字段 + 全文 + 向量”四件套都要,Weaviate 是这三家里最自然的。

Qdrant 的过滤王者

Qdrant 的 payload 过滤+向量召回组合速度是三家最快的,复杂条件 pre-filter + ANN 索引优化非常成熟。`should_match` 之类的复合条件也很自然。

Milvus 的标量 + 向量融合

Milvus 在传统标量字段(数值、字符串、JSON)做精确匹配后向量搜索的能力稳定,加上 Attribute Index 之后一些混合查询效率明显。

2026 选型结论

选 Qdrant,如果

  • 数据规模在 1M-10M 之间;
  • 运维资源有限(一两个工程师兼着管);
  • 需要快速上线,迭代频率高;
  • 看重 response time 的稳定性。

选 Milvus,如果

  • 数据规模是 100M+ 长期规划;
  • 有专门的基础设施团队;
  • 与 Spark / Trino 等大数据栈集成重;
  • 公司对国产开源友好(Milvus 出自 Zilliz,国内生态成熟)。

选 Weaviate,如果

  • 业务多模态(图像 + 文本 + 元数据);
  • 想要一个 DB 替代传统 ES + 向量库双写的复杂度;
  • 前端 GraphQL 直接接比较友好;
  • 愿意接受中等规模集群的运维负担。

最后提醒

三家都有云托管(Qdrant Cloud / Zilliz Cloud / Weaviate Cloud Services),不想自己运维直接用托管版本。但注意 egress 费用——大向量库最容易超预算的就是这一块。

选型前先算清楚:你的 QPS × embedding 维度 × 单向量字节数 × 总流量 = 月度带宽。这是真正决定 TCO 的数字。

广告位 · footer_banner
广告位 · sidebar_rect