CN115374104A - 关系型数据库的汉明向量检索方法、装置、介质及终端 - Google Patents
关系型数据库的汉明向量检索方法、装置、介质及终端 Download PDFInfo
- Publication number
- CN115374104A CN115374104A CN202210783496.9A CN202210783496A CN115374104A CN 115374104 A CN115374104 A CN 115374104A CN 202210783496 A CN202210783496 A CN 202210783496A CN 115374104 A CN115374104 A CN 115374104A
- Authority
- CN
- China
- Prior art keywords
- vector
- candidate
- hamming
- vectors
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2462—Approximate or statistical queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种关系型数据库的汉明向量检索方法、装置、介质及终端,方法包括:将要查询的汉明向量及所需数量输入到预设数据库中;对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集;对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量,本发明采用上述方法后实现了高效的高维度汉明向量的检索,且通过构建汉明向量数据库实现了对高维度汉明向量的存储和计算。
Description
技术领域
本发明涉及关系型数据库检索领域,尤其涉及一种关系型数据库的汉明向量检索方法、装置、介质及终端。
背景技术
数据库系统因为具有事务性、容灾、备份等多种特性而在生产环境中被广泛应用,其中,关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。
汉明向量由于其存储和运算开销小被广泛应用于如图片检索、网页去重等一系列应用中,现有的多媒体文件的特征通常由汉明向量表示,而通过汉明向量间的距离就可判定多个多媒体文件物体间的相似度,而现有数据库却不能支持高维度汉明向量的检索。
发明内容
鉴于上述现有技术的不足,本申请的目的在于提供一种关系型数据库的汉明向量检索方法、装置、介质及终端,旨在解决在现有数据库不能支持高维度汉明向量检索的问题。
为解决上述技术问题,本申请实施例第一方面提供了一种关系型数据库的汉明向量检索方法,所述方法包括:
将要查询的汉明向量及所需数量输入到预设数据库中;
对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集;
对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;
将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量。
作为进一步改进技术方案,所述将要查询的汉明向量及所需数量输入到预设数据库中包括:
构建汉明向量数据库,将构建完成的所述汉明向量数据库作为所述预设数据库;
将要查询的汉明向量及所需数量输入到所述预设数据库中。
作为进一步改进技术方案,所述构建汉明向量数据库,将构建完成的所述汉明向量数据库作为所述预设数据库包括:
将数据库的数据类型定义为hmcode,hmcode用于在数据库内高效的支持汉明向量的存储和运算;
创建若干个哈希索引表,将高维汉明向量均分为若干个低维度的子汉明向量,将所述子汉明向量插入对应的哈希索引表中,其中,每一个所述哈希索引表的第一列为子汉明向量的值,第二列为高维汉明向量的ID值。
作为进一步改进技术方案,所述对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集包括:
对所述汉明向量进行划分,得到若干个子向量;
对每个所述子向量基于预设汉明距离生成候选向量,基于若干个所述子向量生成候选集,其中,将预设汉明距离的所有向量作为候选向量,预设汉明距离为t-1,t为生成候选向量的次数。
作为进一步改进技术方案,所述对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量包括:
对候选集中的每个候选子向量在对应的哈希索引表中进行查询,得到候选向量ID;
统计查询到的所有候选向量ID数量。
作为进一步改进技术方案,所述将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量包括:
将所述候选向量ID的数量与预设值相比,得到所述候选向量ID的数量大于等于预设值或所述候选向量ID的数量小于预设值比较结果,若所述候选向量ID的数量大于预设值,则根据所述候选向量ID找到相应的候选向量,计算候选向量与要查询的汉明向量之间的实际汉明距离,对候选向量按照实际汉明距离进行排序,并基于所需数量返回最近邻的向量,其中,预设值与数据库中的向量数量成正比。
作为进一步改进技术方案,得到所述候选向量ID的数量小于预设值比较结果后,重复所述子向量基于汉明距离生成候选向量,基于若干个所述子向量生成候选集,将所述候选向量ID的数量与预设值相比的过程对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量,将所述候选向量ID的数量与预设值相比的过程。
本申请实施例第二方面提供了一种关系型数据库的汉明向量检索装置,包括:
数据输入模块,用于将要查询的汉明向量及所需数量输入到预设数据库中;
划分模块,用于对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集;
查询模块,用于对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;
比较模块,用于将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量。
本申请实施例第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的关系型数据库的汉明向量检索方法中的步骤。
本申请实施例第四方面提供了一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的关系型数据库的汉明向量检索方法中的步骤。
有益效果:相较于现有技术本发明的关系型数据库的汉明向量检索方法包括,将要查询的汉明向量及所需数量输入到预设数据库中;对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集;对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量,本发明采用上述方法后实现了高效的高维度汉明向量的检索,且通过构建汉明向量数据库实现了对高维度汉明向量的存储和计算。
附图说明
图1是本发明的关系型数据库的汉明向量检索方法的流程图。
图2是本发明提供的终端设备的结构原理图。
图3是本发明提供的装置结构框图。
图4是本发明的关系型数据库的汉明向量检索方法中检索示意图。
图5是本发明的关系型数据库的汉明向量检索方法中检索流程图。
图6是本发明的关系型数据库的汉明向量检索方法中索引构建过程图。
图7是本发明的关系型数据库的汉明向量检索方法中采用hmcode的汉明向量具体的空间占用示意图。
图8是本发明的关系型数据库的汉明向量检索方法中子向量批量枚举示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的较佳实施方式。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施方式。相反地,提供这些实施方式的目的是使对本申请的公开内容理解的更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本申请。
发明人经过研究发现,现有技术存在以下问题:
(1)数据库系统因为具有事务性、容灾、备份等多种特性而在生产环境中被广泛应用,但在大多数数据库却不能高效的支持高维度的汉明向量的存储、运算、查询。汉明向量由于其存储和运算开销小被广泛应用于如图片检索、网页去重等一系列应用中,而由于在汉明向量数据集中进行穷举的检索时间开销较大,高效的KNN检索算法被提出,但这些算法大都基于内存实现,不适应于数据存储在磁盘的数据库系统。
如图1所示,本申请实施例提供的一种关系型数据库的汉明向量检索方法,包括以下步骤:
S1,将要查询的汉明向量及所需数量输入到预设数据库中;
具体的,检索时首先要将要查询的汉明向量及所需的最近邻向量的个数输入到预设数据库中,预设数据库获得要查询的汉明向量及所需数量。
其中,所述将要查询的汉明向量及所需数量输入到预设数据库中包括以下步骤:
S101,构建汉明向量数据库,将构建完成的所述汉明向量数据库作为所述预设数据库;
S102,将要查询的汉明向量及所需数量输入到所述预设数据库中。
其中,所述构建汉明向量数据库,将构建完成的所述汉明向量数据库作为所述预设数据库包括以下步骤:
S1011,将数据库的数据类型定义为hmcode,hmcode用于在数据库内高效的支持汉明向量的存储和运算;
S1012,创建若干个哈希索引表,将高维汉明向量均分为若干个低维度的子汉明向量,将所述子汉明向量插入对应的哈希索引表中,其中,每一个所述哈希索引表的第一列为子汉明向量的值,第二列为高维汉明向量的ID值。
具体的,如图7所述,为采用hmcode的128维长度为16的汉明向量具体的空间占用示意图,在大多数数据库内部往往都不能高效的存储高维的汉明向量,比如对于128维的汉明向量往往需要采用一个字符串类型(如‘0000111010101’)或者数组类型(如4维的uint32数组类型)来进行表示,但这样的表示不仅维度定义上不够灵活,同时采用这些方式进行存储,在数据库中的空间占用开销也比较大,因此,将数据库的数据类型定义为hmcode,hmcode用于在数据库内高效的支持汉明向量的存储和运算,hmcode将可变长度数据结构的存储方式进行了重新分配,hmcode的存储方式为,固定头部空间占用4个字节,2个字节的变量来表示hmcode的维度,2个字节的变量来存储hmcode数据部分的长度,剩余的空间用于储存具体的数据部分,这样定义数据结构有利于灵活的定义汉明向量的长度,同时也能减少存储空间的占用,也给计算以及检索带来了方便,实现了将汉明向量数据存储在磁盘中的技术效果。
与传统的multi-index算法通过反转索引表来实现子向量查找不同,在数据库中我们通过哈希表来实现子向量的快速查找,首先创建m个哈希索引表,其中每一个索引表的第一列为子向量的值,第二列为数据集中高维向量的ID值,再插入数据,将数据集中的高维汉明向量均分为m个低维度的子汉明向量,并插入对应的哈希索引表,同时我们在第一列创建哈希索引,便于子向量的快速查询,通过构建m个hash索引表,我们能够快速查询到基于查询子向量枚举出来的候选子向量在数据库中的候选向量ID值。
汉明向量数据库构建完成后,需要将要查询的汉明向量及所需最邻近的向量个数K输入到汉明向量数据库中,所需数量K为所需要的最邻近的向量个数K,K为进行汉明向量检索时人为设定的,K可以为2、3、4、5等数值,一般K大于1。
其中,Multi-index算法是一个基于内存的高效汉明向量KNN检索算法,Multi-index算法将高维向量存储到多个反转索引表中进行相似性查询,Multi-index算法由于其高效以及高recall率被广泛的应用于汉明距离上的近似查询,但是基于内存的算法,并不能很好的应用于数据都存在于磁盘的数据库系统,同时效率上也不够高效,也就不能够高效的满足在数据库系统内部进行汉明向量的存储以及相似性检索的需求。
S2,对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集;
具体的,汉明向量数据库构对输入的高维度汉明向量进行划分,得到若干个低维度的子向量,然后对每个子向量进行批量枚举,生成候选集。
其中,所述对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集包括以下步骤:
S201,对所述汉明向量进行划分,得到若干个子向量;
S202,对每个所述子向量基于预设汉明距离生成候选向量,基于若干个所述子向量生成候选集,其中,将预设汉明距离的所有向量作为候选向量,预设汉明距离为t-1,t为生成候选向量的次数。
具体的,将输入的高维度汉明向量进行划分,划分为n个子向量,其中n为预先设置的,假设高维度的汉明向量的维度为d,则每个子向量的维度为d/n,举例说明,将20维的汉明向量,划分为4个子向量q1,q2,q3,q4,则每个子向量的维度都是5维,通过将高纬度的汉明向量划分为若干个纬度相同的低维度汉明向量,实现来了对高纬度汉明向量的检索。
然后,如图8所示,t为生成候选向量的次数,生成候选向量的次数等于进行步骤S202的次数,对每个子向量批量枚举汉明距离为t-1的候选子向量,与传统的multi-index算法不同t为生成候选向量的次数,第一次生成候选向量时,t-1=0,枚举出来的候选向量仅为本身,第二次生成候选向量时,t为2,t-1=1,第三次生成候选向量时t为3,t-1=2,以此类推,每重复进行一次步骤S202,t=t+1。
S3,对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;
具体的,汉明向量数据库构对候选集中的每个候选子向量进行哈希表查询,哈希表为上述预先创建好的哈希索引表,通过查询得到若干个候选向量ID,统计得到的候选向量ID的总数,候选向量ID为该候选向量在数据库中的位置,可以唯一标识这个向量,类似于每个人的身份证号,可以通过通过候选向量ID找到候选向量,候选向量ID在方便快速检索的同时可减少存储空间。
其中,所述对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量包括以下步骤:
S301,对候选集中的每个候选子向量在对应的哈希索引表中进行查询,得到候选向量ID;
S302,统计查询到的所有候选向量ID数量。
具体的,对候选集中的每个候选子向量在对应的哈希索引表中进行查询,得到若干个候选向量ID,并统计查询到的候选向量的数量,一个候选子向量如果在哈希索引表中查询到对应的一个候选向量ID,则将该查询到的候选向量ID进行标记,并最终统计被标记的候选向量ID的总数,将被标记的候选向量ID的总数作为查询到的所有候选向量ID数量,具体查询过程为,每个候选子向量查询对应的哈希索引表,将每个候选子向量与对应哈希索引表的第一列进行对照,若哈希索引表的第一列中子向量的值与候选子向量相对应,则该子向量的值对应的高维向量的ID值为候选向量ID,将该高维向量的ID值进行标记,将所有标记的高维向量的ID值进行统计,得到标记的高维向量的ID值总数,将标记的高维向量的ID值总数作为查询到的所有候选向量ID数量。
S4,将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量。
具体的,汉明向量数据库构将候选向量ID的数量与预设值相比,得到两种比较结果,第一种比较结果是候选向量ID的数量大于等于预设值,第二种比较结果是候选向量ID的数量小于预设值,其中,预设值与数据库中的向量数量成正比,如果得到第一种比较结果,则返回K个最近邻的向量,所需最邻近的向量个数K是步骤S1输入汉明向量数据库中的。
其中,所述将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量包括:
将所述候选向量ID的数量与预设值相比,得到所述候选向量ID的数量大于等于预设值或所述候选向量ID的数量小于预设值比较结果,若所述候选向量ID的数量大于预设值,则根据所述候选向量ID找到相应的候选向量,计算候选向量与要查询的汉明向量之间的实际汉明距离,对候选向量按照实际汉明距离进行排序,并基于所需数量返回最近邻的向量,其中,预设值与数据库中的向量数量成正比。
得到所述候选向量ID的数量小于预设值比较结果后,重复所述子向量基于汉明距离生成候选向量,基于若干个所述子向量生成候选集,将所述候选向量ID的数量与预设值相比的过程对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量,将所述候选向量ID的数量与预设值相比的过程。
具体的,预设值为汉明向量数据库中的向量总数数量*α,α是预先设定好的,α一般为0.01,若候选向量ID的数量小于汉明向量数据库中的向量总数数量*α,则重复步骤S202、步骤S3及步骤S4,也就是重复对每个所述子向量基于预设汉明距离生成候选向量,基于若干个所述子向量生成候选集;对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量,直到得到所述候选向量ID的数量大于等于预设值比较结果后停止重复,并返回K个最邻近的汉明向量。
具体的,第一次重复步骤S201时生成候选向量的次数为2,因此t-1=1,也就是,对每个子向量批量枚举汉明距离为1的候选子向量,第二次重复步骤S201时生成候选向量的次数为3,以此类推,直到候选向量ID的数量大于等于汉明向量数据库中的向量总数数量乘以α,若候选向量ID的数量大于等于汉明向量数据库中的向量总数数量乘以α,则根据每个候选向量ID找到相应的候选向量,并计算要查询的汉明向量与候选向量们之间的实际汉明距离,然后按照时间汉明距离排序从小到大进行排序,并返回汉明距离最小的前K个向量,所需最邻近的向量个数K是步骤S1输入汉明向量数据库中的,由此实现了在汉明向量数据库中实现高维汉明向量的KNN检索。
如图3所示,基于上述关系型数据库的汉明向量检索方法,本实施例提供了一种关系型数据库的汉明向量检索装置,包括:
数据输入模块1,用于将要查询的汉明向量及所需数量输入到预设数据库中;
划分模块2,用于对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集;
查询模块3,用于对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;
比较模块4,用于将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量。
此外值得说明,本实施例提供的基于关系型数据库的汉明向量检索装置的工作过程与上述关系型数据库的汉明向量检索方法的工作过程相同,具体可以参照关系型数据库的汉明向量检索方法的工作过程,这里就不再赘述。
基于上述关系型数据库的汉明向量检索方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的关系型数据库的汉明向量检索方法中的步骤。
如图2所示,基于上述关系型数据库的汉明向量检索方法,本申请还提供了一种终端设备,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
相较于现有技术本发明的关系型数据库的汉明向量检索方法包括,将要查询的汉明向量及所需数量输入到预设数据库中;对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集;对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量,本发明采用上述方法后实现了高效的高维度汉明向量的检索,且通过构建汉明向量数据库实现了对高维度汉明向量的存储和计算。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种关系型数据库的汉明向量检索方法,其特征在于,所述方法包括:
将要查询的汉明向量及所需数量输入到预设数据库中;
对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集;
对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;
将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量。
2.根据权利要求1所述的一种关系型数据库的汉明向量检索方法,其特征在于,所述将要查询的汉明向量及所需数量输入到预设数据库中包括:
构建汉明向量数据库,将构建完成的所述汉明向量数据库作为所述预设数据库;
将要查询的汉明向量及所需数量输入到所述预设数据库中。
3.根据权利要求2所述的一种关系型数据库的汉明向量检索方法,其特征在于,所述构建汉明向量数据库,将构建完成的所述汉明向量数据库作为所述预设数据库包括:
将数据库的数据类型定义为hmcode,hmcode用于在数据库内高效的支持汉明向量的存储和运算;
创建若干个哈希索引表,将高维汉明向量均分为若干个低维度的子汉明向量,将所述子汉明向量插入对应的哈希索引表中,其中,每一个所述哈希索引表的第一列为子汉明向量的值,第二列为高维汉明向量的ID值。
4.根据权利要求3所述的一种关系型数据库的汉明向量检索方法,其特征在于,所述对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集包括:
对所述汉明向量进行划分,得到若干个子向量;
对每个所述子向量基于预设汉明距离生成候选向量,基于若干个所述子向量生成候选集,其中,将预设汉明距离的所有向量作为候选向量,预设汉明距离为t-1,t为生成候选向量的次数。
5.根据权利要求4所述的一种关系型数据库的汉明向量检索方法,其特征在于,所述对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量包括:
对候选集中的每个候选子向量在对应的哈希索引表中进行查询,得到候选向量ID;
统计查询到的所有候选向量ID数量。
6.根据权利要求5所述的一种关系型数据库的汉明向量检索方法,其特征在于,所述将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量包括:
将所述候选向量ID的数量与预设值相比,得到所述候选向量ID的数量大于等于预设值或所述候选向量ID的数量小于预设值比较结果,若所述候选向量ID的数量大于预设值,则根据所述候选向量ID找到相应的候选向量,计算候选向量与要查询的汉明向量之间的实际汉明距离,对候选向量按照实际汉明距离进行排序,并基于所需数量返回最近邻的向量,其中,预设值与数据库中的向量数量成正比。
7.根据权利要求5所述的一种关系型数据库的汉明向量检索方法,其特征在于,得到所述候选向量ID的数量小于预设值比较结果后,重复所述子向量基于汉明距离生成候选向量,基于若干个所述子向量生成候选集,将所述候选向量ID的数量与预设值相比的过程对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量,将所述候选向量ID的数量与预设值相比的过程。
8.一种关系型数据库的汉明向量检索装置,其特征在于,包括:
数据输入模块,用于将要查询的汉明向量及所需数量输入到预设数据库中;
划分模块,用于对所述汉明向量进行划分,得到若干个子向量,基于若干个所述子向量生成候选集;
查询模块,用于对所述候选集中的每个候选子向量进行哈希表查询,得到候选向量ID,并统计所述候选向量ID的数量;
比较模块,用于将所述候选向量ID的数量与预设值相比,得到比较结果,根据所述比较结果选择返回最近邻的所述所需数量的向量。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任意一项所述的关系型数据库的汉明向量检索方法中的步骤。
10.一种终端设备,其特征在于,包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1-7任意一项所述的关系型数据库的汉明向量检索方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210783496.9A CN115374104A (zh) | 2022-07-05 | 2022-07-05 | 关系型数据库的汉明向量检索方法、装置、介质及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210783496.9A CN115374104A (zh) | 2022-07-05 | 2022-07-05 | 关系型数据库的汉明向量检索方法、装置、介质及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115374104A true CN115374104A (zh) | 2022-11-22 |
Family
ID=84061382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210783496.9A Pending CN115374104A (zh) | 2022-07-05 | 2022-07-05 | 关系型数据库的汉明向量检索方法、装置、介质及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115374104A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610848A (zh) * | 2023-07-17 | 2023-08-18 | 上海爱可生信息技术股份有限公司 | 基于npu优化的向量数据库检索方法及可读存储介质 |
-
2022
- 2022-07-05 CN CN202210783496.9A patent/CN115374104A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116610848A (zh) * | 2023-07-17 | 2023-08-18 | 上海爱可生信息技术股份有限公司 | 基于npu优化的向量数据库检索方法及可读存储介质 |
CN116610848B (zh) * | 2023-07-17 | 2023-10-20 | 上海爱可生信息技术股份有限公司 | 基于npu优化的向量数据库检索方法及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sakurai et al. | The A-tree: An index structure for high-dimensional spaces using relative approximation | |
Wu et al. | Using bitmap index for interactive exploration of large datasets | |
Bollobas et al. | Time-series similarity problems and well-separated geometric sets | |
CN100557605C (zh) | 类型路径索引 | |
Wu et al. | Kv-match: A subsequence matching approach supporting normalization and time warping | |
Xu et al. | An adaptive algorithm for online time series segmentation with error bound guarantee | |
US11238106B2 (en) | Fingerprints for compressed columnar data search | |
Xin et al. | Computing iceberg cubes by top-down and bottom-up integration: The starcubing approach | |
Singh et al. | Nearest keyword set search in multi-dimensional datasets | |
US9600578B1 (en) | Inverted index and inverted list process for storing and retrieving information | |
CN115374104A (zh) | 关系型数据库的汉明向量检索方法、装置、介质及终端 | |
Mohamed et al. | Quantized ranking for permutation-based indexing | |
JP2010277329A (ja) | 近傍探索装置 | |
Singh et al. | Simp: accurate and efficient near neighbor search in high dimensional spaces | |
KR100786675B1 (ko) | 멀티미디어 데이터베이스내에서 계층적 비트맵 색인을기반으로 한 고차원 벡터 집합에서의 데이터 인덱싱 및유사 벡터 검색 방법 | |
CN115809248A (zh) | 数据查询方法和装置以及存储介质 | |
Skopal et al. | Answering Metric Skyline Queries by PM-tree. | |
Mohamed et al. | Quantized ranking for permutation-based indexing | |
Hacid et al. | An effective method for locally neighborhood graphs updating | |
Chan et al. | Fully Dynamic $ k $ k-Center Clustering With Improved Memory Efficiency | |
Terry et al. | Indexing method for multidimensional vector data | |
Li et al. | A locality-aware similar information searching scheme | |
Agarwal et al. | I/O-efficient structures for orthogonal range-max and stabbing-max queries | |
WO2017095421A1 (en) | Automatic selection of neighbor lists to be incrementally updated | |
Chauhan et al. | Finding similar items using lsh and bloom filter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |