跳转到主要内容
PromptQuorum为人类设计。 为AI结构化。
主页/本地LLM进阶
RAG & Document Chat

Milvus 评测:面向本地 RAG 的开源向量数据库

·阅读时间:约12分钟Hans Kuepper 作者 · PromptQuorum创始人 · 开放权重与开源AI发现引擎

Milvus是免费开源(Apache-2.0)的向量数据库,用于存储和检索嵌入向量,常作为RAG的检索层。可自托管为Milvus Lite、Standalone或Kubernetes集群。Milvus 3.0(2026年7月)新增湖原生检索;Zilliz Cloud是单独的可选付费服务。

关键要点

  • Milvus 免费开源,采用 Apache-2.0 协议,由 LF AI & Data 基金会管理,Zilliz 是主要的企业贡献者
  • 三种自托管部署模式:Milvus Lite(嵌入式,pip install pymilvus,用于原型开发)、Standalone(Docker,单机)以及 Distributed(Kubernetes/Helm,用于集群规模的生产环境)
  • 支持混合检索——在单次查询中结合稠密向量相似度、稀疏/全文(BM25)检索与元数据过滤
  • 支持 GPU 加速索引构建,以及多种索引类型(HNSW、IVF、FLAT、DiskANN 等)
  • 支持多租户(数据库、集合、分区及基于角色的访问控制),用于在共享基础设施上隔离不同工作负载
  • 可直接与 RAG/编排框架(LangChain、LlamaIndex)集成,并支持 OpenAI、Hugging Face 及本地/自托管的嵌入模型
  • GitHub 仓库星标约 46,500
  • Zilliz Cloud 是 Zilliz 提供的独立可选托管服务——并非自行运行 Milvus 的必要条件

📍 简单一句话

Milvus 是一款免费、开源、可自托管的向量数据库——从单条 pip install 命令到 Kubernetes 集群均可部署——专为支撑 RAG 流程和语义搜索的大规模相似度检索而构建。

💬 简单来说

搭建本地 RAG 系统时,你首先要用嵌入模型把文档转换成嵌入向量(一串数字),然后需要一个地方来存储这些向量,并针对新问题快速找出最相近的匹配结果。Milvus 就是这层存储与检索基础设施。你可以在笔记本电脑上以单个文件形式运行它来测试,用一个 Docker 容器为小型生产应用运行它,也可以用完整集群来应对数十亿级别的向量——全部免费、自托管,无需注册账号。

📌注: 本评测是 Milvus 在本地 LLM 软件目录中条目的深度补充——该页面可让你一览 Milvus 与其他数十款本地 AI 工具(包括其他向量数据库)的对比。

Milvus(milvus.io,源代码位于 github.com/milvus-io/milvus)是一款免费、开源、云原生的向量数据库,专为存储和检索支撑检索增强生成(RAG)、语义搜索和推荐系统的向量嵌入而设计。它完全可自托管——从单条 pip install 命令用于本地原型开发,到面向数十亿向量规模的分布式 Kubernetes 部署都能覆盖——目前由 LF AI & Data 基金会管理,Zilliz 是其主要的企业贡献者。本评测将介绍 Milvus 实际能做什么、它的来历、如何安装、定价如何,以及它在本地 LLM 技术栈中与其他开源向量数据库相比处于什么位置。

Milvus 是什么?

Milvus 是一款开源、云原生的向量数据库,专为存储、索引和检索海量高维向量嵌入集合而设计。 其 GitHub 简介将其描述为"一款为可扩展向量近似最近邻(ANN)检索而构建的高性能云原生向量数据库"。在本地 LLM 或 RAG 场景中,Milvus 本身并不是 LLM 推理引擎——它是位于推理引擎背后的检索基础设施:嵌入模型将你的文本(或图像、音频等)转换为向量,Milvus 负责存储和索引这些向量,在查询时 Milvus 找出与新查询最相似的向量,从而让 LLM 能够基于检索到的内容生成有依据的回答。

  • 核心功能:使用近似最近邻(ANN)算法存储、索引和检索大规模向量嵌入集合,规模可从数千到数百亿个向量
  • 根据 GitHub 仓库信息,使用 Go 和 C++ 编写,从一开始就被设计为分布式、云原生系统
  • 部署模式:嵌入式库(Milvus Lite)、单机服务器(Standalone)以及分布式集群(Kubernetes/Helm)
  • 索引类型:HNSW、IVF、FLAT、DiskANN,以及 GPU 加速索引(如 CAGRA),可按集合选择,以权衡速度、精度与内存占用
  • 治理架构:属于 LF AI & Data 基金会,与其他开源 AI/数据基础设施项目同属 Linux Foundation 旗下
  • 主要企业贡献者:Zilliz,成立于 2017 年,该公司还提供独立的托管服务 Zilliz Cloud
  • 官方源代码仓库:github.com/milvus-io/milvus

