学习路程四 向量数据库Milvus安装与连接

前序

在之前,已经简单完成了文档的加载,分割,向量化这些步骤,最后得到了结果。但是这些数据都是一次性的。假设一个律师所,有几千上万份卷宗,不可能每次使用都重新向量化数据吧。
所以我们需要有一个地方存储起来,比如关系型数据库MySQL,非关系性数据库MangoDB这样,对应类型数据存放起来。
而向量化的数据,需要使用到向量数据库

一、向量数据库简介

向量数据库(Vector Database)也叫矢量数据库,是专为存储、处理、分析「向量数据」而生的,能够基于目标向量快速进行相似度搜索,并返回最相近的数据。总而言之,就是用来存储和处理向量数据的数据库。

随着大型AI语言模型的崛起,向量数据库成为了解决模型“幻觉”问题的关键。它号称是LLM记忆的海马体,是大模型的记忆和存储核心,通过注入实时&私域数据的形式,可以使得LLM能够在更多通用场景中落地应用,缓解模型”幻觉“的问题。

常见的向量数据库:MilvusChromaWeaviateFaiss、Elasticsearch、PGVector、opensearch、腾讯VectorDB,ClickHouse

在这里插入图片描述

二、Milvus 向量数据库

基本介绍

Milvus(米尔乌斯)是一个高性能、高度可扩展的开源的向量数据库,诞生于2019年,由Zilliz开发并维护,后成为LF AI & Data Foundation的托管项目之一,支持针对 TB 级向量的增删改操作和近实时查询,具有高度灵活、稳定可靠以及高速查询等特点。Milvus 集成了 Faiss、NMSLIB、Annoy 等广泛应用的向量索引库,Milvus 支持数据分区分片、数据持久化、增量数据摄取、标量向量混合查询、time travel 等功能,同时大幅优化了向量检索的性能,可满足任何向量检索场景的应用需求,提供了一整套简单直观的 API,让你可以针对不同场景选择不同的索引类型。还可以对标量数据进行过滤,进一步提高了召回率,增强了搜索的灵活性。

Milvus可在从笔记本电脑到大规模分布式系统的各种环境中高效运行。

官网:https://milvus.io/

文档:https://milvus.io/docs/zh/overview.md

仓库:https://github.com/milvus-io/milvus

安装Milvus数据库

1. 安装docker

目前Milvus运行的环境都是在docker上,所以在安装Milvus之前,我们需要先确认docker和docker-compose已经安装到本地机子上了。

注意:

默认情况下,如果安装的docker是docker-desktop默认会顺便已经安装了docker-compose,则不需要再继续安装docker-compose,否则会报错问题,这时候需要卸载掉python安装的。

如果本地机子没有安装docker-compose,提前按以下命令安装一下:

# 这个命令必须保证自己的机子已经安装了docker和python3.8+
pip install docker-compose

跟我一样使用Mac的也需要注意。如果安装了docker desktop,但是在命令行运行docker-compose --version 失败的。可能是以下问题
在这里插入图片描述

sudo rm /usr/local/bin/docker-compose
sudo ln -s /Applications/Docker.app/Contents/Resources/cli-plugins/docker-compose /usr/local/bin/docker-compose

我通过上面这个方法后,可以成功解决问题。

2.下载Milvus镜像服务配置文件

下载链接:https://github.com/milvus-io/milvus/releases/download/v2.4.12/milvus-standalone-docker-compose.yml

下载完成以后,执行如下命令即可启动Milvus数据库:

docker-compose -f milvus-standalone-docker-compose.yml up -d

也是极其耗时的操作。
在这里插入图片描述
很容易就拉取失败了,还是配置一下docker,使用国内镜像源吧
在这里插入图片描述
docker设置新增国内镜像源

...
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://hub.rat.dev",
    "https://docker.1panel.live"
  ]

在这里插入图片描述
再次运行就可以慢慢等它拉取镜像了zzz

在这里插入图片描述
这样就是启动成功了。

关闭数据库服务镜像,命令如下:

docker-compose -f milvus-standalone-docker-compose.yml down

