向量数据库:Milvus

特性

        Milvus由Go(63.4%),Python(17.0%),C++(16.6%),Shell(1.3%)等语言开发开发,支持python,go,java接口(C++,Rust,c#等语言还在开发中),支持单机、集群部署,支持CPU、GPU运算。Milvus 中的所有搜索和查询操作都在内存中执行。,当前支持的Dimensions of a vector的最大值为32,768。其他限制。

使用步骤:

         M i l v u s 和之前讨论的 f a i s s , u s e a r c h 的不同在于,使用前需要先安装服务端的 M i l v u s ,否则会有以下错误: \color{red} Milvus和之前讨论的faiss,usearch的不同在于,使用前需要先安装服务端的Milvus,否则会有以下错误: Milvus和之前讨论的faiss,usearch的不同在于,使用前需要先安装服务端的Milvus,否则会有以下错误:pymilvus.exceptions.MilvusException: <MilvusException: (code=2, message=Fail connecting to server on 127.0.0.1:19530. Timeout)>

安装Milvus:根据你的操作系统和需求,选择适合的安装方式,可以是Docker容器、二进制文件或源代码编译安装。

在这里插入图片描述

dokcer

  • curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  • sudo chmod +x ./docker-compose-linux-x86_64
  • sudo cp ./docker-compose-linux-x86_64 /usr/bin/docker-compose
  • docker-compose version
  • link: Docker的快速使用, docker 中使用gpu, Docker Compose: 集合管理Docker的工具安装

安装

  • wget https://github.com/milvus-io/milvus/releases/download/v2.3.4/milvus-standalone-docker-compose.yml -O docker-compose.yml
  • sudo docker compose up -d
$ sudo docker compose up -d
[+] Running 23/23
 ✔ standalone 7 layers [⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                                                                                                                                                                                               13.8s 
   ✔ d5fd17ec1767 Pull complete                                                                                                                                                                                                                                                                                                        2.4s 
   ✔ 7ab813dbf013 Pull complete                                                                                                                                                                                                                                                                                                        2.6s 
   ✔ 971f9356e3f1 Pull complete                                                                                                                                                                                                                                                                                                        4.1s 
   ✔ 278f4560205e Pull complete                                                                                                                                                                                                                                                                                                        4.2s 
   ✔ b83f734869d9 Pull complete                                                                                                                                                                                                                                                                                                       10.0s 
   ✔ 1f27396f6efc Pull complete                                                                                                                                                                                                                                                                                                       10.1s 
   ✔ fe556ec02776 Pull complete                                                                                                                                                                                                                                                                                                       10.1s 
 ✔ etcd 7 layers [⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                                                                                                                                                                                                     15.8s 
   ✔ dbba69284b27 Pull complete                                                                                                                                                                                                                                                                                                       10.6s 
   ✔ 270b322b3c62 Pull complete                                                                                                                                                                                                                                                                                                       10.7s 
   ✔ 7c21e2da1038 Pull complete                                                                                                                                                                                                                                                                                                       10.8s 
   ✔ cb4f77bfee6c Pull complete                                                                                                                                                                                                                                                                                                       10.8s 
   ✔ e5485096ca5d Pull complete                                                                                                                                                                                                                                                                                                       10.8s 
   ✔ 3ea3736f61e1 Pull complete                                                                                                                                                                                                                                                                                                       10.9s 
   ✔ 1e815a2c4f55 Pull complete                                                                                                                                                                                                                                                                                                       10.9s 
 ✔ minio 6 layers [⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                                                                                                                                                                                                                                                     14.1s 
   ✔ c7e856e03741 Pull complete                                                                                                                                                                                                                                                                                                        6.6s 
   ✔ c1ff217ec952 Pull complete                                                                                                                                                                                                                                                                                                        6.6s 
   ✔ b12cc8972a67 Pull complete                                                                                                                                                                                                                                                                                                        6.6s 
   ✔ 4324e307ea00 Pull complete                                                                                                                                                                                                                                                                                                        6.9s 
   ✔ 152089595ebc Pull complete                                                                                                                                                                                                                                                                                                        6.9s 
   ✔ 05f217fb8612 Pull complete                                                                                                                                                                                                                                                                                                       10.3s 
[+] Building 0.0s (0/0)                                                                                                                                                                                                                                                                                                                     
[+] Running 4/4
 ✔ Network milvus               Created                                                                                                                                                                                                                                                                                                0.1s 
 ✔ Container milvus-minio       Started                                                                                                                                                                                                                                                                                                4.6s 
 ✔ Container milvus-etcd        Started                                                                                                                                                                                                                                                                                                3.5s 
 ✔ Container milvus-standalone  Started   
$ sudo docker compose ps
NAME                IMAGE                                      COMMAND                  SERVICE             CREATED              STATUS                        PORTS
milvus-etcd         quay.io/coreos/etcd:v3.5.5                 "etcd -advertise-cli…"   etcd                About a minute ago   Up About a minute (healthy)   2379-2380/tcp
milvus-minio        minio/minio:RELEASE.2023-03-20T20-16-18Z   "/usr/bin/docker-ent…"   minio               About a minute ago   Up About a minute (healthy)   0.0.0.0:9000-9001->9000-9001/tcp, :::9000-9001->9000-9001/tcp
milvus-standalone   milvusdb/milvus:v2.3.4                     "/tini -- milvus run…"   standalone          About a minute ago   Up About a minute (healthy)   0.0.0.0:9091->9091/tcp, :::9091->9091/tcp, 0.0.0.0:19530->19530/tcp, :::19530->19530/tcp

测试链接

  • docker port milvus-standalone 19530/tcp // docker port 命令用于查看正在运行的容器中某个端口的映射情况
$ sudo docker port milvus-standalone 19530/tcp
0.0.0.0:19530
[::]:19530

停止 Milvus服务

  • 要停止 Milvus 单机版,请运行:

  • sudo docker compose down

  • 如需在停止 Milvus 后删除数据,请执行以下命令:

  • sudo rm -rf volumes

客户端使用

安装

$ pip3 install pymilvus # https://github.com/milvus-io/pymilvus

使用

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




# --------------------------------------------------------------------------------------------
# 服务器地址信息
HOST = '127.0.0.1'
PORT = '19530'
# 向量信息
DIM = 200 # dimension
COLLECTION_NAME = 'test'
# --------------------------------------------------------------------------------------------
# 创建 Milvus 集合,可参考https://milvus.io/docs/create_collection.md
def create_milvus_collection(collection_name, dim):
    # 是否已存在同名集合
    if utility.has_collection(collection_name):
        utility.drop_collection(collection_name)# 如果存在,则删除已有集合
    
    # 定义集合的字段信息。注:为了降低数据插入的复杂度,Milvus 允许你为每个标量字段指定一个默认值,不包括主键字段
    fields = [
        FieldSchema(name='path', dtype=DataType.VARCHAR, description='图像路径', max_length=500, 
                    is_primary=True, auto_id=False),# 存储图像路径的 'path' 字段
        FieldSchema(name='embedding', dtype=DataType.FLOAT_VECTOR, description='图像嵌入向量', dim=dim)# 存储图像嵌入向量的 'embedding' 字段
    ]
    
    # 创建集合的模式
    schema = CollectionSchema(fields=fields, description='集合描述信息')
    
    # 使用架构创建集合,到这一步创建的集合就能使用了
    collection = Collection(name=collection_name, schema=schema)

    #  定义用于创建索引的参数,以下示例构建一个 10 聚类IVF_FLAT索引,其中欧几里得距离 (L2) 作为相似度指标
    index_params = {
        "metric_type":"L2",
        "index_type":"IVF_FLAT",
        "params":{"nlist":10}
    }

    # 在 'embedding' 字段上使用指定参数创建索引
    collection.create_index(field_name='embedding', index_params=index_params)
    
    # 返回创建好的集合对象
    return collection

# 发起连接
connections.connect(host=HOST, port=PORT)

# 创建 collection
collection = create_milvus_collection(COLLECTION_NAME, DIM)
print(f'A new collection created: {COLLECTION_NAME}')
# 或者直接连接已有collection collection = Collection("book")


import random
data = [ [str(i) for i in range(2000)],  [[random.random() for _ in range(200)] for _ in range(2000)], # None,
        ]
print(len(data))
mr = collection.insert(data)

search_params = {
    "metric_type": "L2", 
    "offset": 0, 
    "ignore_growing": False, 
    "params": {"nprobe": 10}
}

collection.load()
results = collection.search(
    data=[[random.random() for _ in range(200)]], 
    anns_field="embedding", # Name of the field to search on.
    param=search_params,
    limit=10,
    expr=None,# 用于筛选属性的布尔表达式。有关更多信息,请参见布尔表达式规则。https://milvus.io/docs/boolean.md
    output_fields=['embedding'],#要返回的字段的名称。Milvus 支持返回向量字段。(可选)	
    # consistency_level="Strong" # 搜索的一致性级别(可选)	
)

print(results[0].ids)
print(results[0].distances)
hit = results[0][0]
print(hit.entity.get('embedding')) # 需要指定output_fields

# ['537', '1228', '389', '1527', '395', '190', '1221', '555', '1789', '886']
# [25.513811111450195, 26.030805587768555, 26.122865676879883, 26.59450912475586, 26.952003479003906, 27.123659133911133, 27.264328002929688, 27.28336524963379, 27.417621612548828, 27.71729278564453]
# [0.15461023, 0.30096045, 0.26865703, 0.25927073, 0.33812553, 0.54217076, 0.15246719, 0.731632, 0.45709008, 0.79914236, 0.9088526, 0.02686498, 0.42263803, 0.69333476, 0.39840952, 0.6991515, 0.5305877, 0.6620755, 0.5817265, 0.21614578, 0.8906462, 0.64077824, 0.09763326, 0.8131759, 0.31869066, 0.7435266, 0.727443, 0.6023419, 0.665456, 0.3228657, 0.10494679, 0.7091096, 0.3667962, 0.3149366, 0.15853179, 0.24909244, 0.23726037, 0.17990382, 0.3514512, 0.116617575, 0.5656539, 0.36453706, 0.7430549, 0.5163423, 0.17115992, 0.3062062, 0.9076736, 0.5650338, 0.43389124, 0.6029854, 0.3382137, 0.38251325, 0.7953752, 0.19413383, 0.21625121, 0.04543528, 0.97489053, 0.76131046, 0.17360009, 0.32513952, 0.7822587, 0.99820197, 0.97119784, 0.11839666, 0.004737074, 0.18586244, 0.21051529, 0.5463567, 0.28732273, 0.59985745, 0.35132825, 0.17821868, 0.08039577, 0.22121702, 0.51074564, 0.9789643, 0.91906327, 0.3212936, 0.9785981, 0.70479745, 0.77640325, 0.03191031, 0.12803258, 0.8522966, 0.48946765, 0.8437068, 0.17805281, 0.3471558, 0.7912329, 0.19458486, 0.9588124, 0.5400154, 0.3107983, 0.08004966, 0.40348408, 0.8400167, 0.255088, 0.29406822, 0.69000036, 0.7577903, 0.6970145, 0.99666446, 0.5368813, 0.25070563, 0.10906121, 0.6366669, 0.75897807, 0.2470287, 0.83007634, 0.17270081, 0.37081972, 0.5600866, 0.47211888, 0.48388532, 0.09467795, 0.43837216, 0.3848784, 0.33862317, 0.5992313, 0.49879825, 0.21382369, 0.4665225, 0.20776376, 0.41195828, 0.77341104, 0.41533098, 0.1488313, 0.29170626, 0.90135145, 0.9490258, 0.5797127, 0.046041798, 0.032213394, 0.9823944, 0.22410004, 0.01474563, 0.54565424, 0.84022516, 0.3146623, 0.60868996, 0.8468924, 0.5047047, 0.44784358, 0.76461, 0.39477462, 0.4341565, 0.04060842, 0.7913311, 0.3800782, 0.76624304, 0.27977547, 0.5467395, 0.7406536, 0.051075574, 0.859247, 0.16734485, 0.55351096, 0.77330744, 0.21997604, 0.6573193, 0.47392654, 0.22703278, 0.21453229, 0.5354482, 0.68723947, 0.3444063, 0.19725236, 0.63618726, 0.20056139, 0.41761643, 0.3148263, 0.0072599854, 0.14207017, 0.96439177, 0.727712, 0.61615413, 0.67021996, 0.73491627, 0.64917046, 0.6545984, 0.6521858, 0.86778504, 0.65002567, 0.65721965, 0.57199746, 0.27476418, 0.5959397, 0.17169125, 0.30866027, 0.6539025, 0.83966345, 0.18539791, 0.64870465, 0.9470506, 0.6794907, 0.75711423, 0.88191146, 0.075844504, 0.9600152, 0.38191438]

相关项目

reverse_image_search

  • Towhee 可以通过 ML 模型和其他操作的管道生成嵌入向量。它旨在使民主化,允许每个人 - 从初学者开发人员到大型组织 - 只需几行代码即可生成密集嵌入。使用Towhee分析非结构化数据,如反向图像搜索、反向视频搜索、音频分类、问答系统、分子搜索等。
  • https://github.com/towhee-io/examples/blob/main/image/reverse_image_search/workflow.png

在这里插入图片描述

项目训练营

osschat

  • https://osschat.io/chat,Enhanced ChatGPT with documentation, issues, blog posts, community Q&A as knowledge bases. Built for every community and developer.

在这里插入图片描述

轻松搭建基于Milvus的文本检索系统

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

stable diffusion 人物高级提示词(二)衣物、身材

一、衣服大类 英文中文Shirt衬衫Blouse女式衬衫Dress连衣裙Skirt裙子Pants裤子Jeans牛仔裤Swimsuit泳衣Underwear内衣Bra文胸Panties内裤Stockings长筒袜Shoes鞋子Socks袜子 二、细分分类 dress 是连衣裙&#xff1a; 英文解释Formal Dress正式礼服&#xff0c;通常用于正式…

C# 一看就懂的装箱拆箱案例

文章目录 装箱&#xff08;Boxing&#xff09;拆箱&#xff08;Unboxing&#xff09;编程语言中的装箱与拆箱优缺点 在C#中&#xff0c;装箱&#xff08;Boxing&#xff09;和拆箱&#xff08;Unboxing&#xff09;是值类型与引用类型之间相互转换的过程。 装箱&#xff08;Box…

Maven之属性管理

1.属性管理 1.1 属性配置与使用 ①&#xff1a;定义属性 <!--定义自定义属性--> <properties><spring.version>5.2.10.RELEASE</spring.version> </properties>②&#xff1a;引用属性 <dependency><groupId>org.springframewor…

OBD汽车

相当于客户端与服务器 诊断设备流程 》》》》诊断服务 OBD很多的定死了 Vme就很灵活 WWH 就是两个的结合 OBD15031 SID PID 可以自己定义一些 一个字节255个 两个有效字节 02 01 0D 5555&#xff08;随机值&#xff09;这是请求 两个有效字节 01 OD&#xff08;请求速…

flex布局(2)

五、优缺点 优点&#xff1a; 简单易用&#xff1a;Flex布局使用简单&#xff0c;只需通过设置容器的属性即可实现弹性布局&#xff0c;无需复杂的计算和调整。自适应性&#xff1a;Flex布局可以根据容器的大小自动调整元素的位置和大小&#xff0c;适应不同的屏幕尺寸和设备…

通用机V8R6集群部署_1主1备1见证_图形化_Centos7

KingbaseES 提供数据库部署工具进行数据库集群的部署。KingbaseES 提供基于图形化和命令行操作的集群部署方式&#xff0c;本文档主要用于指导不支持 GUI 的服务器上的 KingbaseES 集群部署工作。 集群简介 KingbaseES软件能够提供一主一备以及一主多备的高可用集群架构&…

Linux系统下gitee使用git提交代码

Linux系统下gitee使用git提交代码 一、安装配置git1.1 在 Linux 中安装 git&#xff0c;并生成授信证书1.2 将SSH key 添加到 ssh-agent1.2 将SSH key 添加到你的gitee账户 二、gitee 的使用2.1 下载项目到本地 三、上传gitee三步走3.1 三板斧第一招&#xff1a;git add3.2 三板…

C++ 开发 + VSCode 调试

C 开发 VSCode 调试 MSYS2 安装 gcc、make下载安装MSMYS2pacman 添加镜像源 GCC1. 安装2. 查看结果3. 环境变量 GDB VSCode 调试所需插件创建项目调试代码1. tasks.json 配置任务2. launch.json 配置调试3. 运行 更进一步的 C/C 设置 参考资料 MSYS2 安装 gcc、make 下载 官…

Java网络爬虫--HttpClient

目录标题 技术介绍有什么优点&#xff1f;怎么在项目中引入&#xff1f; 请求URLEntityUtils 类GET请求带参数的GET请求POST请求 总结 技术介绍 HttpClient 是 Apache Jakarta Common 下的子项目&#xff0c;用来提供高效的、功能丰富的、支持 HTTP 协议的客户端编程工具包。相…

Pycharm中如何配置python环境(conda)

首先在pycharm中点击 "File" > "Settings" 再次点击如下操作&#xff1a; 点击Python Interpreter的最右侧按钮&#xff0c;点击Show All... 找到python文件 最后点击OK

ros gazebo机械臂仿真,手动控制与MoveIt自动控制

本文总结归纳古月居胡春旭ros机械臂教程&#xff0c;给出了一些error的解决方法&#xff0c;补充了通过python运行moveit。十分建议去看github huchunxu源代码的repository。 创建机械臂的xacro模型 首先创建一个工作空间&#xff0c;在工作空间中创建arm_description功能包。…

Qt应用-实现图像截取功能类似QQ上传头像截取功能

本文演示利用Qt实现图像截取功能类似QQ上传头像截取功能。 效果如下,通过移动中间的裁剪区域可以获得一张裁剪后的图片。 目录

MySQL进阶之(二)索引的数据结构

二、索引的数据结构 2.1 关于索引2.1.1 什么是索引&#xff1f;2.1.2 为什么使用索引&#xff1f;2.1.3 索引的优缺点01、优点02、缺点 2.1.4 一个简单的索引设计方案 2.2 InnoDB 中的索引设计2.2.1 迭代①&#xff1a;目录项记录的页2.2.2 迭代②&#xff1a;多个目录项记录的…

程序媛的mac修炼手册-- 终端(terminal)常用命令

「终端&#xff08;terminal&#xff09;」相当于macOS的一个 App &#xff0c;它的特殊之处是&#xff0c;它是管理其它App的App&#xff0c;操作主要通过命令行界面 (CLI) 。 相比于我们日常熟悉的用户界面&#xff08;User Interface&#xff0c;UI&#xff09;&#xff0c…

顺序栈之共享栈实现——C语言

参考书&#xff1a;数据结构教程 第5版 李葆春 P83 #include <stdio.h> #include <string.h> #include <stdlib.h>#define MaxSize 10/*共享栈*/ typedef struct {char data[MaxSize];int top1,top2,len; }DStack;/*初始化*/ void InitStack(DStack *s){s-…

HCIA-Datacom题库(自己整理分类的)_17_简单的命令判断【11道题】

1.华为AR路由器的命令行界面下&#xff0c;save命令的作用是保存当前的系统时间。 解析&#xff1a;Save保存配置 2.VRP界面下&#xff0c;使用命令delete vrpcfg.zp删除文件&#xff0c;必须在回收站中清空&#xff0c;才能彻底删除文件。√ 解析&#xff1a;delete删除到回…

Selenium 学习(0.19)——软件测试之基本路径测试法——拓展案例

1、案例 请使用基本路径法为变量year设计测试用例&#xff0c;year的取值范围是1000<year<2001。代码如下&#xff1a; 2、步骤 先画控制流程图 再转化为控制流图&#xff08;标出节点&#xff09; V(G) 总区域数 4 V(G) E - N 2 (边数 - 节点数 2…

AArch64 Exception Model学习

提示 该博客主要为个人学习&#xff0c;通过阅读官网手册整理而来&#xff08;个人觉得阅读官网的英文文档非常有助于理解各个IP特性&#xff09;。若有不对之处请参考参考文档&#xff0c;以官网文档为准。 1 Privilege and Exception Levels 1.1 为什么要划分权限&#xf…

5分钟使用Hologres实时湖仓加速分析挑战赛来袭

活动简介 5分钟快速使用Hologres实时湖仓能力&#xff0c;加速分析数据湖OSS上Hudi、Delta、Paimon、ORC等格式数据&#xff0c;赢取精美礼品 活动入口&#xff1a;Hologres实时湖仓分析挑战赛-阿里云开发者社区 或点击文末【阅读全文】参与挑战 活动时间 2024年1月4日-202…

爬取国家法律法规数据库法律条文

代码展现&#xff1a; import requests import os filename 法律条文\\ if not os.path.exists(filename):os.mkdir(filename) url https://flk.npc.gov.cn/api/? data {type: flfg,searchType: title;vague,sortTr: f_bbrq_s;desc,gbrqStart: ,gbrqEnd: ,sxrqStart: ,sx…