CN117573944B - 数据检索方法、装置、设备及存储介质 - Google Patents
数据检索方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117573944B CN117573944B CN202410065530.8A CN202410065530A CN117573944B CN 117573944 B CN117573944 B CN 117573944B CN 202410065530 A CN202410065530 A CN 202410065530A CN 117573944 B CN117573944 B CN 117573944B
- Authority
- CN
- China
- Prior art keywords
- data
- range
- dimension
- searching
- input data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000004364 calculation method Methods 0.000 claims description 21
- 238000010276 construction Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据检索技术领域,公开了一种数据检索方法、装置、设备及存储介质,该方法包括:响应于接收到的数据检索指令,构建数据结构;基于输入数据对所述数据结构进行检索,得到目标编号集合;基于所述目标编号集合确定所述输入数据对应的数据集合。本发明通过根据输入数据对数据结构进行检索得到的目标编号集合,从而确定输入数据对应的数据集合,解决了当前数据检索方式检索内容单一、适用范围小的问题,数据检索内容丰富、适用范围广,提高了数据检索速度。
Description
技术领域
本发明涉及数据检索技术领域,尤其涉及一种数据检索方法、装置、设备及存储介质。
背景技术
在数据检索范畴,目前较前沿的算法大多数基于各类数组、树等数据结构实现。其中,k-d树(k-dimensional tree)属于二叉空间分割树(binary sPace Partitioningtree),常用于大规模的高维度数据空间进行最近邻查找(nearest neighbor)和近似最近邻查找(aPProximate nearest neighbor)。k-d树在构造时需选择轴元(Pivot)将数据按一定规则排成树,每插入或删除一个数据就相当于进行一次数据检索。而若使用k-d树处理多个数据集,由于树结构遵循严格的“左小右大”,当不同数据集里存在重叠数据时,需要采取其他手段特殊处理。另外,k-d树结构本身支持单点搜索,但不支持范围搜索,需要经其他数据结构和算法包装。
发明内容
本发明的主要目的在于提供一种数据检索方法、装置、设备及存储介质,旨在解决现有技术当前数据检索方式检索内容单一、适用范围小的技术问题。
为实现上述目的,本发明提供了一种数据检索方法,所述方法包括以下步骤:
响应于接收到的数据检索指令,构建数据结构;
基于输入数据对所述数据结构进行检索,得到目标编号集合;
基于所述目标编号集合确定所述输入数据对应的数据集合。
可选地,所述构建数据结构,包括:
基于预设维度确定初始数据集合,其中,所述初始数据集合中各个数据的存在对应编号;
计算所述初始数据集合的包络范围;
基于所述包络范围对所述初始数据集合中各个数据进行投影,得到初始编号集合;
基于预设规则对所述初始编号集合进行排序,并构建数据结构。
可选地,所述基于输入数据对所述数据结构进行检索,得到编号集合,包括:
获取所述输入数据的类型;
基于所述输入数据的类型确定检索方式;
基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到编号集合。
可选地,所述基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到编号集合,包括:
在所述检索方式为单点检索时,判断所述输入数据是否属于包络范围;
在所述输入数据属于所述包络范围时,搜索所述输入数据在不同维度所属的范围或点集的编号集合,得到目标编号集合。
可选地,所述搜索所述输入数据在不同维度所属的范围或点集的编号集合,得到目标编号集合,包括:
搜索所述输入数据在当前维度所属的范围或点集的编号集合,得到当前编号集合;
搜索所述输入数据在所述当前维度的下一维度所属的范围或点集的编号集合,得到下一编号集合;
确定所述当前编号集合和所述下一编号集合的当前交集;
搜索所述输入数据在所述当前维度的下下一维度所属的范围或点集的编号集合,得到下下一编号集合;
根据所述当前交集和所述下下一编号集合更新所述当前交集,将所述下下一维度作为当前维度,并返回执行所述搜索所述输入数据在下一维度所属的范围或点集的编号集合,得到下一编号集合;
判断所述当前维度是否达到维度阈值;
若达到,则将所述当前交集作为目标编号集合。
可选地,所述基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到编号集合,还包括:
在所述检索方式为范围检索时,根据所述输入数据与包络范围进行计算,得到相交范围;
分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合;
判断相交范围内的点是否搜索完成;
若未搜索完成,则执行所述分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合的步骤;
若搜索完成,则基于所述第一并集集合确定目标编号集。
可选地,所述基于所述第一并集集合确定目标编号集合,包括:
判断所述当前维度的下一维度是否达到维度阈值;
若达到,则将所述第一并集集合作为目标编号集合;
若未达到,则分别搜索所述相交范围内的点在所述下一维度所属的范围或点集的编号集合并进行并集计算,得到第二并集集合;
基于所述第一并集集合和所述第二并集集合进行交集计算,并将所述当前维度的下下一维度作为当前维度,直至所述当前维度达到维度阈值,得到目标编号集合。
此外,为实现上述目的,本发明还提出一种数据检索装置,所述数据检索装置包括:
构建模块,用于响应于接收到的数据检索指令,构建数据结构;
检索模块,用于基于输入数据对所述数据结构进行检索,得到目标编号集合;
确定模块,用于基于所述目标编号集合确定所述输入数据对应的数据集合。
此外,为实现上述目的,本发明还提出一种数据检索设备,所述数据检索设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据检索程序,所述数据检索程序配置为实现如上文所述的数据检索方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据检索程序,所述数据检索程序被处理器执行时实现如上文所述的数据检索方法的步骤。
本发明通过响应于接收到的数据检索指令,构建数据结构;基于输入数据对所述数据结构进行检索,得到目标编号集合;基于所述目标编号集合确定所述输入数据对应的数据集合。通过上述方式,通过根据输入数据对数据结构进行检索得到的目标编号集合,从而确定输入数据对应的数据集合,解决了当前数据检索方式检索内容单一、适用范围小的问题,数据检索内容丰富、适用范围广,提高了数据检索速度。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的数据检索设备的结构示意图;
图2为本发明数据检索方法第一实施例的流程示意图;
图3为本发明数据检索方法一实施例的二维范围示意图;
图4为本发明数据检索方法一实施例的主要的数据结构示意图;
图5为本发明数据检索方法第二实施例的流程示意图;
图6为本发明数据检索方法一实施例的搜索单点所属数据集流程示意图;
图7为本发明数据检索方法一实施例的搜索范围所属数据集流程示意图;
图8为本发明数据检索装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的数据检索设备结构示意图。
如图1所示,该数据检索设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(DisPlay)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对数据检索设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据检索程序。
在图1所示的数据检索设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明数据检索设备中的处理器1001、存储器1005可以设置在数据检索设备中,所述数据检索设备通过处理器1001调用存储器1005中存储的数据检索程序,并执行本发明实施例提供的数据检索方法。
本发明实施例提供了一种数据检索方法,参照图2,图2为本发明数据检索方法第一实施例的流程示意图。
本实施例中,所述数据检索方法包括以下步骤:
步骤S10:响应于接收到的数据检索指令,构建数据结构。
需要说明的是,本实施例的执行主体为数据检索设备,还可以为功能相同或相似的其他设备,本实施例对此不作具体限制,本实施例以数据检索设备为例进行说明。
可以理解的是,在进行数据检索时,接收到用户输入的数据检索指令后,进行数据结构组装,包括初始化数据结构、读入数据、计算范围、投影等操作,本实施例对此不作具体限制。
进一步地,所述构建数据结构,包括:基于预设维度确定初始数据集合,其中,所述初始数据集合中各个数据的存在对应编号;计算所述初始数据集合的包络范围;基于所述包络范围对所述初始数据集合中各个数据进行投影,得到初始编号集合;基于预设规则对所述初始编号集合进行排序,并构建数据结构。
需要说明的是,根据数据的特性,确定数据集的维度,每个维度都代表数据的一个特征或属性。确定维度k,从数据源中读入一组维度为k的范围或点集,并为每个范围或点集分配一个唯一的编号,其中,维度为k的范围或点集即为初始数据集,每个范围或点集即为初始数据集中的数据,记录每个范围或点集的编号以使初始数据集合中各个数据的存在对应编号。
可以理解的是,计算该组维度为k的范围或点集的包络范围,其中,包络范围是指可以包含所有范围或点集的最小范围。
在具体实现中,将每个范围或点集分别投影到包络范围每个维度的每个位置上,即每个维度d(d=0,1,...,k-1)对应一个容器Vd,分别保存投影到d维度上每个位置的范围或点集的编号集合,即可得到初始编号集合,将初始编号集合按一定规则排序后,完成主要数据结构组装。
如图3所示,图3为二维范围示意图,维度k=2时,在二维逻辑坐标系下的格点中d0、d1分别表示第一、第二个维度的位置递增方向,矩阵框1、2、3、4的区域分别为r0、r1、r2、r3四个组装在数据结构中的范围,最大矩形框所划区域表示这四个范围的包络范围。
如图4所示,图4为主要的数据结构示意图,图中列出d0、d1维度的各个位置投影到的范围r的编号集合,例如,点P1(6,1)在d0维度上投影到的范围编号集合为VP1d0={1,2,3},在d1维度上投影到的范围编号集合为VP1d1={0,1,3},二者交集为VP1d0∩VP1d1={1,3},即点P1(6,1)同时属于范围r1和r3,同理,点P2(6,2)同时属于范围r1、r2、r3。
步骤S20:基于输入数据对所述数据结构进行检索,得到目标编号集合。
需要说明的是,输入数据包括任意点和任意范围,根据输入数据确定对应的搜索方式进行搜索,得到目标编号集合。
可以理解的是,本实施例中的数据结构除单点搜索以外,支持块状范围搜索,即找到块状范围所覆盖到的数据集,且无需将所有数据集的数据排成树,因此允许不同数据集中存在重叠的数据点。基于此,所述数据结构可应用于数据库检索、不同数据集上重合点通信等相关场景。
步骤S30:基于所述目标编号集合确定所述输入数据对应的数据集合。
需要说明的是,根据目标编号集合中各个编号对应的数据构成数据集合,即为任意点或任意范围对应的数据集合。
本实施例通过响应于接收到的数据检索指令,构建数据结构;基于输入数据对所述数据结构进行检索,得到目标编号集合;基于所述目标编号集合确定所述输入数据对应的数据集合。通过上述方式,通过根据输入数据对数据结构进行检索得到的目标编号集合,从而确定输入数据对应的数据集合,解决了当前数据检索方式检索内容单一、适用范围小的问题,数据检索内容丰富、适用范围广,提高了数据检索速度。
参考图5,图5为本发明数据检索方法第二实施例的流程示意图。
基于上述第一实施例,本实施例数据检索方法中所述步骤S20,包括:
步骤S201:获取所述输入数据的类型。
需要说明的是,输入数据包括任意点和任意范围,即搜索任意一点P所属范围或点集的编号集合和搜索任意一范围R所覆盖范围或点集的编号集合。
步骤S202:基于所述输入数据的类型确定检索方式。
需要说明的是,在输入数据为任意一点P时,检索方式为单点检索;在输入数据为任意一范围R时,检索方式为范围检索。
可以理解的是,对于单点检索,如果一个点P属于某个范围或点集r,在每个维度方向经过P点的直线一定都穿过r,即点P在每个维度上的投影位置所对应的范围编号集合VPd里一定都存在r的编号。
值得说明的是,对于范围检索,如果一个范围R覆盖到某个范围或点集r,这个范围R中一定至少有一个点属于这个范围或点集。
步骤S203:基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到编号集合。
需要说明的是,根据输入数据通过单点检索或范围搜索方式进行检索,可对高维度、大规模的顺序数据进行检索,支持单点检索和块状区域搜索,允许不同数据集存在重叠数据,
可以理解的是,单点检索和范围搜索均为以计算交集和计算并集为主要循环流程,因此,时间复杂度也主要由计算交集和并集时所使用的检索方式决定。检索算法基于二分查找法(Binary Search),时间复杂度为O(logN),N表示数据集的大小。因此,在支持更多检索场景的同时,使用本实施例中的数据结构进行检索可保持O(logN)的时间复杂度,以提高搜索效率。
进一步地,所述基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到编号集合,包括:在所述检索方式为单点检索时,判断所述输入数据是否属于包络范围;在所述输入数据属于所述包络范围时,搜索所述输入数据在不同维度所属的范围或点集的编号集合,得到目标编号集合。
需要说明的是,假设数据结构在k维空间,在输入数据为任意点时,即搜索任意一点P所属范围或点集的编号集合时,检索方式为单点检索,判断点P是否属于包络范围,若不属于,则返回空集合,若属于则继续搜索,搜索点P在不同维度所属的范围或点集的编号集合,从而确定目标编号集合。
进一步地,所述搜索所述输入数据在不同维度所属的范围或点集的编号集合,得到目标编号集合,包括:搜索所述输入数据在当前维度所属的范围或点集的编号集合,得到当前编号集合;搜索所述输入数据在所述当前维度的下一维度所属的范围或点集的编号集合,得到下一编号集合;确定所述当前编号集合和所述下一编号集合的当前交集;搜索所述输入数据在所述当前维度的下下一维度所属的范围或点集的编号集合,得到下下一编号集合;根据所述当前交集和所述下下一编号集合更新所述当前交集,将所述下下一维度作为当前维度,并返回执行所述搜索所述输入数据在下一维度所属的范围或点集的编号集合,得到下一编号集合;判断所述当前维度是否达到维度阈值;若达到,则将所述当前交集作为目标编号集合。
需要说明的是,取出点P在维度d=0所属的范围或点集的编号集合VP0,其中,维度d=0即为当前维度,VP0即为当前编号集合;取出点P在维度d=1所属的范围或点集的编号集合VP1,其中,维度d=1即为当前维度的下一维度,VP1即为下一编号集合;确定当前编号集合和下一编号集合的当前交集,即计算VP0和VP1两个编号集合的交集VP0∩VP1,即为当前交集;取出点P在维度d=2所属的范围或点集的编号集合VP2,其中,维度d=2即为当前维度的下下一维度,VP2即为下下一编号集合;根据当前交集和下下一编号集合更新当前交集,即计算VP2和当前交集VP0∩VP1的交集,作为新的当前交集即VP0∩VP1∩VP2;取点P在维度d上对应的编号集合VPd,将VPd与先前在更低维度得到的交集再取交集,直至完成所有维度(d=k-1),获得点P所在的范围或点集的编号集合VP即为目标编号集合。
可以理解的是,目标编号集合VP,如下式1:
(式1)
在式1中,VP为点P所在的范围或点集的编号集合,即目标编号集合,VPd为P在维度d上对应的编号集合,d为维度,d=0,1,...,k-1,k为数据结构的维度,VP0、VP1、VP2、VP(k-1)分别为维度0、1、2、k-1维度上对应的编号集合。
如图6所示,图6为搜索单点所属数据集流程示意图,输入点P,判断点P是否属于包络范围;若否,则返回空集合;若是,则继续搜索;取出点P在维度d=0所属的范围或点集的编号集合VP0;取出点P在维度d=1所属的范围或点集的编号集合VP1,判断是否满足d<k,若否,则返回点P所在的范围或点集的编号集合VP,若是,则取出取点P在维度d上对应的编号集合VPd;计算交集VP=VP∩VPd,更新维度d,并重新判断是否满足d<k。
进一步地,所述基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到编号集合,还包括:在所述检索方式为范围检索时,根据所述输入数据与包络范围进行计算,得到相交范围;分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合;判断相交范围内的点是否搜索完成;若未搜索完成,则执行所述分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合的步骤;若搜索完成,则基于所述第一并集集合确定目标编号集。
需要说明的是,在输入数据为任意范围时,即搜索任意一范围R所属范围或点集的编号集合时,检索方式为范围检索,计算范围R与包络范围的相交范围RI。
可以理解的是,计算相交范围RI在维度d=0上的点所属的范围集合VR0,其中d=0即为当前维度,如下式2:
(式2)
在式2中,VR0为相交范围RI在维度d=0上的点所属的范围集合,符号∪表示求并集,NR0表示范围R在d=0维度上的长度(点数量),VPi0表示范围R内的点在d=0维度所属的范围或点集的编号集合。
在具体实现中,取出R内第一个点即i=0,Pi=P0在维度d=0所属范围或点集的编号集合VP00,则点P在维度d=0上的点所属的范围集合VP0=VP00,对i进行更新,取出R内第二个点即i=1,Pi=P1在维度d=0所属范围或点集的编号集合VP10,判断相交范围内的点是否搜索完成,即判断是否满足i<NRd,若未搜索完成,则取出VPi0,计算并集,得到并集集合VP0=VP0∪VPi0,对i进行更新,并重新判断是否满足i<NRd;若搜索完成,则根据计算出的并集集合VP0确定范围R所覆盖到的范围或点集的编号集合VR,即目标编号集合。
进一步地,所述基于所述第一并集集合确定目标编号集合,包括:判断所述当前维度的下一维度是否达到维度阈值;若达到,则将所述第一并集集合作为目标编号集合;若未达到,则分别搜索所述相交范围内的点在所述下一维度所属的范围或点集的编号集合并进行并集计算,得到第二并集集合;基于所述第一并集集合和所述第二并集集合进行交集计算,并将所述当前维度的下下一维度作为当前维度,直至所述当前维度达到维度阈值,得到目标编号集合。
需要说明的是,对维度d进行更新,得到当前维度的下一维度d=1,判断当前维度的下一维度是否达到维度阈值,即判断是否满足d<k,若不满足,则将VP0作为目标编号集合VR返回;若满足,则将i进行重置i=0,判断下一维度是否满足i<NRd;若不满足,则计算相交范围RI在维度d上的点所属的范围集合VRd,根据VRd进行交集计算VR=VR∩VRd,对维度进行更新,并重新判断是否达到维度阈值;若满足,则计算并集VRd=VRd∪VPid。
在具体实现中,计算相交范围RI在维度d=0上的点所属的范围集合VR0;计算相交范围RI在维度d=1上的点所属的范围集合VR1;计算VR0和VR1的交集VR0∩VR1;计算相交范围RI在维度d=2上的点所属的范围集合VR2;计算VR2和VR0∩VR1的交集,得到VR0∩VR1∩VR2;计算相交范围RI在维度d上的点所落的范围编号集合VRd,将VRd与先前在更低维度得到的范围集合的交集再取交集,直至完成所有维度,获得范围R所覆盖到的范围或点集的编号集合VR,即为目标编号集合,VR如下式3:
(式3)
在式3中,VR为范围R所覆盖到的范围或点集的编号集合,即为目标编号集合,VRd为相交范围RI在维度d上的点所属的范围集合,d为维度,d=0,1,...,k-1,k为数据结构的维度,VR0、VR1、VR2、VR(k-1)分别为相交范围RI在维度0、1、2、k-1维度上所属的范围集合,其中,VRd如下式4:
(式4)
在式4中,VRd为相交范围RI在维度d上的点所属的范围集合,i为相交范围RI内的第i个点,i=0,1,...,NRd-1,NRd表示范围R在维度d上的长度(点数量),VPid表示范围R内的点Pi在维度d所属的范围或点集的编号集合。
如图7所示,图7为搜索范围所属数据集流程示意图,输入范围R,取出R内第一个点Pi=P0在维度d=0所属范围或点集的编号集合VP00;VP0=VP00;对i进行更新,取出R内第二个点即i=1;判断是否满足i<NRd,若满足,则取出计算VPi0,计算并集,得到并集集合VP0=VP0∪VPi0,对i进行更新,并重新判断是否满足i<NRd;若不满足,则VR=VP0;维度d=1,判断是否满足d<k,若不满足,则返回VR返回;若满足,则将i进行重置i=0,判断维度d=1是否满足i<NRd;若不满足,则计算相交范围RI在维度d上的点所属的范围集合VRd,根据VRd进行交集计算VR=VR∩VRd,对维度进行更新,并重新判断是否达到维度阈值;若满足,则计算并集VRd=VRd∪VPid。
本实施例通过获取所述输入数据的类型;基于所述输入数据的类型确定检索方式;基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到编号集合。通过上述方式,根据输入数据对应的检索方式对数据结构进行检索,适用于多维度、大数据量场景,提高搜索效率。
参照图8,图8为本发明数据检索装置第一实施例的结构框图。
如图8所示,本发明实施例提出的数据检索装置包括:
构建模块10,用于响应于接收到的数据检索指令,构建数据结构。
检索模块20,用于基于输入数据对所述数据结构进行检索,得到目标编号集合。
确定模块30,用于基于所述目标编号集合确定所述输入数据对应的数据集合。
本实施例通过响应于接收到的数据检索指令,构建数据结构;基于输入数据对所述数据结构进行检索,得到目标编号集合;基于所述目标编号集合确定所述输入数据对应的数据集合。通过上述方式,通过根据输入数据对数据结构进行检索得到的目标编号集合,从而确定输入数据对应的数据集合,解决了当前数据检索方式检索内容单一、适用范围小的问题,数据检索内容丰富、适用范围广,提高了数据检索速度。
在一实施例中,所述构建模块10,还用于响应于接收到的数据检索指令,构建数据结构;基于输入数据对所述数据结构进行检索,得到目标编号集合;基于所述目标编号集合确定所述输入数据对应的数据集合。
在一实施例中,所述检索模块20,还用于获取所述输入数据的类型;基于所述输入数据的类型确定检索方式;基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到编号集合。
在一实施例中,所述检索模块20,还用于在所述检索方式为单点检索时,判断所述输入数据是否属于包络范围;在所述输入数据属于所述包络范围时,搜索所述输入数据在不同维度所属的范围或点集的编号集合,得到目标编号集合。
在一实施例中,所述检索模块20,还用于搜索所述输入数据在当前维度所属的范围或点集的编号集合,得到当前编号集合;搜索所述输入数据在所述当前维度的下一维度所属的范围或点集的编号集合,得到下一编号集合;确定所述当前编号集合和所述下一编号集合的当前交集;搜索所述输入数据在所述当前维度的下下一维度所属的范围或点集的编号集合,得到下下一编号集合;根据所述当前交集和所述下下一编号集合更新所述当前交集,将所述下下一维度作为当前维度,并返回执行所述搜索所述输入数据在下一维度所属的范围或点集的编号集合,得到下一编号集合;判断所述当前维度是否达到维度阈值;若达到,则将所述当前交集作为目标编号集合。
在一实施例中,所述检索模块20,还用于在所述检索方式为范围检索时,根据所述输入数据与包络范围进行计算,得到相交范围;分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合;判断相交范围内的点是否搜索完成;若未搜索完成,则执行所述分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合的步骤;若搜索完成,则基于所述第一并集集合确定目标编号集。
在一实施例中,所述检索模块20,还用于判断所述当前维度的下一维度是否达到维度阈值;若达到,则将所述第一并集集合作为目标编号集合;若未达到,则分别搜索所述相交范围内的点在所述下一维度所属的范围或点集的编号集合并进行并集计算,得到第二并集集合;基于所述第一并集集合和所述第二并集集合进行交集计算,并将所述当前维度的下下一维度作为当前维度,直至所述当前维度达到维度阈值,得到目标编号集合。
此外,为实现上述目的,本发明还提出一种数据检索设备,所述数据检索设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据检索程序,所述数据检索程序配置为实现如上文所述的数据检索方法的步骤。
由于本数据检索设备采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据检索程序,所述数据检索程序被处理器执行时实现如上文所述的数据检索方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据检索方法,此处不再赘述。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光 盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种数据检索方法,其特征在于,所述方法包括:
响应于接收到的数据检索指令,构建数据结构;
基于输入数据对所述数据结构进行检索,得到目标编号集合;
基于所述目标编号集合确定所述输入数据对应的数据集合;
所述构建数据结构,包括:
基于预设维度确定初始数据集合,其中,所述初始数据集合中的各个数据存在对应编号;
计算所述初始数据集合的包络范围;
基于所述包络范围对所述初始数据集合中各个数据进行投影,得到初始编号集合;
基于预设规则对所述初始编号集合进行排序,并构建数据结构;
所述基于输入数据对所述数据结构进行检索,得到目标编号集合,包括:
获取所述输入数据的类型;
基于所述输入数据的类型确定检索方式;
基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到目标编号集合;
所述基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到目标编号集合,包括:
在所述检索方式为范围检索时,根据所述输入数据与包络范围进行计算,得到相交范围;
分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合;
判断相交范围内的点是否搜索完成;
若未搜索完成,则执行所述分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合的步骤;
若搜索完成,则基于所述第一并集集合确定目标编号集合。
2.如权利要求1所述的方法,其特征在于,所述基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到目标编号集合,还包括:
在所述检索方式为单点检索时,判断所述输入数据是否属于包络范围;
在所述输入数据属于所述包络范围时,搜索所述输入数据在不同维度所属的范围或点集的编号集合,得到目标编号集合。
3.如权利要求2所述的方法,其特征在于,所述搜索所述输入数据在不同维度所属的范围或点集的编号集合,得到目标编号集合,包括:
搜索所述输入数据在当前维度所属的范围或点集的编号集合,得到当前编号集合;
搜索所述输入数据在所述当前维度的下一维度所属的范围或点集的编号集合,得到下一编号集合;
确定所述当前编号集合和所述下一编号集合的当前交集;
搜索所述输入数据在所述当前维度的下下一维度所属的范围或点集的编号集合,得到下下一编号集合;
根据所述当前交集和所述下下一编号集合更新所述当前交集,将所述下下一维度作为当前维度,并返回执行所述搜索所述输入数据在下一维度所属的范围或点集的编号集合,得到下一编号集合;
判断所述当前维度是否达到维度阈值;
若达到,则将所述当前交集作为目标编号集合。
4.如权利要求1所述的方法,其特征在于,所述基于所述第一并集集合确定目标编号集合,包括:
判断所述当前维度的下一维度是否达到维度阈值;
若达到,则将所述第一并集集合作为目标编号集合;
若未达到,则分别搜索所述相交范围内的点在所述下一维度所属的范围或点集的编号集合并进行并集计算,得到第二并集集合;
基于所述第一并集集合和所述第二并集集合进行交集计算,并将所述当前维度的下下一维度作为当前维度,直至所述当前维度达到维度阈值,得到目标编号集合。
5.一种数据检索装置,其特征在于,所述数据检索装置包括:
构建模块,用于响应于接收到的数据检索指令,构建数据结构;
检索模块,用于基于输入数据对所述数据结构进行检索,得到目标编号集合;
确定模块,用于基于所述目标编号集合确定所述输入数据对应的数据集合;
所述构建模块,还用于基于预设维度确定初始数据集合,其中,所述初始数据集合中的各个数据存在对应编号;计算所述初始数据集合的包络范围;基于所述包络范围对所述初始数据集合中各个数据进行投影,得到初始编号集合;基于预设规则对所述初始编号集合进行排序,并构建数据结构;
所述检索模块,还用于获取所述输入数据的类型;基于所述输入数据的类型确定检索方式;基于所述输入数据通过所述检索方式对所述数据结构进行检索,得到目标编号集合;
所述检索模块,还用于在所述检索方式为范围检索时,根据所述输入数据与包络范围进行计算,得到相交范围;分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合;判断相交范围内的点是否搜索完成;若未搜索完成,则执行所述分别搜索所述相交范围内的点在当前维度所属的范围或点集的编号集合并进行并集计算,得到第一并集集合的步骤;若搜索完成,则基于所述第一并集集合确定目标编号集合。
6.一种数据检索设备,其特征在于,所述数据检索设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据检索程序,所述数据检索程序配置为实现如权利要求1至4中任一项所述的数据检索方法。
7.一种存储介质,其特征在于,所述存储介质上存储有数据检索程序,所述数据检索程序被处理器执行时实现如权利要求1至4中任一项所述的数据检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410065530.8A CN117573944B (zh) | 2024-01-17 | 2024-01-17 | 数据检索方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410065530.8A CN117573944B (zh) | 2024-01-17 | 2024-01-17 | 数据检索方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117573944A CN117573944A (zh) | 2024-02-20 |
CN117573944B true CN117573944B (zh) | 2024-04-02 |
Family
ID=89888585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410065530.8A Active CN117573944B (zh) | 2024-01-17 | 2024-01-17 | 数据检索方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573944B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299101A (zh) * | 2018-10-15 | 2019-02-01 | 上海达梦数据库有限公司 | 数据检索方法、装置、服务器和存储介质 |
CN113254451A (zh) * | 2021-06-01 | 2021-08-13 | 北京城市网邻信息技术有限公司 | 一种数据索引构建方法、装置、电子设备及存储介质 |
CN113434557A (zh) * | 2021-08-26 | 2021-09-24 | 苏州浪潮智能科技有限公司 | 一种标签数据的范围查询方法、装置、设备及存储介质 |
CN115905468A (zh) * | 2022-11-10 | 2023-04-04 | 索意(浙江)信息技术有限公司 | 检索方法、装置、计算机设备及存储介质 |
-
2024
- 2024-01-17 CN CN202410065530.8A patent/CN117573944B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299101A (zh) * | 2018-10-15 | 2019-02-01 | 上海达梦数据库有限公司 | 数据检索方法、装置、服务器和存储介质 |
CN113254451A (zh) * | 2021-06-01 | 2021-08-13 | 北京城市网邻信息技术有限公司 | 一种数据索引构建方法、装置、电子设备及存储介质 |
CN113434557A (zh) * | 2021-08-26 | 2021-09-24 | 苏州浪潮智能科技有限公司 | 一种标签数据的范围查询方法、装置、设备及存储介质 |
CN115905468A (zh) * | 2022-11-10 | 2023-04-04 | 索意(浙江)信息技术有限公司 | 检索方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117573944A (zh) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Benetis et al. | Nearest and reverse nearest neighbor queries for moving objects | |
US8645380B2 (en) | Optimized KD-tree for scalable search | |
CN108388642B (zh) | 一种子图查询方法、装置及计算机可读存储介质 | |
JP6352958B2 (ja) | グラフインデックス探索装置及びグラフインデックス探索装置の動作方法 | |
CN111460234B (zh) | 图查询方法、装置、电子设备及计算机可读存储介质 | |
US20130124502A1 (en) | Method and apparatus for facilitating answering a query on a database | |
CN110888880A (zh) | 基于空间索引的邻近分析方法、装置、设备及介质 | |
EP4272087A1 (en) | Automated linear clustering recommendation for database zone maps | |
WO2024159943A1 (zh) | 图纸表格区域检测方法、装置、存储介质和电子设备 | |
CN117573944B (zh) | 数据检索方法、装置、设备及存储介质 | |
CN114049463A (zh) | 一种二叉树的数据网格化、网格点数据的获取方法及装置 | |
JP2010277329A (ja) | 近傍探索装置 | |
CN111507430B (zh) | 基于矩阵乘法的特征编码方法、装置、设备及介质 | |
CN113034515A (zh) | 基于包围盒树的多边形裁剪方法、电子设备及存储介质 | |
JP4440246B2 (ja) | 空間インデックス方法 | |
JP2000099540A (ja) | 多次元データベース管理方法 | |
JP2003157267A (ja) | 核酸塩基配列のアセンブル方法及びアセンブル装置 | |
JP5555238B2 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
JPH1115831A (ja) | リグレッション・ツリー作成方法及び装置 | |
JP3938815B2 (ja) | ノード作成方法、画像検索方法及び記録媒体 | |
EP3896619A1 (en) | Method and system for keyword search over a knowledge graph | |
CN113064982A (zh) | 一种问答库生成方法及相关设备 | |
WO2017095421A1 (en) | Automatic selection of neighbor lists to be incrementally updated | |
Kim et al. | Probabilistic cost model for nearest neighbor search in image retrieval | |
Eggeling et al. | Pruning Rules for Learning Parsimonious Context Trees. |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |