最佳自托管向量数据库(2026):Qdrant、Weaviate、Milvus、pgvector 与 Chroma

五款可在自有硬件上运行的开源向量引擎——根据自托管成本、运维和规模进行排名,而非市场宣传。

Aquila 团队 更新于 2026年6月19日

如果你想自行运行一个向量数据库——在你自己的 VPS 上、在你自己的 Kubernetes 集群中、在你自己的防火墙后面——那么 2026 年最强大的五个开源选项是 Qdrant、Weaviate、Milvus、pgvector 和 Chroma。对于大多数团队来说,最佳默认选择是 Qdrant(快速、Apache-2.0、单个 Docker 镜像、原生混合搜索)。如果你的数据已经存放在 PostgreSQL 中,那么 pgvector 是更实用的选择。本指南将通过自托管的视角诚实地比较这五款产品——许可证、实现语言、GitHub 热度、混合搜索支持以及每款产品的运维难度——然后根据用例给出推荐。

这里是向量数据库的比较中心。如果你还在决定是否需要一个专门的向量存储,请先从概念背景开始了解,然后再回到这里选择引擎。

▶ 自己跑一遍 —— aquila-starter 是这篇指南的一键自托管版本:Ollama + Qdrant + FastAPI,docker compose up 即起。Fork 下来据为己有。

候选产品一览

这五款产品都是真正的开源且可自托管——这是本列表的筛选条件。类似 Pinecone 的纯托管服务被有意排除在外;这里讨论的是你所拥有的搜索。(关于托管与自托管的具体成本问题,请参阅我们的自托管 RAG 与 OpenAI + Pinecone 成本分解)。

引擎许可证核心语言GitHub 星标(2026年6月)混合搜索自托管方案
QdrantApache-2.0Rust32.4k是——原生稠密+稀疏,单次查询中实现RRF/融合单个 Docker 镜像;单节点或分布式/集群
WeaviateBSD-3-ClauseGo16.3k是——向量+BM25,单次查询中实现融合排名Docker / docker-compose;生产环境用 Kubernetes + Helm
MilvusApache-2.0Go 核心 + C++ 引擎44.8k是——稠密+稀疏+全文搜索,集合内统一支持Milvus Lite(嵌入式)、Standalone(Docker)、分布式(K8s)
pgvectorPostgreSQL License(BSD风格)C21.8k部分/自行组装——向量+Postgres全文搜索通过SQL实现在任何 Postgres 上执行 CREATE EXTENSION vector;;Docker、APT/YUM、源码
ChromaApache-2.0Rust 核心(+ Python/TS/Go)28.5k是——仓库列出向量、混合和全文搜索嵌入式库(pip install chromadb)或客户端-服务器 + Docker

星标数量是截至 2026 年 6 月的 GitHub 四舍五入数值,会随时间变化——请将其视为社区规模的粗略指标,而非排名。相比之下,许可证和语言是稳定的因素,值得重点考量。

许可证:在做出承诺前必须先审视

对于自托管部署,许可证是需要检查的第一件事,因为它决定了你可以在其上构建什么。

  • Apache-2.0Qdrant、Milvus、Chroma。 宽松许可;你可以嵌入并发布商业产品,无版权义务。对大多数公司来说是最安全的默认选择。
  • BSD-3-ClauseWeaviate。 也是宽松许可,在实践上与 Apache-2.0 非常相似,适用于下游使用。
  • PostgreSQL Licensepgvector。 从 Postgres 生态继承的宽松、BSD 式许可。无版权保护条件。

值得注意的是,这里的五个核心项目均非版权保护(GPL/AGPL),这使得它们都很适合嵌入。(这与一些 AI 搜索工具如 Khoj 或 SearXNG 形成鲜明对比,后者采用 AGPL-3.0。)如果许可证的纯净性是一个硬性要求,那么这五个中的任何一个都可以——差异在于其他方面。

性能与延迟

请对向量数据库的基准测试持怀疑态度,包括供应商自己的——召回率、数据集、维度、过滤器选择性和硬件都会影响数字,而且大多数已发布的基准测试都由获胜的供应商运行。本着这一前提,以下是每个项目实际声称的性能(如注明则为第一方数据):

  • Qdrant 发布了基准测试,声称在大多数场景下拥有最高的每秒请求数和最低的延迟,大约4 倍 RPS,并且在过滤搜索上具有优势。注意基准测试数据最后更新于 2024 年。
  • Milvus 声称(针对 Milvus 2.6)在 100 万 × 768 维的 VectorDBBench 运行中,大约减少 72% 内存,吞吐量提升约 4 倍,并且在相同召回率下,全文搜索吞吐量比 Elasticsearch 高 3–4 倍(最高约 7 倍)。该引擎专为超大规模构建。
  • Weaviate 发布了一个 ANN 基准测试,报告端到端的 p99 延迟和 QPS 对比召回率曲线——交互式,没有一个单一的头条数字,这可以说是更诚实的形式。
  • pgvector 没有提供第一方基准测试(它是一个扩展)。存在第三方数据——AWS 报告在 Aurora 上的 pgvector 0.7 中,HNSW 构建速度提升约 30 倍;Supabase 报告了其自己的 HNSW 加速——但绝对延迟完全取决于主机和配置。请将这些视为供应商数据,而非 pgvector 自己的声称。
  • Chroma 没有我们可验证的规范化的第一方延迟基准测试。不要相信任何被作为官方数据的特定 Chroma 延迟数字。

