pymilvus创建多向量

news/2024/9/23 4:38:34/

pymilvus创建多向量

从 Milvus 2.4 开始,引入了多向量支持和混合搜索框架,单个collection可以支持10个向量字段。不同的向量字段可以表示不同的方面、不同的embedding模型甚至表征同一实体的不同数据模态。该功能在综合搜索场景中特别有用,例如根据图片、语音、指纹等各种属性来识别向量库中最相似的人。

多向量搜索支持在多个向量字段上执行搜索请求,并使用重排名策略(例如RRF和加权评分)组合结果。

创建多向量字段

集合hello_milvus有2个向量字段embeddings1、embeddings2

import uuidimport numpy as np
from pymilvus import (connections,FieldSchema, CollectionSchema, DataType,Collection,
)collection_name = "hello_milvus"
host = "192.168.230.71"
port = 19530
username = ""
password = ""
num_entities, dim = 1000, 32def generate_uuids(number_of_uuids):uuids = [str(uuid.uuid4()) for _ in range(number_of_uuids)]return uuidsprint("start connecting to Milvus")
connections.connect("default", host=host, port=port,user=username,password=password)fields = [FieldSchema(name="pk", dtype=DataType.INT64, is_primary=True, auto_id=False),FieldSchema(name="random", dtype=DataType.DOUBLE),FieldSchema(name="comment", dtype=DataType.VARCHAR, max_length=200),FieldSchema(name="embeddings1", dtype=DataType.FLOAT_VECTOR, dim=dim),FieldSchema(name="embeddings2", dtype=DataType.FLOAT_VECTOR, dim=dim)
]schema = CollectionSchema(fields, "hello_milvus is the simplest demo to introduce the APIs")print("Create collection `hello_world`")
coll = Collection(collection_name, schema, consistency_level="Bounded",shards_num=1)print("Start inserting entities")
rng = np.random.default_rng(seed=19530)
entities = [[i for i in range(num_entities)],rng.random(num_entities).tolist(),generate_uuids(num_entities),rng.random((num_entities, dim)),rng.random((num_entities, dim)),
]
insert_result = coll.insert(entities)# Create index for each vector field
index_params = {"metric_type": "L2","index_type": "IVF_FLAT","params": {"nlist": 128},
}coll.create_index(field_name="embeddings1", index_params=index_params,index_name="idx_em1")
coll.create_index(field_name="embeddings2", index_params=index_params,index_name="idx_em2")print("Start flush")
coll.flush()print("done")

在这里插入图片描述


http://www.ppmy.cn/news/1436145.html

相关文章

深入理解Spring Boot钩子函数

在软件开发中,Spring Boot已经成为了构建Java应用程序的首选框架之一。它简化了应用程序的开发过程,并提供了丰富的功能和扩展性。 Spring Boot的钩子函数(Hook Functions)是其核心特性之一,能够在应用程序的生命周期…

Clion连接MySQL数据库:实现C/C++语言与MySQL交互

确保你的电脑里已经有了MySQL。 1、找到MySQL的目录 2、进入lib目录 3、复制libmysql.dll和libmysql.lib文件 4、将这俩文件粘贴到你的clion项目的cmake-build-debug目录下 如果不是在这个目录下,运行时会出以下错误报错: 进程已结束,退…

Linux内核驱动开发-001字符设备开发-001Led驱动

上节完成了内核驱动框架的搭建,下面将利用Linux内核驱动第一个字符设备文件,即Led驱动。1驱动程序编写 /*************************************************************************> File Name: led.c> Author: yas> Mail: rage_yashotmail…

Linux创建YUM仓库

在rhel-8.5中的/mnt/目录下是有AppStream和BaseOS这两个软件包的,里面有可安装的一些软件。 /mnt/BaseOS/Packages/ 普通安装 1.使用rpm命令安装(rpm -i 程序名称) 查看,已经有了这个程序(rpm -qa | grep 程序名&…

代码随想录(番外)图论1

代码随想录(番外)图论1 1. 深度优先搜索理论基础 2. 所有可能的路径 3. 广度优先搜索理论基础.md https://programmercarl.com/%E5%9B%BE%E8%AE%BA%E6%B7%B1%E6%90%9C%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 1. 深度优先搜索理论基础 总结 同理回溯…

基于大数据的手机销售数据分析可视化系统,爬取京东和淘宝的的手机商品数据进行分析,Flask,Python,数据可视化

介绍 该系统主要是通过爬取京东和淘宝的的手机商品数据进行分析。爬虫python脚本通过打开浏览器授权登录后按照搜索“手机”关键字后出现的商品列表进行爬取,获取标题名,解析付款人数,品牌,评论人数,发货地&#xff0…

第二章:初步了解Hugging Face与如何使用Hugging Face

Hugging Face 目标 初步了解Hugging Face掌握 Hugging Face有哪些功能如何使用Hugging FaceHugging Face是什么 ? Hugging Face是一个开源机器学习平台,专注于自然语言处理(NLP)领域。该平台由Thomas Wolf及其团队于2016年创立,总部位于纽约。Hugging Face致力于通过提供…

HarmonyOS开发案例:【闹钟】

介绍 使用后台代理提醒,实现一个简易闹钟。要求完成以下功能: 展示指针表盘或数字时间。添加、修改和删除闹钟。展示闹钟列表,并可打开和关闭单个闹钟。闹钟到设定的时间后弹出提醒。将闹钟的定时数据保存到轻量级数据库。 相关概念 [Canva…