Milvus:通过Docker安装Milvus向量数据库(一)
一、探索向量数据库
在当今 AI 技术迅猛发展的时代,向量数据库作为 AI 领域的关键基础设施,正逐渐崭露头角,成为众多开发者和企业关注的焦点。从智能语音助手到图像识别系统,从个性化推荐引擎到语义搜索引擎,向量数据库的身影无处不在,为各种 AI 应用提供了强大的数据支持和高效的检索能力。
向量数据库,简单来说,是一种专门用于存储和管理向量数据的数据库。与传统的关系型数据库不同,向量数据库更加注重数据的向量表示和相似性搜索,能够快速准确地找到与目标向量最相似的向量集合。这种特性使得向量数据库在处理高维数据、非结构化数据时具有天然的优势,成为 AI 时代数据处理和分析的理想选择。
在众多向量数据库中,Milvus 以其卓越的性能、丰富的功能和强大的社区支持脱颖而出,成为了开发者们的首选之一。接下来,一起深入了解 Milvus 向量数据库,探索它的魅力所在。
Milvus官网:
 
 https://milvus.io/zh
二、Milvus 特点
(一)是什么
(二)核心特点
- 高性能:Milvus 采用了独特的数据结构和算法,实现了高效的向量运算和查询。它能够在万亿级向量数据集上进行高效的向量相似度搜索,平均延迟可以控制在毫秒级,能够满足实时性要求较高的应用场景。
 - 高可用、高可靠:支持在云上扩展,具备强大的容灾能力,能够保证服务高可用,确保数据的安全性和稳定性,为企业级应用提供可靠保障。
 - 易拓展:支持分布式部署,采用共享存储架构,存储计算完全分离,计算节点支持横向扩展。能够轻松应对数据量的快速增长,通过增加节点,可以线性地提升系统的处理能力和存储容量 。
 - 支持混合查询:不仅支持向量相似度检索,还支持在检索过程中进行标量字段过滤,实现混合查询。这使得用户可以根据多种条件对向量数据进行筛选和查询,满足复杂的业务需求。
 - 开发者友好:支持多语言、多工具的 Milvus 生态系统,提供 Python、Golang、Java 等丰富的客户端,用户通过 API 或 SDK 接口即可快速操作数据库。同时,它还拥有活跃的开源社区,用户在使用过程中遇到问题,可以通过 GitHub 的 Issues 功能提出,获得及时的帮助和反馈。
 
(三)应用场景
- 图像搜索:在电商平台中,用户可以通过上传图片来搜索相似商品。通过将商品图片转换为向量并存储在 Milvus 中,当用户上传图片时,通过向量检索可以快速找到相似商品。此外,在安防监控领域,也可以利用 Milvus 对监控视频中的图像进行搜索,快速定位特定目标。
 - 自然语言处理:在语义搜索、问答系统、文本分类等任务中发挥重要作用。通过将文本转换为词向量或句子向量,Milvus 可以实现高效的语义相似度计算。例如,在智能客服系统中,用户的问题可以通过语义检索快速匹配到相关回答,提高客服效率和用户满意度。
 - 推荐系统:根据用户的行为数据,如浏览记录、购买记录等,将用户和物品的特征表示为向量。Milvus 可以帮助快速检索出与用户兴趣相似的物品,从而实现精准推荐,提升用户体验和平台的转化率。
 - 医疗影像分析:医生可以将医学图像(如 X 光、CT、MRI 等)的特征向量化后存储在 Milvus 中。通过向量检索,能够快速找到相似病例,辅助医生进行疾病诊断和治疗方案的制定。
 - 金融风控:金融机构可以利用 Milvus 对用户的交易行为数据进行向量化处理,通过实时监测和分析向量数据,快速检测到异常交易,及时采取风险防控措施,保障金融交易的安全。
 