诚实的总结:根据各自的基准测试,Qdrant 和 Milvus 是性能和规模方面的领导者;Weaviate 具有竞争力;pgvector 的速度取决于你的 Postgres 主机,在中等规模下表现出色;Chroma 针对开发者体验进行了优化,而非原始吞吐量。对于低于几百万向量的场景,在合适的硬件上,这五款产品都很快——性能只有在规模扩大时才成为决定因素。

混合搜索

“混合搜索”——将稠密向量相似性与稀疏/关键词(BM25风格)匹配相结合——正逐渐成为基本要求,因为纯向量搜索会遗漏精确关键词、ID 和罕见术语。以下是五款产品差异最大的地方:

  • Qdrant — 原生混合:稠密+稀疏向量,每个点支持多个命名向量,以及可配置的融合(例如 Reciprocal Rank Fusion)在单次查询中
  • Milvus — 语义+全文搜索,在同一个集合中支持稀疏和稠密向量。
  • Weaviate — 内置向量+ BM25 关键词搜索,带融合排名,在单次查询中。
  • Chroma — 仓库列出”向量、混合和全文搜索”。
  • pgvector部分/自行组装。 pgvector 提供向量搜索(以及 sparsevec 类型),但混合搜索需要你自己通过组合 pgvector 和 Postgres 全文搜索(tsvector)在 SQL 中实现。没有单个内置的混合运算操作符。这需要更多工作,但也更透明,并且使用了你已经熟悉的工具。

如果开箱即用的混合搜索对你很重要,Qdrant、Weaviate 和 Milvus 是最干净的。使用 pgvector 你绝对可以实现混合搜索,只需自己动手编写融合代码。

自托管与运维

这是真正与”你所拥有的搜索”相关的部分。问题不仅在于能否自托管——五款产品都可以——而在于每款产品带来的运维负担有多重。

  • pgvector — 如果你已经在运行 Postgres,最轻量。 在你(可能)已经运维、备份和监控的数据库上执行 CREATE EXTENSION vector;。零新基础设施。如果你尚未运行 Postgres,那么现在需要运维 Postgres,这虽然常见但并非小事。
  • Chroma — 是最轻量的开始方式,没有之一。 pip install chromadb,它在进程中运行,带有本地持久化——根本不需要服务器。当你超越嵌入式场景时,还有可选的客户端-服务器模式和官方 Docker 镜像。适合原型和单应用使用;作为独立生产集群时经验较少。
  • Qdrant — 为专用引擎提供最佳的单个二进制/Docker 体验。 一个官方 qdrant/qdrant 镜像,开箱即用单节点运行,需要时可扩展到分布式/集群。这是”我想要一个真正的向量数据库,但不想搞 Kubernetes 项目”的甜蜜点。
  • Weaviate — 开发用 Docker/compose,生产用 Kubernetes + Helm。 更多移动部件(模块、向量化器),如果你需要则是力量,如果不需要则成为负担。
  • Milvus — 在规模下运维最重。 它提供 Milvus Lite(嵌入式,pip install)和 Standalone(Docker)用于小型部署,但其分布式模式是一个多组件系统(依赖对象存储、消息队列等),专为十亿级规模设计,最好在 Kubernetes 上运行。功能强大,但在这五款中运维最重。

一个有用的思维模型:运维负担大致与系统设计的扩展规模成正比。 Chroma 和 pgvector 轻量,因为它们面向中低端;Milvus 重量级,因为它面向超大规模;Qdrant 和 Weaviate 处于高效的中档。

成本与价格

当你自托管一个开源向量数据库时,软件是免费的——你的成本在于运行它的计算和存储。这就是”你所拥有的搜索”的全部卖点:可预测的固定基础设施账单,而非按使用量计费的托管定价。一个中小型索引可以舒适地运行在中等 VPS 上。

