# VDB | Milvus #milvus 基本操作

第三方库

from pymilvus import connections, Collection, CollectionSchema, FieldSchema, DataType

需要的基本参数

class MilvusManager:def __init__(self, host, port, collection_name):self.host = hostself.port = portself.collection_name = collection_nameself.connection = None

连接

def connect(self):connections.connect(host=self.host, port=int(self.port))

创建collection

def create_collection(self):id_field = FieldSchema(name="id", dtype=DataType.INT64, is_primary=True, auto_id=True)question_field = FieldSchema(name="question", dtype=DataType.FLOAT_VECTOR, dim=1536, is_primary=False)text_field = FieldSchema(name="text", dtype=DataType.VARCHAR, max_length=30000, is_primary=False)schema = CollectionSchema(fields=[id_field, question_field, text_field], description="question_answer")self.collection = Collection(name=self.collection_name, schema=schema, using="default", consistency="STRONG")return self.collection

创建index

def build_index(self, collection):index_params = {"metric_type": "IP","index_type": "IVF_FLAT","params": {"nlist": 1024}}collection.create_index(field_name="question", index_params=index_params)

准备索引参数

index_params = {"metric_type":"L2","index_type":"IVF_FLAT","params":{"nlist":1024}
}

向量索引是元数据的组织单位,用于加速向量相似性搜索。如果没有基于向量构建的索引,Milvus 将默认执行暴力搜索。
当前版本的 Milvus 仅支持向量场索引。未来的版本将支持标量字段上的索引。
默认情况下,Milvus 不会对少于 1,024 行的 segment 进行索引。要更改此参数,请在 中 milvus.yaml 进行配置 rootCoord.minSegmentSizeToEnableIndex

ParameterDescriptionOptions
metric_type
用于衡量向量相似性的指标类型。
对于浮点向量:
L2 (欧几里得距离)
IP (内积)
对于二进制向量:
JACCARD (Jaccard distance)
TANIMOTO (Tanimoto distance)
HAMMING (Hamming distance)
SUPERSTRUCTURE (Superstructure)
index_type用于加速向量搜索的索引类型对于浮点向量:
FLAT (FLAT)
IVF_FLAT (IVF_FLAT)
IVF_SQ8 (IVF_SQ8)
IVF_PQ (IVF_PQ)
HNSW (HNSW)
ANNOY (ANNOY)
RHNSW_FLAT (RHNSW_FLAT)
RHNSW_PQ (RHNSW_PQ)
RHNSW_SQ (RHNSW_SQ)
对于二进制向量:
BIN_FLAT (BIN_FLAT)
BIN_IVF_FLAT (BIN_IVF_FLAT)
params特定于索引的构建参数。有关详细信息,请参阅向量索引。

构建索引

通过指定向量字段名称和索引参数来构建索引。

from pymilvus import Collection
collection = Collection("book")      # Get an existing collection.
collection.create_index(field_name="book_intro", index_params=index_params
)
Status(code=0, message='')
ParameterDescription
field_name要在其上建立索引的向量字段的名称。
index_params要生成的索引的参数。

load

def load_collection(self, collection):collection.load()

Milvus 中的所有搜索和查询操作都在内存中执行。在执行向量相似性搜索之前,将集合加载到内存中。

清空

def drop_collection(self, collection):collection.drop()

关闭连接

def close(self):if self.connection:self.connection.close()

插入数据

通过指定 partition_name ,您可以选择决定将数据插入到哪个分区。

from pymilvus import Collection
collection = Collection("book")      # Get an existing collection.
mr = collection.insert(data)
ParameterDescription
data要插入到 Milvus 中的数据。
partition_name (可选)要在其中插入数据的分区的名称。

注意:向量维度最大是32,768。插入向量的维度要和index的向量维度一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/279340.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+GTX 8b/10b编解码SFP光口传输,提供2套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博主所有FPGA工程项目-->汇总目录本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI…

GO语言:函数、方法、面向对象

