高维数据检索方法、计算机设备和存储介质技术

技术编号:18783823 阅读:206 留言:0更新日期:2018-08-29 06:58
本申请涉及一种高维数据检索方法、计算机设备和存储介质,通过获取查询指令,所述查询指令包括:查询数据及检索范围;获取当前节点,所述当前节点包含至少一个子节点;对所述当前节点的子节点由上向下剪枝,直至叶子节点;遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据。通过当前节点,并由上向下进行剪枝,从而实现快速查找相似数据。解决了线性遍历大规模、高维度的数据并逐一计算与查询数据之间距离的过程对于计算资源消耗极大,查询效率低的问题。

【技术实现步骤摘要】
高维数据检索方法、计算机设备和存储介质
本申请涉及计算机
,特别是涉及一种高维数据检索方法、计算机设备和存储介质。
技术介绍
近年来,随着移动终端的广泛应用,各种数据采集设备的暴发性增长,使得数据呈现一种大爆炸的趋势,如何在日益增长的海量数据中进行高效的检索,一直以来都是信息
的难题。其中,高维数据分布非常稀疏,索引难度巨大,度量空间(MetricSpace)索引是近年来解决高维数据相似性检索的一种广泛采用的方式。基于度量空间的索引通常做法是针对高维数据设计一种几何降维方法并进行数据划分,将高维数据映射到低维空间中,然后再采用一种高效的索引存储结构进行索引,并基于该索引结构设计相应的高维数据相似检索方法,通常包括范围检索和KNN检索。因此,面对大规模、高维度的索引数据,度量空间索引的检索性能存在压力,常规的自顶向下剪枝算法对叶子节点中的数据进行线性遍历的计算开销相当大,特别是当数据规模极大、数据维度极高的情况下,树结构中满足剪枝条件的叶子节点下存储的数据非常大,线性遍历大规模、高维度的数据并逐一计算与查询数据之间距离的过程对于计算资源消耗极大,查询效率低。
技术实现思路
基于此,有必要针对,线性遍历大规模、高维度的数据并逐一计算与查询数据之间距离的过程对于计算资源消耗极大,查询效率低的问题,提供一种能够提高查询效率的高维数据检索方法、计算机设备和存储介质。一种高维数据检索方法,所述方法包括:获取查询指令,所述查询指令包括:查询数据及检索范围;获取当前节点,所述当前节点包含至少一个子节点;对所述当前节点的子节点由上向下剪枝,直至叶子节点;遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据。在其中一个实施例中,根据所述查询指令,在索引树中确定出所述查询数据归属的叶子节点;将所述叶子节点的父节点确定作为当前节点。在其中一个实施例中,在遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据之后,还包括步骤:用所述当前节点的父节点作为新的当前节点,返回对所述当前节点的子节点由上向下剪枝,直至叶子节点的步骤。在其中一个实施例中,在所述遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据的步骤之后,还包括:将各个所述符合的数据与所述查询数据的距离由小到大进行排序,确定出结果数据序列。在其中一个实施例中,所述遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据的步骤包括:遍历各所述叶子节点中的数据,确定出叶子节点中的各个数据与所述查询数据的距离;将各个数据中与所述查询数据的距离位于检索范围的数据,确定为符合与所述查询数据之间的距离位于所述检索范围的数据。在其中一个实施例中,所述根据所述查询指令,在索引树中确定出所述查询数据归属的叶子节点的步骤包括:根据所述查询指令,确定出所述查询数据与所述支撑点序列的距离;根据所述查询数据与所述支撑点序列的距离,确定出所述查询数据归属的叶子节点。在其中一个实施例中,所述根据所述查询数据与所述支撑点序列的距离,确定出所述查询数据归属的叶子节点的步骤包括:根据所述查询数据与所述支撑点序列的距离,利用度量空间索引数据降维方法,确定出所述查询数据归属的叶子节点。在其中一个实施例中,在所述获取当前节点之后,还包括:标记所述当前节点。在其中一个实施例中,一种计算机设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现所述高维数据检索方法的步骤。在其中一个实施例中,一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述高维数据检索方法的步骤。上述高维数据检索方法、计算机设备和存储介质,通过获取查询指令,所述查询指令包括:查询数据及检索范围;获取当前节点,所述当前节点包含至少一个子节点;对所述当前节点的子节点由上向下剪枝,直至叶子节点;遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据。通过当前节点,并由上向下进行剪枝,从而实现快速查找相似数据。解决了线性遍历大规模、高维度的数据并逐一计算与查询数据之间距离的过程对于计算资源消耗极大,查询效率低的问题。附图说明图1为一个实施例中高维数据检索方法的流程示意图;图2为一个实施例中高维数据检索方法的流程示意图;图3为一个实施例中MIndex的DynamicCluster-tree存储结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。请参阅图1,一种高维数据检索方法,所述方法包括步骤S210-S240:步骤S210,获取查询指令,所述查询指令包括:查询数据及检索范围。其中,通过用户输入的查询指令,查询指令中包括查询数据q,检索范围r,查询数据是指需要查找的数据中的相关信息;检索范围是指选择一个搜索范围。步骤S220,获取当前节点,所述当前节点包含至少一个子节点。在其中一个实施例中,根据所述查询指令,在索引树中确定出所述查询数据归属的叶子节点;将所述叶子节点的父节点确定作为当前节点。在其中一个实施例中,标记所述当前节点。具体地,根据所述查询指令,确定出所述查询数据与所述支撑点序列的距离;根据所述查询数据与所述支撑点序列的距离,确定出所述查询数据归属的叶子节点。其中,根据所述查询数据与所述支撑点序列的距离,利用度量空间索引数据降维方法,确定出所述查询数据归属的叶子节点。计算查询数据q到支撑点序列P[0,1,…,n-1]的距离,结合度量空间索引数据降维方法,快速在索引树中找到查询数据所归属的叶子节点l,取其父节点为当前节点current_node;所述查询数据与所述支撑点序列的距离为由用户自定义距离函数,可以是欧式距离、余弦夹角距离等,满足度量空间定义的距离函数均可以适用;度量空间索引数据降维方法为特定的度量空间索引结构采用的相应数据降维方法。步骤S230,对所述当前节点的子节点由上向下剪枝,直至叶子节点;在其中一个实施例中,将当前节点current_node进行标记,利用剪枝条件对当前节点current_node的子节点由上向下进行剪枝,直到叶子节点,标记的节点不再进行二次访问。具体地,基于当前节点由上向下进行剪枝的过程,其中利用剪枝条件对当前节点的子节点由上向下进行剪枝,通常基于支撑点的度量索引结构会利用度量空间三角不等式的性质,例如MIndex,采用的就是双支撑点进行剪枝。步骤S240,遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据。在其中一个实施例中,遍历各所述叶子节点中的数据,确定出叶子节点中的各个数据与所述查询数据的距离。将各个数据中与所述查询数据的距离位于检索范围的数据,确定为符合与所述查询数据之间的距离位于所述检索范围的数据。具体地,对叶子节点下的数据进行线性遍历,并逐一计算这些高维数据与q之间的距离,筛选出符合与q之间距离小于r的数据,并进行标记。上述高维数据检索方法,通过获取查询指令,所述查询指令包括:查询数据及检索范围;获取当本文档来自技高网...

