⚠️ 本文为公开资料整理版(占位):基于三者官方文档与社区对比梳理,用于建立选型框架;本人尚未在同一数据集上完成三方横向压测,真实性能数据待补实践后替换。面试时可以据此讲清「选型逻辑」,但写进简历前请亲手跑一遍。

一、先想清楚要什么

选向量库前先问三个问题:

  1. 数据量多大?千级 / 百万级 / 亿级?
  2. 部署形态?单机嵌入式还是要分布式集群?
  3. 要不要和检索框架、重排、元数据过滤深度集成?

不同答案直接决定选型。

二、三者定位

  • Chroma:开发者友好,嵌入式起步,几行代码能跑,适合原型和小项目。代价是大规模下的运维能力弱。
  • Qdrant:Rust 实现,性能和内存效率高,过滤(payload)能力强,云托管成熟,适合中大型生产。
  • Milvus:面向海量(亿级)的分布式向量库,架构最重,运维成本高,但扩展性是三者最强。

三、对比速查

维度ChromaQdrantMilvus
起步成本极低(pip 即用)低(Docker)高(分布式)
单机性能中高高(规模取胜)
分布式弱中强
元数据过滤一般强强
适合阶段原型/小项目生产主力海量/企业

四、我的选型建议(逻辑,非实测)

  • 做 Demo / 个人项目 / 千到十万级:直接 Chroma,省心。
  • 要上生产、数据持续增长、重视过滤与延迟:Qdrant 是甜点区。
  • 真到了亿级、要横向扩展:Milvus。

五、一个常被忽略的点:和 RAG 管线的耦合

向量库不是孤立的——它要和你切分策略、embedding 模型、重排、元数据过滤一起调。我手搓 RAG 那篇强调过,检索层要先测准再谈生成。所以选型时也要看:支不支持按 metadata 过滤(比如只检索某类别的文档)、支不支持混合检索的分数融合。

六、待补的真实实践清单

  1. 同一份中文文档集,三方跑召回@10 + QPS 对比;
  2. 记录 Qdrant 在 12G 单机上的内存占用与上限;
  3. 测 metadata 过滤对延迟的影响。

实测完成后,这篇会改为「实战版」,结论以数据为准。