基于Milvus向量数据库的增删改查

一、Milvus向量数据库简介

      Milvus是一个开源的、可扩展的、高性能的向量数据库,采用分布式架构,支持海量向量数据的存储、检索和管理。它主要应用于计算机视觉、自然语言处理、推荐系统等人工智能领域,可以实现相似度检索、聚类分析、降维等功能。Milvus具有以下特点:

1.高性能:

      采用分布式架构和高效的索引算法,实现高速的向量检索和计算。

2.可扩展:

      支持动态扩容和负载均衡,满足不断增长的数据存储和处理需求。

3.易用性:

      提供Python、Java、C++等多种语言的SDK,方便用户快速接入和开发应用。

4.开源:

      基于Apache 2.0协议,允许用户自由使用、修改和分发。

二、Milvus向量数据库的增删改查

     以下将详细介绍基于Milvus的向量数据库的增加、删除、修改和查询等操作。

1.增加操作

(1)创建集合(Collection)

       在向量数据库中,首先需要创建一个集合(Collection)来存储向量数据。创建集合时,需要指定集合名称、向量维度、向量类型等参数。以下是一个创建集合的示例:

from milvus import Milvus, DataType     # 创建Milvus客户端实例  client = Milvus(host='localhost', port='19530')     # 定义集合名称、向量维度和数据类型  collection_name = 'example_collection'  vector_dim = 128  data_type = DataType.FLOAT_VECTOR     # 创建集合  status, _ = client.create_collection(collection_name, vector_dim, data_type)

(2)添加向量数据

      创建集合后,可以向其中添加向量数据。添加向量数据时,需要指定集合名称和向量数据列表。以下是一个添加向量数据的示例:

import numpy as np     # 生成向量数据  vectors = np.random.random((1000, vector_dim)).tolist()     # 添加向量数据到集合  status, ids = client.insert(collection_name, vectors)    

2.删除操作

(1)删除向量数据

      可以根据向量ID删除指定的向量数据。以下是一个删除向量数据的示例:

# 删除指定ID的向量数据  status = client.delete_entity_by_id(collection_name, [ids[0]])

(2)删除集合

      可以根据集合名称删除整个集合及其包含的所有向量数据。以下是一个删除集合的示例:​​​​​​​

# 删除集合  status = client.drop_collection(collection_name)

3.修改操作

      Milvus目前不支持直接修改向量数据。如果需要修改某个向量数据,可以先删除原向量数据,然后添加新的向量数据。以下是一个修改向量数据的示例:

# 删除旧的向量数据  status = client.delete_entity_by_id(collection_name, [ids[0]])     # 生成新的向量数据  new_vector = np.random.random((1, vector_dim)).tolist()     # 添加新的向量数据到集合  status, new_id = client.insert(collection_name, new_vector)     # 更新向量ID列表  ids[0] = new_id[0]

4.查询操作

(1)查询集合信息

      可以查询指定集合的元数据信息,如集合名称、向量维度、向量类型等。以下是一个查询集合信息的示例:# 查询集合信息

status, collection_info = client.describe_collection(collection_name)

(2)查询向量数量

       可以查询指定集合中的向量数量。以下是一个查询向量数量的示例:​​​​​​​

# 查询向量数量  status, vector_count = client.count_entities(collection_name)

(3)查询向量数据

       可以根据向量ID查询指定的向量数据。以下是一个查询向量数据的示例:​​​​​​​

# 查询指定ID的向量数据  status, vectors = client.get_entity_by_id(collection_name, [ids[0]])

(4)相似度检索

      可以根据给定的查询向量,检索与其最相似的向量数据。以下是一个相似度检索的示例:

# 生成查询向量  query_vector = np.random.random((1, vector_dim)).tolist()     # 设置检索参数  top_k = 10  params = {'nprobe': 10}     # 执行相似度检索  status, results = client.search(collection_name, query_vector, top_k, params)

三、总结

        本文详细介绍了基于Milvus的向量数据库的增删改查应用。随着人工智能技术的发展,向量数据库在计算机视觉、自然语言处理、推荐系统等领域的应用将愈发广泛。希望本文能帮助你了解和掌握Milvus向量数据库的基本操作,并在实际项目中发挥其价值和潜力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值