当前位置: 首页 > news >正文

Milvus向量数据库-磁盘索引简介

以下内容是自己在学习Milvus向量数据库时,在Milvus官方网站文档库中对索引的学习整理和翻译,通过自己和借助翻译软件进行了理解整合翻译,有可能有一些地方理解整理的不到位,还望大家理解。

一、磁盘索引

本文介绍了一种名为DiskANN的磁盘索引算法。基于Vamana图,DiskANN在大型数据集中实现了高效搜索。

为了提高查询性能,您可以为每个向量字段指定索引类型。

注:

目前,向量字段只支持一种索引类型。Milvus在切换索引类型时会自动删除旧索引。

二、先决条件

要使用DiskANN索引时,请注意以下事项:

1、默认情况下,DiskANN索引是处于启用的状态(Milvus不同版本中的默认状态有可能不一样)。如果您更喜欢内存索引而不是磁盘索引,建议您可以禁用此功能来获得更好的性能。

  1. 要想禁用它,您可以在milvus配置文件中将queryNode.enableDisk更改为false。
  2. 要想再次启用它的话,您可以将queryNode.enableDisk设置为true。

2、Milvus实例需要在Ubuntu 18.04.6或更高版本上运行。

3、Milvus数据路径应挂载到 NVMe SSD 上,以充分发挥性能:

  1. 对于Milvus独立实例,实例运行所在容器中的路径为/var/lib/Milvus/data。
  2. 对于Milvus Cluster实例,查询节点和索引节点运行的容器中的数据路径应该是/var/lib/Milvus/data。

三、限制条件

想使用DiskANN索引,你必须确保以下条件:

  1. 在数据中仅使用至少具有1个维度的浮点向量。
  2. 仅使用欧氏距离 (L2) 或内积 (IP) 来测量向量之间的距离。

四、索引和搜索的设置

指标构建参数,构建DiskANN索引时,使用DISKANN作为索引类型。不需要索引参数。

搜索参数

参数

描述

范围

search_list

候选列表的大小,越大,召回率越高,性能越差

[topk, int32_max]

五、DiskANN相关的Milvus配置

DiskAN是可调的。您可以在${MILVUS ROOT PATH}/configs/milvus.yaml中修改与DiskANN相关的参数,以提高其性能。

...

DiskIndex:

  MaxDegree: 56

  SearchListSize: 100

  PQCodeBugetGBRatio: 0.125

  SearchCacheBudgetGBRatio: 0.125

  BeamWidthRatio: 4.0

...

参数

描述

取值范围

默认值

MaxDegree

Vamana 图的最大度数。
值越大,召回率越高,但会增加构建索引的大小和时间。

[1,512]

56

SearchListSize

候选人名单的大小。

较大的值会增加构建指数所花费的时间,但会提供更高的召回率。

将其设置为小于“最大度数”的值,除非需要减少索引构建时间。

[1,int32_max]

100

PQCodeBugetGBRatio

PQ 代码的大小限制。
值越大,召回率越高,但会增加内存使用量。

[0.0,0.25]

0.125

SearchCacheBudgetGBRatio

缓存节点数与原始数据的比率。

较大的值会随着内存使用量的增加而提高索引构建性能。

[0.0,0.3]

0.1

BeamWidthRatio

每次搜索迭代的最大IO请求数与CPU数之间的比率。

[1,max(128/cpu number,16)]

4.0

六、故障排除

如何处理报“io_setup() failed; returned -11, errno=11:Resource temporarily unavailable”的错误?

答:Linux内核提供异步非阻塞I/O(AIO)功能,允许进程同时启动多个I/O操作,而无需等待任何一个操作完成。这有助于提高可能重叠处理和I/O的应用程序的性能。

可以使用proc文件系统中的/proc/sys/fs/aio-max-nr虚拟文件中的参数来调整其性能。aio-max-nr参数决定了允许的最大并发请求数。

aio-max-nr默认为65535,您可以将其设置为10485760。

有关更多信息,请参阅如何在Milvus中的磁盘索引:

On-disk Index Milvus v2.3.x documentation

相关文章:

Milvus向量数据库-磁盘索引简介

以下内容是自己在学习Milvus向量数据库时,在Milvus官方网站文档库中对索引的学习整理和翻译,通过自己和借助翻译软件进行了理解整合翻译,有可能有一些地方理解整理的不到位,还望大家理解。 一、磁盘索引 本文介绍了一种名为Disk…...

Web漏洞介绍和Sql注入漏洞

常规渗透测试流程 漏洞探测包括:web漏洞测试,系统漏洞测试 工具探测、手工验证 优先找的漏洞:中间(件)漏洞、框架漏洞...webserver 知道创宇 Seebug 漏洞平台 - 洞悉漏洞,让你掌握前沿漏洞情报&#xff…...

【Eureka】Eureka 介绍与实战

1. Eureka 简介 Eureka 是 Netflix 开发的一个服务注册和发现组件,主要用于微服务架构中。它的核心功能是帮助微服务之间进行通讯和管理,使得服务能够动态地发现彼此,实现灵活的服务调用和负载均衡。 1.1 核心概念 服务注册中心&#xff0…...

密码管理系统的自动化与集成:重塑安全与效率的双重飞跃

在数字化时代,密码作为保护个人信息、企业资产及敏感数据的第一道防线,其重要性不言而喻。然而,随着网络应用的激增和复杂性的提升,传统的密码管理方式——如使用简单密码、重复密码或依赖记忆——已难以满足现代安全需求&#xf…...