三、连接Milvus数据库

首先安装三方库

pip install pymilvus[model]
# 如果上面这个识别不了的,就用下面这种
pip install "pymilvus[model]"

# 如果觉得慢的一批,可以换一下国内镜像源哈
pip install  "pymilvus[model]" -i https://mirrors.aliyun.com/pypi/simple/

启动docker时,可以看到,默认端口是19530

方式1:

from pymilvus import connections, db

# 连接milvus数据库服务器
connections.connect(
    host="127.0.0.1",  # 连接服务端地址,
    port=19530,        # 连接端口,milvus默认监听19530
    alias='default',   # 连接的别名,如果不设置,默认为default,
    db_name='default'  # 连接的数据库,默认是default
)

# 判断是否连接成功
res = db.connections.has_connection('default')
print(res)

# 断开数据库连接
# 此处必须填写断开的连接别名
connections.disconnect('default')

在这里插入图片描述
方式2:

from pymilvus import MilvusClient

client = MilvusClient("http://localhost:19530")
# client = MilvusClient()  # 上面的内容可以简写
res = client.list_users()

print(res)
# 断开连接
client.close()

"""
输出结果 :['root'] 
"""

可以看到运行成功,能输出结果。针不戳。就可以继续后续的更多数据库相关的学习了。

### 不同操作系统上的 Milvus 向量数据库安装方法 #### MacOS 上的 Milvus 安装 在 MacOS 系统中,可以通过 Docker 来完成 Milvus安装。首先需要确保本地已经正确安装并配置好 Docker 环境[^1]。接着通过运行以下命令拉取官方镜像并启动容器: ```bash docker pull milvusdb/milvus:latest docker run -d --name milvus_cpu -p 19530:19530 -p 8080:8080 \ -v /path/to/data:/var/lib/milvus \ milvusdb/milvus:latest ``` 上述命令会下载最新版本的 Milvus 镜像,并将其绑定到主机端口 `19530` 和 `8080`,分别用于服务通信和管理界面访问。 --- #### Windows 下的 Milvus 安装 对于 Windows 用户而言,同样推荐使用 Docker 进行 Milvus 的部署。前提条件同样是确认已成功安装 Docker Desktop 并启用 WSL2 支持功能[^2]。执行如下指令即可快速搭建环境: ```bash docker pull milvusdb/milvus:latest docker run -d --name milvus_cpu -p 19530:19530 -p 8080:8080 \ -v C:\path\to\data:/var/lib/milvus \ milvusdb/milvus:latest ``` 这里需要注意的是,在指定数据存储路径时应采用兼容于 Linux 文件系统的写法(如 `/c/path/to/data`),或者直接利用绝对路径映射至宿主机目录。 --- #### 使用 MySQL 类似方式操作 Milvus 数据库 无论是哪种平台,一旦完成了基础架构构建之后,就可以借助 Python SDK 或其他支持的语言驱动程序连接实例,进而实现诸如创建集合、插入记录等功能。例如下面展示了一段简单的 Python 脚本用来初始化客户端对象并远程服务器交互: ```python from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection connections.connect("default", host="localhost", port="19530") fields = [ FieldSchema(name="id", dtype=DataType.INT64, is_primary=True), FieldSchema(name="embedding", dtype=DataType.FLOAT_VECTOR, dim=128) ] schema = CollectionSchema(fields, "Example collection") collection = Collection("example_collection", schema) print(f"Collection created successfully! {collection}") ``` 此脚本定义了一个新的表结构,其中包含整数类型的主键字段以及维度大小固定的浮点型数组列作为嵌入特征表示形式。 --- #### 向量数据库的应用价值 向量数据库特别适用于人工智能领域中的相似度检索任务,比如图像识别、自然语言处理等领域内的近邻查询需求。相比于传统关系型数据库仅能基于精确匹配返回结果集的方式,Milvus 提供了高效的 ANN (Approximate Nearest Neighbor) 查询能力,从而极大地提升了大规模高维空间数据分析效率.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ILUUSION_S

我在成都没饭吃😭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值