Milvus 的项目历史与版本里程碑

Milvus 由 Zilliz 于 2019 年创建并开源。它于 2020 年 1 月作为孵化项目加入 LF AI & Data 基金会,并于 2021 年 6 月正式从孵化阶段毕业——这一里程碑仅授予符合该基金会所定义的成熟度、采用率和治理标准的项目。在从最初的 1.x 版本线到 2022 年 1 月发布的 Milvus 2.0 之间,该项目经历了一次完整的架构重构,转向了如今仍在使用的分布式、云原生、存储计算分离架构。

  1. 1
    2019 年:首次开源发布
    Why it matters: Zilliz 将最初的 Milvus 作为开源项目发布,确立了该项目最初的架构。
  2. 2
    2020 年 1 月:以孵化项目身份加入 LF AI & Data 基金会
    Why it matters: 使 Milvus 从单一公司项目转向中立、不依赖特定厂商的开源治理模式。
  3. 3
    2021 年 6 月:从 LF AI & Data 基金会孵化阶段毕业
    Why it matters: 标志着该项目达到了基金会在成熟度、社区规模和治理方面设定的标准——这是 LF AI & Data 项目地位的最高等级。
  4. 4
    2022 年 1 月:Milvus 2.0 发布
    Why it matters: 一次完整的架构重构,引入了存储与计算分离的分布式、云原生设计——这也是目前 2.x 版本线所使用架构的基础。
  5. 5
    2.4.x:加入 GPU 加速索引构建
    Why it matters: 新增 GPU 索引类型(如 CAGRA),在受支持的硬件上大幅提升索引构建与检索速度。
  6. 6
    2.5.x:全文检索(BM25)与扩展的混合检索
    Why it matters: 在稠密向量检索之外新增原生稀疏/全文检索,让单次查询能同时结合关键词式匹配与语义匹配。
  7. 7
    2.6.x——持续到 2026 年:持续的性能与可靠性更新
    Why it matters: 根据 [GitHub Releases 页面](https://github.com/milvus-io/milvus/releases),近期的 2.6.x 小版本更新聚焦于查询调度效率、GPU 检索正确性修复以及安全加固——2.6.26 于 2026 年 10 月 26 日发布,是本评测能够核实到的最新小版本。
  8. 8
    3.0 — 2026 年 7 月 29 日:湖原生版本
    Why it matters: 根据 [GitHub Releases 页面](https://github.com/milvus-io/milvus/releases),3.0 新增了可直接检索 Parquet、Iceberg、Lance 和 Vortex 文件的 External Collections、StructList 多向量字段和在线 Schema 变更,并引入可选启用的 Storage V3 格式,启用后可能无法回滚到 2.6——升级前请阅读发行说明。3.0.5 于 2026 年 10 月 30 日发布。

Milvus 能做什么?

Milvus 的功能集以大规模存储和检索向量嵌入为核心,并在此基础上叠加了混合检索与多租户能力,以支撑生产级 RAG 应用。以下是根据 Milvus 官方文档和 GitHub README 整理的各项功能说明。

  • 向量相似度检索——存储嵌入向量并执行近似最近邻查询,找出与给定查询向量最相似的向量,这是 RAG 检索和语义搜索背后的核心操作
  • 混合检索——在单次查询中结合稠密向量相似度、稀疏/全文(BM25)检索与结构化元数据过滤,而不必分别运行关键词检索和语义检索
  • GPU 加速索引构建——在受支持的硬件上构建和检索 GPU 支持的索引(如 CAGRA),在大规模场景下大幅提升性能
  • 多种索引类型——HNSW、IVF、FLAT、DiskANN 等,可按集合选择,以在检索速度、召回精度与内存/磁盘占用之间做权衡
  • 多租户——数据库、集合和分区,加上基于角色的访问控制(RBAC),用于在共享的 Milvus 基础设施上隔离不同应用或团队
  • 灵活的部署规模——相同的数据模型和 API 既能在笔记本电脑上的嵌入式 Milvus Lite 实例中运行,也能扩展到处理数百亿向量的分布式 Kubernetes 集群
  • 框架与嵌入模型集成——官方支持与 LangChain、LlamaIndex 集成,并支持来自 OpenAI、Hugging Face/Sentence Transformers、BGE-M3 等服务商的嵌入模型,包括本地/自托管的嵌入模型
  • Python SDK(PyMilvus)——主要的客户端库,通过 pip install pymilvus 安装,既可用于嵌入式的 Milvus Lite 模式,也可用于连接远程的 Standalone 或 Distributed 服务器

使用示例:三种 Milvus 使用方式

以下是基于上文 Milvus 已有功能构建的具体工作流程,而非假设性的用例。

用 Milvus Lite 搭建本地 RAG 流程原型

运行 pip install -U pymilvus(Milvus Lite 已随 PyMilvus SDK 一同打包),并将连接 URI 设置为本地文件路径,例如 ./milvus.db。Milvus Lite 将所有内容存储在这一个文件中——无需服务器或 Docker——是在正式部署前,用本地嵌入模型端到端快速测试检索增强生成流程的高效方式。

为小型 RAG 应用运行自托管的单机向量数据库

在你自己的服务器上通过 Docker Compose 部署 Milvus Standalone。将应用中的 PyMilvus 客户端指向该服务器,而不是本地文件,这样你就拥有了一个持久化、自托管的向量数据库,可以为小型生产级 RAG 应用或内部搜索工具提供服务,而无需依赖任何外部托管服务。

在一次查询中结合关键词检索与语义检索

同时用稠密嵌入模型和 Milvus 内置的 BM25 全文检索功能为文档建立索引,然后运行一次混合检索查询,结合两种信号对结果打分。这能够捕捉到纯语义检索可能遗漏的情况——比如某个精确的产品代码或缩写词,稠密嵌入模型单独使用时可能不会给予足够高的权重。

Milvus 定价:真的免费吗?

是的——Milvus 本身没有付费档位。 该数据库的全部三种部署模式(Lite、Standalone、Distributed),均基于 Apache License 2.0 免费开源,可通过 GitHub 仓库的 LICENSE 文件核实。

  • 自托管的 Milvus 本身不设订阅、不设付费档位、不设使用限制
  • 下载、安装或运行 Milvus 无需账号或注册
  • 运行自托管 Milvus 所需的计算、存储和任何云托管资源,其成本由你自行控制并单独支付(自己的服务器或云虚拟机),而非向 Milvus 或 Zilliz 支付的费用
  • Zilliz Cloud——一项面向 Milvus 的全托管付费服务——完全是可选的,由 Zilliz(Milvus 的主要企业贡献者)提供,独立于开源项目本身

Milvus 对比 Qdrant

Milvus 和 Qdrant 是目前使用最广泛的两款开源向量数据库,二者经常被拿来比较,因为它们都是免费、可自托管的,并都支持面向 RAG 流程的混合检索。二者最明显的差异体现在架构复杂度和典型部署规模上。

编程语言

Milvus:
Go / C++
Qdrant:
Rust

许可协议

Milvus:
Apache-2.0
Qdrant:
Apache-2.0

部署模式

Milvus:
嵌入式(Lite)、Standalone(Docker)、Distributed(Kubernetes/Helm)
Qdrant:
嵌入式、单节点 Docker、分布式集群模式

GPU 加速索引构建

Milvus:
支持,适用于部分索引类型
Qdrant:
并非核心重点

治理架构

Milvus:
LF AI & Data 基金会(已毕业项目);主要贡献者为 Zilliz
Qdrant:
公司主导的开源项目(Qdrant Solutions GmbH)

典型定位

Milvus:
更大规模、分布式生产工作负载;运维架构更复杂
Qdrant:
更适合中小规模 RAG 应用的简单自托管;运维负担更轻

如果你更看重在中立基金会治理下、经过验证的数百亿向量规模扩展能力和 GPU 加速索引,Milvus 的架构是二者中更重量级、更面向生产环境的一方。如果你更看重为中小规模 RAG 项目搭建尽可能简单的自托管向量数据库,值得直接评估 Qdrant——完整分析请参见 Qdrant 评测。两者均免费开源;由于双方都会频繁发布更新,决定前请在各自官网核实当前功能细节。

在目录中比较

谁适合使用 Milvus?

Milvus 是否适合你,取决于你检索工作负载的规模,以及你是否希望在不更换数据库的前提下,从本地原型开发一路扩展到分布式生产环境。

适合使用 Milvus 的情况

  • 你正在搭建 RAG 流程或语义搜索功能,希望用同一款向量数据库,从笔记本电脑上的原型(Milvus Lite)扩展到分布式生产集群(Kubernetes/Helm),无需重写代码
  • 你需要在一次查询中结合混合检索——稠密向量相似度、全文/BM25 检索与元数据过滤
  • 你的超大规模向量集合需要 GPU 加速索引
  • 你希望检索层由中立、不依赖单一厂商的基金会(LF AI & Data)治理,而不是继续作为某家公司的闭源产品
  • 你希望日后可以选择使用托管方案(Zilliz Cloud),但不想从一开始就被锁定在其中

不妨观望,或考虑其他方案的情况

  • 你希望为小型项目搭建尽可能简单的自托管方案——像 Qdrant 或 Chroma 这样更轻量的数据库,在中小规模场景下可能带来更少的运维负担
  • 你需要内置聊天图形界面或面向终端用户的应用——Milvus 是提供 cli/library 接口的基础设施,而不是一款可以直接打开点击操作的独立应用;若需要面向终端用户的体验,请将它与 RAG 框架或聊天应用搭配使用
  • 你没有计划扩展到超出小型数据集的规模,也不需要 GPU 索引或多租户——Milvus 在大规模场景下提供的运维能力可能超出你的实际需求
  • 你需要针对开源项目本身、带 SLA 的官方企业级支持——这一级别的支持通过独立的付费 Zilliz Cloud 服务提供,而非直接来自开源 Milvus 项目

Milvus 对比其他向量数据库

Milvus 是本地及自托管 RAG 技术栈中常用的多款开源向量数据库之一。完整目录请参见本地 LLM 软件目录,最接近的正面对比请参见上方专门的 Milvus 对比 Qdrant 章节。

  • Qdrant——一款基于 Rust 的开源向量数据库,运维更简单,在中小规模自托管 RAG 场景中很受欢迎;参见上方专门的对比章节和 Qdrant 评测。
  • Chroma——一款轻量、对开发者友好的开源嵌入数据库,常用于快速的本地 RAG 原型开发;参见 Chroma 评测。
  • txtai——一款嵌入式、Python 原生的向量/语义搜索库,以进程内方式运行而非作为独立服务器,适合小型本地项目的更轻量替代方案;参见 txtai 评测。

在目录中比较

评估 Milvus 时的常见误区

关于 Milvus 的大多数误解,源于将其与 Zilliz Cloud 混淆、低估其在大规模场景下的运维复杂度,或期望它承担超出检索范畴的功能。

误区一:以为 Milvus 需要 Zilliz Cloud 或付费账号

Milvus 完全可自托管,基于 Apache-2.0 协议免费提供。Zilliz Cloud 是 Zilliz 提供的一项独立、可选的托管产品——运行自托管的 Milvus(Lite、Standalone 或 Distributed)完全不需要任何 Zilliz 账号。

误区二:期望 Milvus 自己生成嵌入向量或运行 LLM 推理

Milvus 负责存储和检索向量——它本身不会将文本转换为嵌入向量,也不会自行生成答案。你需要搭配一个独立的嵌入模型(本地或云端),通常还要搭配一个 LLM,才能构建完整的 RAG 流程。

误区三:为小型项目部署 Distributed/Kubernetes 模式

Milvus Lite 或 Standalone 已能以远低得多的运维负担,覆盖绝大多数本地开发和中小规模生产场景。Distributed/Kubernetes 部署是为大规模生产环境构建的,会带来大多数小型 RAG 项目并不需要的实际运维复杂度。

误区四:以为 Milvus 是某家公司的闭源产品

Milvus 由 LF AI & Data 基金会管理,并于 2021 年 6 月从孵化项目毕业——这是一种厂商中立的治理地位,尽管 Zilliz 仍是其主要企业贡献者,并另外基于 Milvus 销售独立的托管云服务。

常见问题

Milvus 是什么?

Milvus(milvus.io,源代码见 github.com/milvus-io/milvus)是一款免费、开源、云原生的向量数据库,用于存储和检索大规模向量嵌入,常被用作 RAG 流程中的检索层。

Milvus 免费吗?

是的。Milvus 在其三种部署模式(Lite、Standalone、Distributed)下均基于 Apache License 2.0 免费开源。Zilliz Cloud 是一项独立的托管服务,为可选项,并非使用 Milvus 的必要条件。

Milvus 是开源的吗?采用什么许可协议?

是的。根据其 GitHub 仓库中的 LICENSE 文件,Milvus 采用 Apache-2.0 协议授权,并由 LF AI & Data 基金会管理。

如何安装 Milvus?

运行 pip install -U pymilvus 使用 Milvus Lite(嵌入式、基于本地文件);通过 Docker Compose 部署 Milvus Standalone 以搭建单机自托管服务器;或使用 Helm chart / Milvus Operator 进行分布式 Kubernetes 部署。详见上方的"安装 Milvus"章节。

Milvus Lite 是什么?

Milvus Lite 是随 PyMilvus Python SDK 一同打包的嵌入式 Milvus 版本——通过 pip install -U pymilvus 安装,将连接 URI 指向本地文件(例如 ./milvus.db),即可完全在进程内运行,无需单独的服务器,非常适合本地原型开发。

Milvus 支持使用本地嵌入模型进行 RAG 吗?

支持。Milvus 可与 LangChain 和 LlamaIndex 集成,其 Python SDK 支持来自 Sentence Transformers、BGE-M3 等来源的嵌入模型,包括本地运行的模型,而不仅限于 OpenAI 等云服务商。

Milvus 和 Zilliz Cloud 是同一个东西吗?

不是。Milvus 是由 LF AI & Data 基金会管理的开源数据库项目本身。Zilliz Cloud 是 Zilliz(Milvus 的主要企业贡献者)提供的一项独立、可选的付费托管服务。

Milvus 支持 GPU 加速吗?

支持。Milvus 支持在受支持的硬件上使用 GPU 加速索引类型(如 CAGRA),在大规模场景下加快索引构建和检索速度,该功能自 2.4.x 版本线引入。

Milvus 支持混合检索吗?

支持。Milvus 支持在单次查询中结合稠密向量相似度、稀疏/全文(BM25)检索与元数据过滤——全文检索功能是在 2.5.x 版本线中加入的。

Milvus 与 Qdrant 相比如何?

两者都是免费、开源、可自托管的向量数据库,均支持面向 RAG 流程的混合检索。Milvus 提供 GPU 加速索引,架构更分布式、更面向生产规模,并由 LF AI & Data 基金会治理;使用 Rust 编写的 Qdrant 在中小规模项目的自托管上通常更简单。详见上方专门的 Milvus 对比 Qdrant 章节。

Milvus 项目由谁治理?

Milvus 隶属于 LF AI & Data 基金会(Linux Foundation 旗下项目),于 2021 年 6 月从孵化阶段毕业。2019 年最初将 Milvus 开源的公司 Zilliz,如今仍是其主要企业贡献者。

资料来源

← 返回 本地LLM进阶

MCP