Milvus向量数据库检索

  官方文档: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.rhkb.cn/news/278105.html

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

相关文章

sql join

-- 创建事实表 CREATE TABLE product_facts (id INT AUTO_INCREMENT PRIMARY KEY,product_name VARCHAR(255),price DECIMAL(10, 2) );-- 插入数据 INSERT INTO product_facts (product_name, price) VALUES (Product A, 100.00); INSERT INTO product_facts (product_name, pr…

Spring Boot(六十九):利用Alibaba Druid对数据库密码进行加密

1 Alibaba Druid简介 之前介绍过Alibaba Druid的,章节如下,这里就不介绍了: Spring Boot(六十六):集成Alibaba Druid 连接池 这章使用Alibaba Druid进行数据库密码加密,在上面的代码上进行修改,这章只介绍密码加密的步骤。 目前越来越严的安全等级要求,我们在做产品…

百科源码生活资讯百科门户类网站百科知识,生活常识

百科源码生活资讯百科门户类网站百科知识,生活常识 百科源码安装环境 支持php5.6,数据库mysql即可,需要有子目录权限,没有权限的话无法安装 百科源码可以创建百科内容,创建活动内容。 包含用户注册,词条创建&#xff…

使用 opencv 识别答题卡,生成填涂答案

一般答题卡设计时都在试卷4个角预留4个一样大小的黑块 仅能识别选择题判断题之类的填涂答题的题目,不能识别填空题应用题等其它主观题 使用 opencv 识别试卷图片中所有黑块,再根据黑块大小获取四个角的位置,根据四个黑块位置校正图像 将图…

Ansible非标记语言YAML与任务剧本Playbook

前言 上篇介绍了 Ansible 单模块(AD-Hoc)的相关内容Ansible自动化运维Inventory与Ad-Hoc-CSDN博客,Ad-Hoc 命令是一次性的、即时执行的命令,用于在远程主机上执行特定任务,这些命令通常用于快速执行简单的任务。当需要…

Spring Boot 集成 WebSocket 实例 | 前端持续打印远程日志文件更新内容(模拟 tail 命令)

这个是我在 CSDN 的第一百篇原则博文,留念😎 #1 需求说明 先说下项目结构,后端基于 Spring Boot 3,前端为 node.js 开发的控制台程序。现在希望能够在前端模拟 tail 命令,持续输出后端的日志文件。 #2 技术方案 #2.…

Python基础(七)之数值类型集合

Python基础(七)之数值类型集合 1、简介 集合,英文set。 集合(set)是由一个或多个元素组成,是一个无序且不可重复的序列。 集合(set)只存储不可变的数据类型,如Number、…

【mask】根据bbox提示同一张图片生成多个矩形框掩码

前提:使用labelimg得到bbox 1.代码 import cv2 import numpy as np# 读取图片 image cv2.imread("D:\Desktop\mult_test\images\SL03509990_1694761223500.jpg")# 假设我们有多个目标的ROI(感兴趣区域) rois [(565,635,1006,85…

MySQL实战:监控

监控指标 性能类指标 名称说明QPS数据库每秒处理的请求数量TPS数据库每秒处理的事务数量并发数数据库实例当前并行处理的会话数量连接数连接到数据库会话的数量缓存命中率Innodb的缓存命中率 功能类指标 名称说明可用性数据库是否正常对外提供服务阻塞当前是否有阻塞的会话…

zookeeper快速入门四:在java客户端中操作zookeeper

系列文章&#xff1a; zookeeper快速入门一&#xff1a;zookeeper安装与启动-CSDN博客 zookeeper快速入门二&#xff1a;zookeeper基本概念-CSDN博客 zookeeper快速入门三&#xff1a;zookeeper的基本操作 先启动zookeeper服务端。 在maven引入zookeeper依赖。 <depende…

51单片机—DS18B20温度传感器

目录 一.元件介绍及原理 二&#xff0c;应用&#xff1a;DS18B20读取温度 一.元件介绍及原理 1.元件 2.内部介绍 本次元件使用的是单总线 以下为单总线的介绍 时序结构 操作流程 本次需要使用的是SKIP ROM 跳过&#xff0c; CONVERT T温度变化&#xff0c;READ SCRATCHPAD…

RabbitMQ命令行监控命令详解

在分布式系统中&#xff0c;消息队列中间件如RabbitMQ扮演着至关重要的角色。为了保证系统的稳定性和高可用性&#xff0c;对RabbitMQ进行有效监控是必不可少的。本文将详细介绍RabbitMQ提供的命令行工具rabbitmqctl&#xff0c;这些工具可以帮助我们监控和管理RabbitMQ服务器。…

【论文精读】DDPM:Denoising Diffusion Probabilistic Models 去噪扩散概率模型

文章目录 一、背景&#xff08;一&#xff09;生成模型&#xff08;二&#xff09;数学理论基础&#xff08;三&#xff09;扩散模型的三种生成范式 二、文章概览&#xff08;一&#xff09;核心思想&#xff08;二&#xff09;前向过程&#xff08;三&#xff09;后向过程&…

玩转C语言——数组初探

一、前言 通过前面的学习&#xff0c;我们已了解C语言的结构变量、分支结构和循环结构。今天&#xff0c;我们一起来认识C语言的另一知识点——数组。先赞后看&#xff0c;养成习惯。 二、数组概念 学习数组&#xff0c;我们要明白数组是什么。在我看来&#xff1a;数组是⼀组…

jenkins 使用k8s插件连接k8s集群

jenkins 安装k8s 插件 配置k8s节点 填写k8s 配置信息 如果不是买的https证书 切记不检查https Kubenetes 服务证书key 的获取 登录 k8s 服务器 查看地址 Kubernetes 服务证书 key cat /root/..kube/config 查看秘钥 对秘钥进行base64 位 加密 echo "秘钥内容&…

JavaWeb后端——分层解耦 IOC DI

分层/三层架构概述 三层架构&#xff1a;Controller、Service、Dao 解耦/IOC&DI概述 分层解耦 容器称为&#xff1a;IOC容器/Spring容器 IOC 容器中创建&#xff0c;管理的对象&#xff0c;称为&#xff1a;bean 对象 IOC&DI入门 实现 IOC&DI 需要的注解&#…

分布式搜索引擎(3)

1.数据聚合 **[聚合&#xff08;](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html)[aggregations](https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html)[&#xff09;](https://www.ela…

使用HttpRequest工具类调用第三方URL传入普通以及文件参数并转换MultipartFile成File

使用HttpRequest工具类调用第三方URL传入普通以及文件参数 一、依赖及配置二、代码1、模拟第三方服务2、调用服务3、效果实现 一、依赖及配置 <!--工具依赖--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId&g…

Linux进程管理:(六)SMP负载均衡

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 前置知识 1.1 CPU管理位图 内核…

windows文档格式转换的实用工具

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…