每个项目还提供托管云,作为备用或比较时有用——但请注意这些是托管价格,而非自托管的成本:

  • Qdrant Cloud — 永久 免费层(1 节点,0.5 vCPU / 1 GB 内存 / 4 GB 磁盘);付费 Standard 通过计算器按使用量计费,无固定公开入门价格。
  • Weaviate Cloud — 免费无服务器 Sandbox;付费 “Flex” 从 约 45 美元/月 起,按量计费(向量存储从约 0.00465 美元/百万维 起,各不相同)。
  • Milvus / Zilliz Cloud免费层(约 5 GB + 约 250 万 vCU/月);无服务器按量计费(约 4 美元/百万 vCU;存储 0.04 美元/GB-月);专用集群从约 99 美元/月起 (专用入门价格动态显示,为近似值)
  • pgvector没有 “pgvector Cloud”。它通过任何托管 Postgres(AWS RDS/Aurora、Google Cloud SQL/AlloyDB、Supabase、Neon 等)启用,因此价格就是宿主 Postgres 的价格。
  • Chroma Cloud — 无服务器,Starter 0 美元/月 + 使用量(免费额度);使用量按写入 2.50 美元/GiB、存储 0.33 美元/GiB-月、查询 0.0075 美元/TiB、出站流量 0.09 美元/GiB 计费;Team 250 美元/月 + 使用量。

对于自托管者来说,要点是:忽略托管价格标签,从你将运行的硬件角度思考。一个 约 20-30 美元/月 的 VPS(DigitalOcean 级别;Hetzner 上更便宜)可以舒适地托管 pgvector、Chroma、Qdrant 或单节点 Weaviate,用于中小型索引。Milvus 分布式和大索引需要更多——在这个层次上,你应该真正估算硬件的价格。

何时选择哪一款

  • 最佳全面默认选择 → Qdrant。 Apache-2.0、快速、原生混合搜索,以及专用引擎中最简洁的单镜像自托管方案。如果没有强有力的理由选择其他,从这里开始。(参见对比:Qdrant vs Weaviatepgvector vs Qdrant)。
  • 已经在用 Postgres → pgvector。 如果你的应用数据在 PostgreSQL 中,添加 CREATE EXTENSION vector; 是通往向量搜索的最平滑路径。无需运行、备份或监控新服务。混合搜索需自行组装,但可行。
  • 原型开发 / 单个应用的嵌入 → Chroma。 pip install chromadb,几分钟内即可在进程中建立索引。当超出其能力时再升级到更重的引擎。
  • 十亿级 / 非常大的工作负载 → Milvus。 专为大规模设计,拥有最强的大规模吞吐量声称。接受其分布式模式的运维负担。
  • 内置模块,开箱即用 → Weaviate。 如果你想要向量化器、混合搜索以及一个带有主见性的模块生态在一个包中,并且不介意在生产中使用 Kubernetes,Weaviate 是一个强有力的选择。

结论

对于 2026 年自托管的大多数团队来说,Qdrant 是最通用选择——宽松许可证、强大性能、原生混合搜索,以及不需要平台团队的 Docker 优先部署。pgvector 凭借纯粹的使用主义胜出,只要你已经运维着 Postgres,它牺牲了一些混合搜索的便利性,换来了零新基础设施。Chroma 是上手最快的方式,非常适合原型开发和单应用嵌入。Milvus 是十亿级规模的答案。Weaviate 是开箱即用的中间地带,如果你想要模块和混合搜索。没有普遍意义上的”最佳”向量数据库——只有最适合你的许可证约束、现有技术栈和规模的那一款。

常见问题

2026 年自托管的最佳开源向量数据库是什么? 对于大多数团队,Qdrant——它采用 Apache-2.0 许可证、快速、支持原生混合搜索,并以单个 Docker 镜像形式提供,开箱即用单节点运行并可扩展到集群。如果你已经运行 PostgreSQL,pgvector 是更实用的选择,因为它无需任何新基础设施即可添加向量搜索。

哪款自托管向量数据库最容易运行? Chroma 是最轻量的开始方式(pip install chromadb,在进程中运行并本地持久化)。pgvector 是最轻量的如果你已经在运维 Postgres,因为它只是一个扩展。对于专用引擎,Qdrant 拥有最简洁的单 Docker 镜像体验。

这些是否都支持混合搜索? Qdrant、Weaviate、Milvus 和 Chroma 提供开箱即用的混合(稠密+稀疏/关键词)搜索。pgvector 也可以进行混合,但需要你自己通过组合 pgvector 和 Postgres 全文搜索在 SQL 中实现——没有单个内置的混合运算操作符。

自托管向量数据库比 Pinecone 等托管服务更便宜吗? 对于可预测的工作负载,通常是肯定的,因为自托管将按使用量计费的账单转换为固定的基础设施成本——一个中小型索引可以在约 20-30 美元/月的 VPS 上良好运行。代价是你承担了运维工作。请参阅我们的自托管 RAG 与 OpenAI + Pinecone 成本分解了解全貌(注意其中的标题数字被标记为说明性内容)。

哪款向量数据库扩展性最强? Milvus 专为十亿级工作负载设计,并拥有最强的大规模吞吐量声称(通过其基于 Kubernetes 的分布式模式),代价是成为五款中运维最重的。


Aquila 是 私有、自托管 AI 搜索 的独立指南——搜索你拥有而非租用。深入了解 Qdrant vs Weaviatepgvector vs Qdrant 的对比,或浏览所有对比掌控你自己的搜索。

继续对比

对自托管向量数据库和搜索引擎的中立对比——始终以你自己运行的视角呈现。