• 最火向量数据库Milvus安装使用一条龙!

最火向量数据库Milvus安装使用一条龙!

2025-04-27 10:39:47 栏目:宝塔面板 54 阅读

向量数据库是大模型应用开发必备组件之一,因为它知识库、语义搜索、检索增强生成(RAG)等人工智能应用中发挥着举足轻重的作用。但向量数据有很多,为什么要使用 Milvus 呢?

常见向量数据

常见的向量数据库有以下这些:

  • Chroma
  • Elasticsearch
  • Milvus
  • Neo4j
  • OpenSearch
  • Redis
  • PGVector

然而目前市面上使用最多的向量数据库还是 Milvus,为什么呢?

这点从企业的招聘要求中也能发现:

为什么是 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 支持的搜索类型

Milvus 支持各种类型的搜索功能,以满足不同用例的需求:

  • ANN 搜索:查找最接近查询向量的前 K 个向量。
  • 过滤搜索:在指定的过滤条件下执行 ANN 搜索。
  • 范围搜索:查找查询向量指定半径范围内的向量。
  • 混合搜索:基于多个向量场进行 ANN 搜索。
  • 全文搜索:基于 BM25 的全文搜索。
  • Rerankers:根据附加标准或辅助算法调整搜索结果顺序,完善初始 ANN 搜索结果。
  • 根据主键检索数据
  • 查询使用特定表达式检索数据

Milvus 安装

Milvus 有三种部署方式:

  • Milvus Lite:Milvus Lite 是一个 Python 库,可导入到您的应用程序中。作为 Milvus 的轻量级版本,它非常适合在 Jupyter 笔记本或资源有限的智能设备上运行快速原型。Milvus Lite 支持与 Milvus 其他部署相同的 API。与 Milvus Lite 交互的客户端代码也能与其他部署模式下的 Milvus 实例协同工作。
  • Milvus Standalone:Milvus Standalone 是单机服务器部署。Milvus Standalone 的所有组件都打包到一个 Docker 镜像中,部署起来非常方便。
  • Milvus Distributed:Milvus 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 -OutFile standalone.bat

3.运行下载的脚本

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 服务,使用官方提供的客户端 attu:https://github.com/zilliztech/attu

具体安装步骤如下:

1.访问下载安装包(attu-Setup-2.4.12.exe)地址:https://github.com/zilliztech/attu/releases/tag/v2.4.12

2.解压并安装 attu。

安装成功之后连接本地 Milvus 服务,如下图所示:

小结

Milvus 作为开源高性能向量数据库的代表,它的安装也不难,如果顺利的情况下,可能 5 分钟左右就搞定了。安装完成之后就用它加上 Spring AI 或 LangChain4j 来实现一下 RAG 功能吧。

本文地址:https://www.yitenyun.com/147.html

搜索文章

Tags

数据库 API FastAPI Calcite 电商系统 MySQL Web 应用 异步数据库 数据同步 ACK 双主架构 循环复制 TIME_WAIT 运维 负载均衡 Deepseek 宝塔面板 Linux宝塔 Docker JumpServer JumpServer安装 堡垒机安装 Linux安装JumpServer esxi esxi6 root密码不对 无法登录 web无法登录 生命周期 序列 核心机制 SSL 堡垒机 跳板机 HTTPS HexHub Windows Windows server net3.5 .NET 安装出错 宝塔面板打不开 宝塔面板无法访问 HTTPS加密 查看硬件 Linux查看硬件 Linux查看CPU Linux查看内存 InnoDB 数据库锁 Oracle 处理机制 连接控制 机制 无法访问宝塔面板 ES 协同 Windows宝塔 Mysql重置密码 监控 Serverless 无服务器 语言 开源 PostgreSQL 存储引擎 技术 group by 索引 Spring Redis 异步化 分页查询 服务器 管理口 缓存方案 缓存架构 缓存穿透 高可用 SQL 动态查询 响应模型 自定义序列化 数据 主库 SVM Embedding 日志文件 MIXED 3 GreatSQL 连接数 服务器性能 云原生 SQLark PG DBA Netstat Linux 服务器 端口 scp Linux的scp怎么用 scp上传 scp下载 scp命令 AI 助手 ​Redis 机器学习 推荐模型 向量数据库 大模型 R edis 线程 工具 共享锁 Undo Log 查询 Linux 安全 openHalo OB 单机版 存储 SQLite-Web SQLite 数据库管理工具 Rsync Recursive 电商 系统 Postgres OTel Iceberg 架构 R2DBC • 索引 • 数据库 RocketMQ 长轮询 配置 聚簇 非聚簇 优化 万能公式 修改DNS Centos7如何修改DNS 数据分类 加密 流量 同城 双活 sftp 服务器 参数 redo log 重做日志 磁盘架构 信息化 智能运维 MySQL 9.3 防火墙 黑客 Ftp Hash 字段 RDB AOF 人工智能 推荐系统 场景 数据备份 高效统计 今天这篇文章就跟大家 mini-redis INCR指令 MVCC 缓存 窗口 函数 业务 网络架构 网络配置 INSERT COMPACT Redisson 锁芯 向量库 Milvus 线上 库存 预扣 Doris SeaTunnel Python 事务 Java 开发 Web PostGIS B+Tree ID 字段 崖山 新版本 IT运维 核心架构 订阅机制 prometheus Alert 引擎 性能 不宕机 数据脱敏 加密算法 传统数据库 向量化 MongoDB 数据结构 数据类型 分布式 集中式 虚拟服务器 虚拟机 内存 ZODB 容器 容器化 DBMS 管理系统 OAuth2 Token filelock JOIN 读写 Canal 网络故障 模型 QPS 高并发 Redis 8.0 微软 SQL Server AI功能 自动重启 Pottery 聚簇索引 非聚簇索引 锁机制 发件箱模式 部署 SpringAI Entity Testcloud 云端自动化 分库 分表 事务隔离 分页方案 排版 工具链 排行榜 排序 SSH 速度 服务器中毒 Web 接口 启动故障 1 数据页 悲观锁 乐观锁 StarRocks 数据仓库 Caffeine CP sqlmock 池化技术 连接池 MCP 开放协议 频繁 Codis LRU 原子性 数据集成工具 单点故障 Go 数据库迁移 大表 业务场景 Redka 分页 意向锁 记录锁 AIOPS 网络 分布式架构 分布式锁​ 优化器 Order 仪表盘 dbt 数据转换工具 EasyExcel MySQL8 IT 日志 字典 InfluxDB 对象 单线程 双引擎 RAG HelixDB 行业 趋势 事务同步 Ansible Crash 代码 国产数据库 LLM UUIDv7 主键 线程安全 订单 List 类型 Pump UUID ID 主从复制 代理 Valkey Valkey8.0 Next-Key 编程 关系数据库 播客 解锁 调优 ReadView 产业链 兼容性 语句 恢复数据 失效 MGR 分布式集群 数据字典 算法 查询规划 国产 用户 矢量存储 数据库类型 AI代理 千万级 快照读 当前读 视图 RR 互联网 GitHub Git 慢SQL优化 Weaviate count(*) count(主键) 行数 神经系统 表空间 分布式锁 Zookeeper 拦截器 动态代理 并发控制 恢复机制 CAS 多线程 技巧 闪回