向量数据库是大模型应用开发必备组件之一因为它在知识库、语义搜索、检索增强生成RAG等人工智能应用中发挥着举足轻重的作用。但向量数据有很多为什么要使用 Milvus 呢常见向量数据常见的向量数据库有以下这些ChromaElasticsearchMilvusNeo4jOpenSearchRedisPGVector然而目前市面上使用最多的向量数据库还是 Milvus为什么呢这点从企业的招聘要求中也能发现Milvus 设计之初就是为 AI 而生的一个高效的向量数据库系统在大多数情况下Milvus 的性能是其他向量数据库的 2-5 倍它能实现万亿级向量的毫秒级相似性搜索而且 Milvus 还是开源的向量数据库。PS也就说 Milvus 既开源可以免费使用支持二次开发又具备高性能这样的数据库谁不爱呢为什么 Milvus 这么快Milvus 运行比较快的原因有以下几个硬件感知优化为了让 Milvus 适应各种硬件环境我们专门针对多种硬件架构和平台优化了其性能包括 AVX512、SIMD、GPU 和 NVMe SSD。高级搜索算法Milvus 支持多种内存和磁盘索引/搜索算法包括 IVF、HNSW、DiskANN 等所有这些算法都经过了深度优化。与 FAISS 和 HNSWLib 等流行实现相比Milvus 的性能提高了 30%-70%。C 搜索引擎向量数据库性能的 80% 以上取决于其搜索引擎。由于 C 语言的高性能、底层优化和高效资源管理Milvus 将 C 用于这一关键组件。最重要的是Milvus 集成了大量硬件感知代码优化从汇编级向量到多线程并行化和调度以充分利用硬件能力。面向列Milvus 是面向列的向量数据库系统。其主要优势来自数据访问模式。在执行查询时面向列的数据库只读取查询中涉及的特定字段而不是整行这大大减少了访问的数据量。此外对基于列的数据的操作可以很容易地进行向量化从而可以一次性在整个列中应用操作进一步提高性能。Milvus 支持各种类型的搜索功能以满足不同用例的需求ANN 搜索查找最接近查询向量的前 K 个向量。过滤搜索在指定的过滤条件下执行 ANN 搜索。范围搜索查找查询向量指定半径范围内的向量。混合搜索基于多个向量场进行 ANN 搜索。全文搜索基于 BM25 的全文搜索。Rerankers根据附加标准或辅助算法调整搜索结果顺序完善初始 ANN 搜索结果。根据主键检索数据。查询使用特定表达式检索数据。Milvus 安装Milvus 有三种部署方式Milvus LiteMilvus Lite 是一个 Python 库可导入到您的应用程序中。作为 Milvus 的轻量级版本它非常适合在 Jupyter 笔记本或资源有限的智能设备上运行快速原型。Milvus Lite 支持与 Milvus 其他部署相同的 API。与 Milvus Lite 交互的客户端代码也能与其他部署模式下的 Milvus 实例协同工作。Milvus StandaloneMilvus Standalone 是单机服务器部署。Milvus Standalone 的所有组件都打包到一个 Docker 镜像中部署起来非常方便。Milvus DistributedMilvus Distributed 可部署在 Kubernetes 集群上。这种部署采用云原生架构摄取负载和搜索查询分别由独立节点处理允许关键组件冗余。它具有最高的可扩展性和可用性并能灵活定制每个组件中分配的资源。Milvus Distributed 是在生产中运行大规模向量搜索系统的企业用户的首选。PS当然中小型公司生产环境也可以直接购买 XXX 云的 Milvus 实例直接使用。我们这里使用 Milvus Standalone 单机版部署方式。硬件要求前提条件安装 Docker Desktop点击下载软件安装 https://www.docker.com/get-started/安装之后需要重启电脑并且电脑会进行 Linux 子系统更新才能正常启动此过程可能会比较慢。安装 Windows Subsystem for Linux 2 (WSL 2)通常不需要单独安装安装 Docker Desktop 时会自动安装。正式安装1.打开打开 PowerShell。2.下载安装脚本命令如下Invoke-WebRequest https://raw.githubusercontent.com/milvus-io/milvus/refs/heads/master/scripts/standalone_embed.bat-OutFilestandalone.bat3.运行下载的脚本standalone.bat start最终执行效果如下运行安装脚本后包含以下内容名为 Milvus-standalone 的 docker 容器已在19530 端口启动。嵌入式 etcd 与 Milvus 安装在同一个容器中服务端口为 2379。其配置文件被映射到当前文件夹中的 embedEtcd.yaml。Milvus 数据卷映射到当前文件夹中的 volumes/milvus。在 Docker Desktop 也可以看到安装的 Milvus 相关组件参考官方文档https://milvus.io/docs/zh/install_standalone-windows.md安装 UI 客户端Milvus 服务安装成功之后可以按照一个 UI 客户端连接 Milvus 服务使用官方提供的客户端 attuhttps://github.com/zilliztech/attu具体安装步骤如下1.访问下载安装包attu-Setup-2.4.12.exe地址https://github.com/zilliztech/attu/releases/tag/v2.4.12 open in new window2.解压并安装 attu。安装成功之后连接本地 Milvus 服务如下图所示小结Milvus 作为开源高性能向量数据库的代表它的安装也不难如果顺利的情况下可能 5 分钟左右就搞定了。安装完成之后就用它加上 Spring AI 或 LangChain4j 来实现一下 RAG 功能吧。