三、Milvus 安装
(一)安装前准备
在安装 Milvus 之前,需要确保系统满足一定的条件。首先,操作系统方面,Milvus 支持多种 Linux 发行版,如 Ubuntu、CentOS 等,建议使用较新版本以获取更好的兼容性和性能。
其次,硬件资源上,推荐使用具有足够 CPU、内存和 SSD 存储的机器。对于大规模数据集,高性能的硬件将显著提升搜索性能,例如,至少配备 2 核 CPU、8GB 内存,磁盘空间至少 10GB 且建议使用 SSD。
如果选择使用 Docker 安装 Milvus(这是一种推荐的安装方式,方便快捷且易于管理),需要提前安装好 Docker Engine。此外,若要使用 Docker Compose 来管理和编排 Docker 容器(这在部署 Milvus 时很常用) ,也需要确保系统已安装 Docker Compose。同时,要保证系统可以访问 Milvus 的 Docker Hub 仓库,以便顺利拉取镜像。
(二)下载docker-compose配置文件
地址:https://github.com/milvus-io/milvus/releases/

下载最新版本的docker-compose配置文件。
(三)docker安装并启动 Milvus
docker-compose -f milvus-standalone-docker-compose.yml up -d 


(四)安装 Milvus 可视化工具 Attu
Attu是Milvus的一个高效的开源管理工具。
下载地址:
 
 https://github.com/zilliztech/attu/releases

安装完成后启动Attu,其中Milvus地址填写127.0.0.1:19530,数据库输入default。


四、通过 Python 操作 Milvus
在 Milvus 向量数据库的实际应用中,Python 是最常用的开发语言之一。Milvus 官方提供的pymilvus库(在新版中推荐使用MilvusClient客户端)封装了丰富的 API,支持从连接服务器到数据管理、索引创建、搜索查询等全流程操作。本节将结合 Milvus 的核心概念(如 Collection、Schema、分区、别名等),提供完整的 Python 操作指南,包含详细文字说明与可直接运行的代码示例。
(一)环境准备:安装依赖库
在使用 Python 操作 Milvus 前,需先安装官方客户端库。Milvus 2.x 版本推荐使用pymilvus库,若需更简洁的接口体验,可使用新版MilvusClient(已集成到pymilvus中)。
1. 安装 pymilvus 库
使用pip命令即可完成安装,默认安装最新稳定版:
# 基础安装(默认最新版)
pip install pymilvus# 若网络较慢,使用国内镜像源(如清华大学)加速
pip install pymilvus -i https://pypi.tuna.tsinghua.edu.cn/simple# 若需指定版本(需与Milvus服text务器版本兼容,如Milvus 2.6.x对应pymilvus 2.6.x)
pip install pymilvus==2.6.4 
2. 版本兼容性说明
- Milvus 服务器与pymilvus库的主版本号必须一致(如 Milvus 2.6.4 需搭配pymilvus>=2.6.0),否则可能出现接口不兼容问题。
 - 若安装失败(如提示缺少 C++ 编译工具): 
- Windows 系统:安装Microsoft Visual C++ Build Tools。
 - Linux 系统:执行sudo apt-get install gcc g++(Ubuntu)或sudo yum install gcc gcc-c++(CentOS)安装编译工具。
 
 
(二)连接 Milvus 服务器
1. 基础连接(本地单机版)
from pymilvus import MilvusClient# 创建客户端实例,连接本地Milvus服务器
client = MilvusClient(uri="http://localhost:19530",  # Milvus服务地址(格式:http://IP:端口)db_name="default"  # 数据库名称(默认使用default库,可自定义)
)
# 验证连接是否成功(查看当前数据库下的所有Collection)
print("当前数据库下的Collection列表:", client.list_collections()) 2. 带认证的连接(分布式集群版)
若 Milvus 集群启用了用户名密码认证(如生产环境),需在连接时传入token参数(格式:用户名:密码):
client = MilvusClient(uri="http://milvus-cluster-ip:19530",  # 集群地址token="root:Milvus123"  # 示例:用户名为root,密码为Milvus123
) 3. 连接参数说明
|   参数  |   说明  |   默认值  | 
|   uri  |   Milvus 服务地址,单机版为http://localhost:19530,集群版为负载均衡地址  |   无(必填)  | 
|   token  |   认证令牌,格式为用户名:密码,仅当 Milvus 启用认证时需传入  |   None  | 
|   db_name  |   要连接的数据库名称,若数据库不存在,可先通过create_database()创建  |   "default"-  | 