Outlook如何精确搜索邮件?

Outlook如何精确搜索邮件? 参考链接:https://jingyan.baidu.com/article/e75aca853148ba552edac6b6.html 我们在使用Outlook搜索功能时,直接输入关键词的话,会出来很多不相关的内容,那么有没有办法让搜索时更加精确呢…...

MambaCSR: 使用SSM的双交错扫描压缩图像超分辨率

MambaCSR: Dual-Interleaved Scanning for Compressed Image Super-Resolution With SSMs 2408.11758 (arxiv.org) GitHub - renyulin-f/MambaCSR: The code source of MambaCSR 摘要 本文提出了MambaCSR,这是一个基于Mamba的简单但有效的框架,用于解决…...

【C++】深入解析C/C++内存管理:new与delete的使用及原理

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类 本章将分享C为何放弃malloc/free系列,选择新系列new/delete去管理内存。深度探索new/delete的使用及其原理,m…...

递归--数据结构--黑马

递归 总结一句话,上手直接多刷Leetcode,比看这个更有用。 定义 递归是一种解决计算问题的方法,其中解决方案取决于同一类问题的更小子集。 例如,单链表递归遍历的例子: void f(Node node) {if (node null) {retu…...

【3.1】贪心算法-解分发饼干

一、题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是, 每个孩子最多只能给一块饼干 。 对每个孩子i,都有一个 胃口值 g[i] ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干j,都有一个…...

解决 Error running ‘Application‘: Command line is too long.

一、项目场景: 运行刚拉取下来的项目代码,出现下面问题描述的错误提示。 二、问题描述 Error running Application: Command line is too long. Shorten command line for Application or also for Spring Boot default configuration? 翻译翻译&…...

衡量与归因将是Netflix程序化广告业务的首要任务

作者:刀客doc 8月20日,Netflix宣布今年上半年,品牌的招商收入同比增长了150%,广告主来自旅游、汽车、零售商、快餐和大众快消等行业。这一消息提振了资本市场对Netflix广告业务的信心,8月20日收盘创下每股 698.54 美元…...

关于如何在已有qt项目中添加该项目的单元测试工程

关于如何在已有qt项目中添加该项目的单元测试工程 新建一个子目录工程,把已有项目作为子工程添加进去,然后新建单元测试工程也作为子工程添加进去。单元测试项目要独立于实际项目工程,确保去掉测试项目后,实际项目仍可以正常运行…...

深度剖析数字媒体产业链的无限潜力与创新生态

在当今信息爆炸的时代,数字媒体产业链正以势不可挡的姿态展现出其令人瞩目的无限潜力与创新生态。 数字媒体的发展潜力简直无可限量。从在线视频的爆发式增长,到虚拟现实和增强现实技术带来的沉浸式体验,再到社交媒体平台上丰富多彩的内容创…...

集团数字化转型方案(十二)

集团数字化转型方案致力于通过构建一个集成化的数字平台,全面应用大数据分析、人工智能、云计算和物联网等前沿技术,推动业务流程、管理模式和决策机制的全面升级。该方案将从业务流程的数字化改造开始,优化资源配置,提升运营效率…...

Andrid异步更新UI:Handler(二)深入了解:Message你真的会创建?它是如何子线程和主线程通知?

目录 为什么会有HandlerHandler的原理,以及对象讲解主线程的loop在哪里,为什么主线程loop没有阻塞呢?Looper如何保证唯一Handler为什么会引发内存泄漏呢?Message应该如何创建它? 一、为什么会有Handler 线程分为主线…...

2025计算机毕设50条小众好做的Java题目【计算机毕设选题推荐】

随着2025年的到来,计算机专业的学生们又迎来了毕业设计的关键时刻。对于大多数学生来说,选择一个合适的毕业设计题目往往是一项艰巨的任务。本文旨在为那些正在为毕业设计题目烦恼的同学们提供一些灵感和建议,特别是针对使用Java技术栈的同学…...

day06_算法训练

一. Stream流 1.1 Stream流概述 概念: jdk1.8以后提供的新的API, 主要用于批量操作数据(集合的另外一种操作方式),代码非常简洁 流式处理思想: 2.2 Stream对象获取 1.单列集合的Stream流对象获取 2.双列集合的Stream流对象获取 3.数组的Stream流对象获取 4.散装数据的St…...

@SpringBootTest单元测试中报错:无法自动装配,找不到 ‘XXX‘ 类型的 Bean

一开始照着网上教程讲Springboot原理中的代码来copy写的↓ import com.google.gson.Gson; import com.itheima.pojo.Result; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.cont…...

nodemon学习(一)简介、安装、配置、使用

nodemon用来监视node.js应用程序中的任何更改并自动重启服务,非常适合用在开发环境中。以前,我们开发一个node后端服务时,每次更改文件,均需重启一下,服务才能生效。这使我们的开发效率降低了很多。nodemon的出现,可以…...

【Qt从摄像头视频中获取数据】

有时候需要在视频上画图,所以需要能获取到每一帧视频数据。 以前从视频文件或视频流中得到帧,一般都是使用qt ffmpeg或qt vlc。 qt对显示处理视频大体有以下方法: QMediaPlayer QVideoWidget 这种方法只适合简单的显示视频功能&#xff…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...