本文分享函数的定义、特性、defer陷阱、异常处理、单元测试、基准测试等以及方法和接口相关内容 1 函数 函数的定义 func 函数名(参数列表) (返回值列表) { // 函数体(实现函数功能的代码) } 匿名函数的定义就是没有函数名,可以当做一个函…

docker入门(四)—— docker常用命令详解

docker 常用命令 基本命令 # 查看 docker 版本 docker version # 查看一些 docker 的详细信息 docker info 帮助命令(–help),linux必须要会看帮助文档 docker --help[rootiZbp15293q8kgzhur7n6kvZ /]# docker --helpUsage: docker [OPTI…

springboot3快速入门案例2024最新版

前边 springboot3 系统要求 技术&工具版本(or later)maven3.6.3 or later 3.6.3 或更高版本Tomcat10.0Servlet9.0JDK17 SpringBoot的主要目标是: 为所有 Spring 开发提供更快速、可广泛访问的入门体验。开箱即用,设置合理的…

WPF —— 控件模版和数据模版

1:控件模版简介: 自定义控件模版:自己添加的样式、标签,控件模版也是属于资源的一种, 每一个控件模版都有一唯一的 key,在控件上通过template属性进行绑定 什么场景下使用自定义控件模版,当项目里面多个地方…

综合知识篇12-软件开发方法考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html案例分析篇00-【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例…

unraid docker.img扩容

unraid 弹Docker image disk utilization of 99%,容器下载/更新失败 我的版本是6.11.5,docker.img满了导致容器不能更新,遇到同样问题的可以先用docker命令清除一下仓库(当然不一定能清理出来,我已经清理过只清理出来1G多点&…

Vue组件封装方案对比——v-if方式与内置component方式

近期在准备搭建一个通用组件库,而公司现有的各个系统也已有自己的组件库只是没抽离出来,但是目前有两套不同的组件封装方案,所以对于方案的选择比较困惑,于是对两种方式进行了对比,结合网上找到的一些开源组件库进行分…

Android 源码中 内置系统App(整个APP源码方式集成)

1. 如何新建一个系统 App 项目 使用 Android Studio 新建一个空项目 FirstSystemApp,包名设置为 com.yuandaima.firstsystemapp,语言选择 Java。后面为叙述方便称该项目为 as 项目。 接着在 jelly/rice14 目录下创建如下的目录和文件: 接着…

Angular进阶之八: Angular Animation在项目中的实践经验

使用 Angular 进行项目开发的程序员应该都很熟悉 Angular Animation。这是一个 Angular 原生的动画库,它可以替代或者辅助完成原本需要使用 css 的动画功能。 Angular 在国内的运用是很有限的,可借鉴的文档并不很丰富。尤其对于 Angular 动画模块的应用…

Tensorflow2.0笔记 - Himmelblau函数优化案例

本笔记记录Himmelblau函数优化案例代码,包括函数的图形绘制和梯度下降求解局部最优解的过程。 import tensorflow as tf import numpy as np from mpl_toolkits.mplot3d import Axes3D from matplotlib import pyplot as plt tf.__version__#Himmelblau函数 #https…

Java 学习和实践笔记(41):API 文档以及String类的常用方法

JDK 8用到的全部类的文档在这里下载: Java Development Kit 8 文档 | Oracle 中国

Http 超文本传输协议基本概念学习摘录

目录 HTTP协议 超文本传输协议 HyperText超文本 HTML超文本标记语言 HTTP协议原理 请求发送 服务器处理 响应发送 连接关闭或保持 HTTP协议版本 HTTP/0.9 HTTP/1.0 HTTP/1.1 HTTP/2 HTTP/3 HTTP请求方法 GET POST PUT DELETE HEAD OPTIONS HTTP请求头字…

Flutter开发多端天气预报App:一场奇妙的编程之旅

在这个信息爆炸的时代,我们渴望获取最新的天气信息,以便更好地规划我们的生活。而作为程序员的我们,又怎能错过用技术手段打造一款个性化、便捷的天气预报App呢?在本篇博客中,我将带你踏上一场奇妙的编程之旅&#xff…

MacOS Xcode 使用LLDB调试Qt的 QString

环境: MacOS: 14.3Xcode: Version 15.0Qt:Qt 6.5.3 前言 Xcode 中显示 预览 QString 特别不方便, 而Qt官方的 lldb 脚本debugger/lldbbridge.py一直加载失败,其他第三方的脚本都 不兼容当前的 环境。所以自己研究写…

31-Java前端控制器模式(Front Controller Pattern)

Java前端控制器模式 实现范例 前端控制器模式(Front Controller Pattern)是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理该处理程序可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给…

内存泄漏检测、单向链表的操作

我要成为嵌入式高手之3月19日数据结构第二天!! ———————————————————————————— valgrind内存测试工具 让虚拟机上网、在虚拟机上下载软件,参考笔记: 我要成为嵌入式高手之2月3日Linux高编第一天&am…

线程和进程的区别和联系

一、什么是进程 进程(Process), 是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行 【资源分配和调度】 的一个独立单位。 进程是【程序】的【一次执行】(是计算机中程序的执行过程,而不是计算机中的程序)进程是系统进行【资源分配和…

第二证券策略:股指预计维持震荡格局 关注汽车、半导体等板块

第二证券指出,方针组合拳齐下,商场蓄势待起,短期指数或向上挑战3100点,低位业绩板块、叠加AI或是3月商场主要出资主线,尽管商场情绪高涨,但不主张情绪化追涨,究竟上方还有压制,放量打…

[BSidesCF 2019]Pick Tac Toe

[BSidesCF 2019]Pick Tac Toe 首先进行常规的信息收集,尝试几次下三子棋后查看源码发现 此时只需要更改id为r的,将他改为X,我们就胜利了抓包发现,数据通过post提交参数为move,顺便再下一子,抓包更改为move…