【技术保护点】
1.一种高维数据检索方法,所述方法包括:获取查询指令,所述查询指令包括:查询数据及检索范围;获取当前节点,所述当前节点包含至少一个子节点;对所述当前节点的子节点由上向下剪枝,直至叶子节点;遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据。

【技术特征摘要】
1.一种高维数据检索方法,所述方法包括:获取查询指令,所述查询指令包括:查询数据及检索范围;获取当前节点,所述当前节点包含至少一个子节点;对所述当前节点的子节点由上向下剪枝,直至叶子节点;遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据。2.根据权利要求1所述的高维数据检索方法,其特征在于,根据所述查询指令,在索引树中确定出所述查询数据归属的叶子节点;将所述叶子节点的父节点确定作为当前节点。3.根据权利要求1所述的高维数据检索方法,其特征在于,在遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据之后,还包括步骤:用所述当前节点的父节点作为新的当前节点,返回对所述当前节点的子节点由上向下剪枝,直至叶子节点的步骤。4.根据权利要求1所述的高维数据检索方法,其特征在于,在所述遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据的步骤之后,还包括:将各个所述符合的数据与所述查询数据的距离由小到大进行排序,确定出结果数据序列。5.根据权利要求1所述的高维数据检索方法,其特征在于,所述遍历各所述叶子节点中的数据,获得符合与所述查询数据之间的距离位于所述检索范围的数据的步骤包括:遍历各所述叶子节点中的...

【专利技术属性】
技术研发人员:夏东黎佳志张翀
申请(专利权)人:湖南视觉伟业智能科技有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1