python读写milvus
创始人
2024-11-04 09:10:45

目录

安装milvus客户端

创建milvus数据表

数据表插入向量

查询数据表

查向量数量

封装成类


python3.6版本

安装milvus客户端
pip install pymilvus==1.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
创建milvus数据表
from milvus import Milvus, MetricType  milvus = Milvus(host='milvus机器ip', port='19530')  params = {'collection_name':'test01',           'dimension':512,           'index_file_size':1024,           'metric_type':MetricType.IP}  status = milvus.create_collection(params) print(status)
Status(code=0, message='Create collection successfully!')
数据表插入向量

模拟10条512维的特征向量

import random  vectors = [[random.random() for _ in range(512)] for _ in range(10)] print(len(vectors),len(vectors[0]))
10 512

模拟20条向量入库

from milvus import Milvus, MetricType  milvus = Milvus(host='milvus机器ip', port='19530')  params = {'collection_name':'test01',           'dimension':512,           'index_file_size':1024,           'metric_type':MetricType.IP}  status = milvus.create_collection(params) print(status)  vectors = [[1.0*i for _ in range(512)] for i in range(20)] print(vectors[0][0],vectors[-1][0])  status, ids = milvus.insert(collection_name='test01', records=vectors) print(status,ids)  milvus.flush(['test01']) milvus.close()
Status(code=0, message='Create collection successfully!') 0.0 9.0 Status(code=0, message='Add vectors successfully!') [168846, ..., 1688460]
查询数据表
from milvus import Milvus, MetricType from pprint import pprint  milvus = Milvus(host='milvus机器ip', port='19530')  status,info = milvus.get_collection_stats('test01') print(status,info)  print('-'*20) pprint(info)
Status(code=0, message='Success') {'partitions': [{'row_count': 20, 'segments': [{'data_size': 41120, 'index_name': 'IDMAP', 'name': '168846070', 'row_count': 20}], 'tag': '_default'}], 'row_count': 20} -------------------- {'partitions': [{'row_count': 20,                  'segments': [{'data_size': 41120,                                'index_name': 'IDMAP',                                'name': '1688460770',                                'row_count': 20}],                  'tag': '_default'}],  'row_count': 20} 
查向量数量
from milvus import Milvus, MetricType  milvus = Milvus(host='milvus机器ip', port='19530')  status,n = milvus.count_entities('test01') print(status,n)
Status(code=0, message='Success!') 20
封装成类
class MilvusVector:     def __init__(self):         self.milvus = Milvus(host='milvus机器ip', port='19530')         self.db_name = 'test01'         params = {'collection_name': self.db_name, 'dimension': 512, 'index_file_size': 1024, 'metric_type': MetricType.IP}         _, bool = self.milvus.has_collection(self.db_name)         if bool == True:             self.milvus.drop_collection(collection_name=self.db_name)             self.milvus.create_collection(params)             print('delete test01 ---> create test01')         else:             self.milvus.create_collection(params)             print('create test01')      def vectorNum(self):         status, n = self.milvus.count_entities(self.db_name)         return n      def close(self):         self.milvus.close()      def insert(self,vector):         status, ids = self.milvus.insert(collection_name=self.db_name,records=vector)         self.milvus.flush([self.db_name])         return ids[0]      def search(self,vector):         status, ips = self.milvus.search(collection_name=self.db_name, query_records=vector, top_k=1)         id, ip = ips.id_array[0][0], ips.distance_array[0][0]         return [id,ip]

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...