当前位置: 首页 > news >正文

Milvus:通过Docker安装Milvus向量数据库(一)

一、探索向量数据库

在当今 AI 技术迅猛发展的时代,向量数据库作为 AI 领域的关键基础设施,正逐渐崭露头角,成为众多开发者和企业关注的焦点。从智能语音助手到图像识别系统,从个性化推荐引擎到语义搜索引擎,向量数据库的身影无处不在,为各种 AI 应用提供了强大的数据支持和高效的检索能力。

向量数据库,简单来说,是一种专门用于存储和管理向量数据的数据库。与传统的关系型数据库不同,向量数据库更加注重数据的向量表示和相似性搜索,能够快速准确地找到与目标向量最相似的向量集合。这种特性使得向量数据库在处理高维数据、非结构化数据时具有天然的优势,成为 AI 时代数据处理和分析的理想选择。

在众多向量数据库中,Milvus 以其卓越的性能、丰富的功能和强大的社区支持脱颖而出,成为了开发者们的首选之一。接下来,一起深入了解 Milvus 向量数据库,探索它的魅力所在。

Milvus官网:

https://milvus.io/zh

二、Milvus 特点

(一)是什么

Milvus 是一款云原生向量数据库,专为处理海量向量数据的实时召回而设计 。它基于 FAISS、Annoy、HNSW 等向量搜索库构建,核心是解决稠密向量相似度检索的问题。在向量检索库的基础上,Milvus 支持数据分区分片、数据持久化、增量数据摄取、标量向量混合查询、time travel 等功能,同时大幅优化了向量检索的性能,可满足任何向量检索场景的应用需求。

(二)核心特点

  1. 高性能:Milvus 采用了独特的数据结构和算法,实现了高效的向量运算和查询。它能够在万亿级向量数据集上进行高效的向量相似度搜索,平均延迟可以控制在毫秒级,能够满足实时性要求较高的应用场景。
  2. 高可用、高可靠:支持在云上扩展,具备强大的容灾能力,能够保证服务高可用,确保数据的安全性和稳定性,为企业级应用提供可靠保障。
  3. 易拓展:支持分布式部署,采用共享存储架构,存储计算完全分离,计算节点支持横向扩展。能够轻松应对数据量的快速增长,通过增加节点,可以线性地提升系统的处理能力和存储容量 。
  4. 支持混合查询:不仅支持向量相似度检索,还支持在检索过程中进行标量字段过滤,实现混合查询。这使得用户可以根据多种条件对向量数据进行筛选和查询,满足复杂的业务需求。
  5. 开发者友好:支持多语言、多工具的 Milvus 生态系统,提供 Python、Golang、Java 等丰富的客户端,用户通过 API 或 SDK 接口即可快速操作数据库。同时,它还拥有活跃的开源社区,用户在使用过程中遇到问题,可以通过 GitHub 的 Issues 功能提出,获得及时的帮助和反馈。

(三)应用场景

  1. 图像搜索:在电商平台中,用户可以通过上传图片来搜索相似商品。通过将商品图片转换为向量并存储在 Milvus 中,当用户上传图片时,通过向量检索可以快速找到相似商品。此外,在安防监控领域,也可以利用 Milvus 对监控视频中的图像进行搜索,快速定位特定目标。
  2. 自然语言处理:在语义搜索、问答系统、文本分类等任务中发挥重要作用。通过将文本转换为词向量或句子向量,Milvus 可以实现高效的语义相似度计算。例如,在智能客服系统中,用户的问题可以通过语义检索快速匹配到相关回答,提高客服效率和用户满意度。
  3. 推荐系统:根据用户的行为数据,如浏览记录、购买记录等,将用户和物品的特征表示为向量。Milvus 可以帮助快速检索出与用户兴趣相似的物品,从而实现精准推荐,提升用户体验和平台的转化率。
  4. 医疗影像分析:医生可以将医学图像(如 X 光、CT、MRI 等)的特征向量化后存储在 Milvus 中。通过向量检索,能够快速找到相似病例,辅助医生进行疾病诊断和治疗方案的制定。
  5. 金融风控:金融机构可以利用 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 服务器

连接 Milvus 是所有操作的前提。MilvusClient提供了简洁的连接方式,支持本地单机版、分布式集群版,以及带认证的连接场景。
1. 基础连接(本地单机版)
若 Milvus 部署在本地(默认端口19530,无认证),连接代码如下:
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"-

http://www.dtcms.com/a/564998.html

相关文章:

  • 第三方软件测试机构:【“Bug预防”比“Bug发现”更有价值:如何建立缺陷根因分析与流转机制?】
  • Milvus:Schema详解(四)
  • maven的jakarta项目直接运用jetty插件运行
  • 建设外贸网站哪家好网页制作流程视频
  • Java-166 Neo4j 安装与最小闭环 | 10 分钟跑通 + 远程访问 Docker neo4j.conf
  • 如何建立小企业网站wordpress图片上传地址修改
  • 【开题答辩过程】以《基于SpringBoot的中国传统文化推广系统的设计与实现》为例,不会开题答辩的可以进来看看
  • QML笔记
  • Android 在屏幕的右下角添加客户Logo
  • linux服务-frp内网穿透工具
  • 宣城高端网站建设延吉网站开发
  • Springboot+BannerBanner(启动横幅)
  • 护照阅读器:公安安全检查的科技新助力
  • 网站支持ipv6做哪些改造余姚响应式网站建设
  • 建自己的网站多少钱网页设计与网站建设分析
  • Java 大视界 -- Java 大数据机器学习模型在自然语言处理中的对抗训练与鲁棒性提升
  • Go语言设计模式:中介者模式详解
  • 使用Spring Boot、Spring AI、MongoDB Atlas 向量搜索和 OpenAI 构建 RAG 应用
  • 数据结构——三十七、关键路径(王道408)
  • 嵌入式软件的几种程序架构
  • 网站开发适合女生吗网页设计程序代码
  • 某游戏大厂的常用面试问题解析:Netty 与 NIO
  • 网站建设去哪可接单做押韵句子的网站
  • Memos:一款不打扰的笔记工具,使用cpolar远程后体验再升级
  • Uni APP中关于Android原生插件UniComponent的使用
  • Hadess零基础学习,如何管理Docker制品
  • 石家庄购物网站排名网站检测器
  • 《嵌入式硬件(二十):基于IMX6ULL的LCD操作》
  • 日志系统设计 与 策略模式实现
  • 电子规划书商务网站建设城市分站cms