Milvus向量数据库检索

news2024/9/27 23:34:22

  官方文档:https://milvus.io/docs/search.md
  本节介绍如何使用 Milvus 搜索实体。
  Milvus 中的向量相似度搜索会计算查询向量与具有指定相似度度量的集合中的向量之间的距离,并返回最相似的结果。您可以通过指定过滤标量字段或主键字段的布尔表达式来执行混合搜索。
  下面的例子展示了如何对2000行的图书ID(主键)、字数(标量场)、图书介绍(向量场)的数据集进行向量相似度搜索,模拟根据搜索条件搜索某本书的情况关于他们的矢量化介绍。 Milvus 会根据您定义的查询向量和搜索参数返回最相似的结果。

1. 加载集合

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

from pymilvus import Collection
collection = Collection("book")      # Get an existing collection.
collection.load()

2. 准备搜索参数

  准备适合您的搜索场景的参数。
  以下示例定义搜索将使用欧氏距离计算距离,并从 IVF_FLAT 索引构建的十个最接近的簇中检索向量。

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

  参数介绍:
在这里插入图片描述

3. 进行向量搜索

  使用 Milvus 搜索向量。要在特定分区中搜索,请指定分区名称列表。
  Milvus 支持专门为搜索设置一致性级别。本主题中的示例将一致性级别设置为“Strong”。
  您还可以将一致性级别设置为“Bounded有界”、“Session会话”或“Eventually最终”。有关 Milvus 中四个一致性级别的更多信息,请参阅一致性(https://milvus.io/docs/consistency.md)。
  使用支持 GPU 的 Milvus 进行向量搜索时,返回的实体数量应满足以下要求:

  • GPU_IVF_FLAT:返回的实体数量应小于 256。
  • GPU_IVF_PQ:返回的实体数量应小于 1024。

  具体如下:参考内存索引(https://milvus.io/docs/index.md)。
  示例:

results = collection.search(
    data=[[0.1, 0.2]], 			# 用于搜索的向量。
    anns_field="book_intro",    # 要搜索的字段的名称。
    # the sum of `offset` in `param` and `limit` 
    # should be less than 16384.
    param=search_params,        # 特定于索引的搜索参数
    limit=10,                   # 要返回的结果数。该值与 param 中的偏移量之和应小于 16384。
    expr=None,				    # 用于过滤属性的布尔表达式。有关详细信息,请参阅布尔表达式规则(https://milvus.io/docs/boolean.md)。
    # set the names of the fields you want to 
    # retrieve from the search result.
    output_fields=['title'],   # 要返回的字段的名称
    consistency_level="Strong" # 搜索的一致性级别
)

# 查看最相似向量的主键值及其距离、输出的字段。
results[0].ids
results[0].distances
hit = results[0][0]
hit.entity.get('title')

# 当搜索完成时,释放 Milvus 中加载的集合以减少内存消耗。
collection.release()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis及其数据类型和常用命令(一)

Redis 非关系型数据库,不需要使用sql语句对数据库进行操作,而是使用命令进行操作,在数据库存储时使用键值对进行存储,应用场景广泛,一般存储访问频率较高的数据。 一般关系型数据库(使用sql语句进行操作的…

市场复盘总结 20240314

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率中 25% 最常用的…

二.递归及实例(汉诺塔问题)

目录 5.递归 6-递归实例:汉诺塔问题 思路: 详细过程: 代码: 5.递归 调用自身 结束条件 6-递归实例:汉诺塔问题 思路: 结果: 详细过程: 代码: #n为盘子的个数 a,b,c分别为3个地方. def hannuta(n,a,b,c): ​if n>0:hannuta(n-1,a,c,b) #将n-1个从a经过c移到到b(a…

【C语言_C语言语句_复习篇】

目录 一、C语言的语句有哪些 1.1 空语句 1.2 表达式语句 1.3 函数调用语句 1.4 复合语句 1.5 控制语句 二、分支语句(两种) 1.1 if语句 1.1.1 普通分支语句(if、if_else) 1.1.2 嵌套if语句 1.1.3 else嵌套if两种写法的比较 1.1.4 else悬空问题 1.1.…

代码随想录算法训练营第四十七天|动态规划|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

198.打家劫舍 文章 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代…

Docker容器化技术(使用Docker搭建论坛)

第一步:删除容器镜像文件 [rootlocalhost ~]# docker rm -f docker ps -aq b09ee6438986 e0fe8ebf3ba1第二步:使用docker拉取数据库 [rootlocalhost ~]# docker run -d --name db mysql:5.7 02a4e5bfffdc81cb6403985fe4cd6acb0c5fab0b19edf9f5b8274783…

NLP:HanLP的下载与使用

昨天说到要做一个自定义的训练模型,但是很快这个想法就被扑灭了,因为这个手工标记的成本太大,而且我的上级并不是想要我做这个场景,而是希望我通过这个场景展示出可以接下最终需求的能力。换句话来说:可以,…

leetcode代码记录(找到小镇的法官

目录 1. 题目:2. 我的代码:小结: 1. 题目: 小镇里有 n 个人,按从 1 到 n 的顺序编号。传言称,这些人中有一个暗地里是小镇法官。 如果小镇法官真的存在,那么: 小镇法官不会信任任何…

【数据结构】树与堆 (向上/下调整算法和复杂度的分析、堆排序以及topk问题)

文章目录 1.树的概念1.1树的相关概念1.2树的表示 2.二叉树2.1概念2.2特殊二叉树2.3二叉树的存储 3.堆3.1堆的插入(向上调整)3.2堆的删除(向下调整)3.3堆的创建3.3.1使用向上调整3.3.2使用向下调整3.3.3两种建堆方式的比较 3.4堆排…

新 树莓派4B 温湿度监测 基于debian12的树莓派OS

前言 本文旨在完成通过外接温湿度传感器至树莓派使得树莓派不断记录并存储温湿度数据 这个领域有很多文章,但是部分文章已经缺乏了时效性,在最新系统不适用,本文目前适用 硬件 硬件连接 温湿度传感器常选用DHT11和DHT22,淘宝…

MTK的flash_tool.exe中,“Format-Download”、“Firmware-Upgrade”和“Download”是三种不同的刷机模式

在MTK的flash_tool.exe中,“Format-Download”、“Firmware-Upgrade”和“Download”是三种不同的刷机模式。具体分析如下: Format-Download:这种模式会执行全擦除,即清除存储器中的所有数据,然后下载新的固件。这种方…

图片编辑器tui-image-editor

提示:图片编辑器tui-image-editor 文章目录 前言一、安装tui-image-editor二、新建components/ImageEditor.vue三、修改App.vue四、效果五、遇到问题 this.getResolve is not a function总结 前言 需求:图片编辑器tui-image-editor 一、安装tui-image-ed…

DB算法原理与构建

参考: https://aistudio.baidu.com/projectdetail/4483048 Real-Time Scene Text Detection with Differentiable Binarization 如何读论文-by 李沐 DB (Real-Time Scene Text Detection with Differentiable Binarization) 原理 DB是一个基于分割的文本检测算…

IDEA自定义Maven仓库

Maven 是一款广泛应用于 Java 开发的工具,其作用类似于一个全自动的 JAR 包管理器,能够方便地导入开发所需的相关 JAR 包。在使用 Maven 进行 Java 程序开发时,开发者能够极大地提高开发效率。以下是关于如何安装 Maven 以及在 IDEA 中配置自…

电脑远程桌面选项变成灰色没办法勾选怎么办?

有些人在使用Windows系统自带的远程桌面工具时,会发现系统属性远程桌面选项卡中勾选启用“允许远程连接到此计算机”。 导致此问题出现的原因主要是由于组策略或者注册表设置错误造成的。 修复远程桌面选项变灰的两种方法! 方法一:设置本地组…

【LeetCode】84. 柱状图中最大的矩形(困难)——代码随想录算法训练营Day60

题目链接:84. 柱状图中最大的矩形 题目描述 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights [2,1,5,…

Vue3调用钉钉api,内嵌H5微应用单点登录对接

钉钉内嵌H5微应用单点登录对接 https://open.dingtalk.com/document/isvapp/obtain-the-userid-of-a-user-by-using-the-log-free 前端需要的代码 1、安装 dingtalk-jsapi npm install dingtalk-jsapi2、在所需页面引入 import * as dd from dingtalk-jsapi; // 引入钉钉a…

python版本原因导致的grpcio-tools-1.48.2安装失败

因为工作需要使用python开发grpc客户端,在mac电脑上通以下命令安装python的grpc依赖库总是不成功 pip3 install --no-cache-dir --force-reinstall -Iv grpcio1.48.2 grpcio-tools1.48.2 clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG …

【string一些函数用法的补充】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 string类对象的修改操作 我们来看 c_str 返回c格式的字符串的操作: 我们来看 rfind 和 substr 的操作: string类非成员函数 我们来看 r…

安卓之四大组件

组件描述Activity(活动)在应用中的一个Activity可以用来表示一个界面,意思可以理解为“活动”,即一个活动开始,代表 Activity组件启动,活动结束,代表一个Activity的生命周期结束。一个Android应用必须通过Activity来运…