本发明涉及数据检索领域,具体涉及一种多维自适应增量r树索引构建方法。
背景技术:
1、在针对多维数据查询的解决方案,现有技术主要着手于空间索引、自适应索引。
2、空间索引方面,常常使用的是kd树和r树。kd树作为一种二叉搜索树,将点组织在空间分区中。每个内部节点沿着一个维度平分空间,并且每个级别以循环方式对应于一个维度。同理的还有,其他空间分割方法,四叉树,八叉树和发散八叉树,使用预定义的边界创建象限或八分区,但并不将数据的分布特点进行分析,造成对多维数据的处理往往随维度的增加计算消耗也线性增长。
3、现有的自适应索引方法围绕单个维度或属性组织每个索引,或者以其他方式将多层索引的每个级别专用于单个维度;因此,自适应索引只在外部通过查询转换和后处理来容纳具有空间范围的非点多维对象。kd树的自适应索引变体在响应查询的同时构建索引,但查询对过程没有影响。每个查询都让数据集的一部分被索引,其大小取决于参数;在足够数量的查询之后,索引的计算成本将收敛。但是,对部分的查询响应时间变化较大;为了确保一致的性能,kd树变体往往建立成本模型进行调整,因此比的kd树更具有健壮性,但是在总体查询响应时间上仍然难以避免,其特征体现在kd所有变体都是针对点而不是具有空间范围的对象而设计的。
4、kd树、四叉树、八叉树和发散八叉树等自适应索引通过响应查询而递增地构建索引来响应这种需要;在其默认形式中,为单个维度属性进行索引,应对多个维度的情况下,需要为每个索引级别编制一个属性。这种方法在对索引空间数据对象进行构建时,遇到的数据构建任务,涉及多维范围查询,无法进行有效的应对。
5、因此,亟需一种多维自适应增量r树索引构建方法,用于提供一种多维数据查询的解决方案。
技术实现思路
1、本发明提出了一种多维自适应增量r树索引构建方法,自适应增量r树响应于传入的查询,使用一套用于创建和分裂节点的策略法,在静态数组上递增地和渐进地构造存储器内空间索引。自适应增量r树在多维自适应索引的预查询和对工作负载的累积响应时间优于现有技术一个数量级。具体技术方案如下:
2、第一方面,一种多维自适应增量r树索引构建方法,所述方法包括:
3、基于查询语句遍历多维自适应增量r树的各个叶节点,确定与所述查询语句的查询范围所匹配的叶节点,所述多维自适应增量r树内设置有多个叶节点,叶节点根据所保存的数据对象的量分为规则叶节点和不规则叶节点;
4、若所述叶节点完全被所述查询范围包含,则将所述叶节点对应的内容加入查询结果中;
5、若所述叶节点部分与所述查询范围相交,则对所述叶节点进行规则判断和分裂处理,并将处理结果中完全被所述查询范围包含的叶节点或与查询范围部分重叠的规则叶节点对应的内容加入查询结果中。
6、进一步的,在所述基于查询语句遍历多维自适应增量r树的各个叶节点,确定与所述查询语句的查询范围所匹配的叶节点,之前还包括:
7、基于上限确定所述多维自适应增量r树的规则叶节点和不规则叶节点;
8、创建所述多维自适应增量r树的一个初始节点,所述初始节点为包含所有数据对象的不规则叶节点。
9、进一步的,所述对所述叶节点进行规则判断和分裂处理,包括:
10、若部分与所述查询范围相交的叶节点是规则叶节点,则将所述规则叶节点内相交部分内容加入查询结果中;
11、若部分与所述查询范围相交的叶节点是不规则叶节点,则将所述不规则叶节点进行分裂处理。
12、进一步的,所述将所述不规则叶节点进行分裂处理,包括:
13、基于查询数据的维度确定轴,所述查询数据为每个叶节点包含的全部数据,所述轴代表所述查询数据在不同维度上的映射;
14、基于所述查询范围和叶节点中的所述查询数据的轴,确定所述查询数据的每个轴的重叠部分和所述查询数据中的非查询范围空间;
15、对于所述查询数据中的所有轴,确定所述查询数据与所述查询范围不重叠的部分中体积最大的空间区域;
16、将所述空间区域作为分裂边,在所述查询数据对应的高维空间中分裂出一个体积最大且形成最接近多维超正方体的子空间。
17、进一步的,在所述将所述空间区域作为分裂边,在所述查询数据对应的高维空间中分裂出一个体积最大且形式最接近多维超正方体的子空间,之后还包括:
18、在每个分裂的树节点内额外随机选择一个轴进行分裂。
19、进一步的,所述基于查询语句遍历多维自适应增量r树的各个叶节点时,还包括:
20、将所述多维自适应增量r树包含的数据存储在静态数组中,每个叶节点都指向所述静态数组中的一个范围,在进行数据查询时,基于所述静态数组进行数据排列。
21、第二方面,本发明还提供一种多维自适应增量r树索引构建系统,所述系统包括:查询单元、输出单元、分裂单元;
22、所述查询单元用于,基于查询语句遍历多维自适应增量r树的各个叶节点,确定与所述查询语句的查询范围所匹配的叶节点,所述多维自适应增量r树内设置有多个叶节点,叶节点根据所保存的数据对象的量分为规则叶节点和不规则叶节点;
23、所述输出单元用于,若所述叶节点完全被所述查询范围包含,则将所述叶节点对应的内容加入查询结果中;
24、所述分裂单元用于,若所述叶节点部分与所述查询范围相交,则对所述叶节点进行规则判断和分裂处理,并将处理结果中完全被所述查询范围包含的叶节点或与查询范围部分重叠的规则叶节点对应的内容加入查询结果中。
25、本发明的另一种实施例中,所述系统还包括:初始单元;所述初始单元用于,
26、基于上限确定所述多维自适应增量r树的规则叶节点和不规则叶节点;
27、创建所述多维自适应增量r树的一个初始节点,所述初始节点为包含所有数据对象的不规则叶节点。
28、本发明的另一种实施例中,所述分裂单元还用于:
29、若部分与所述查询范围相交的叶节点是规则叶节点,则将所述规则叶节点内相交部分内容加入查询结果中;
30、若部分与所述查询范围相交的叶节点是不规则叶节点,则将所述不规则叶节点进行分裂处理。
31、本发明的另一种实施例中,所述分裂单元还用于:
32、基于查询数据的维度确定轴,所述查询数据为每个叶节点包含的全部数据,所述轴代表所述查询数据在不同维度上的映射;
33、基于所述查询范围和叶节点中的所述查询数据的轴,确定所述查询数据的每个轴的重叠部分和所述查询数据中的非查询范围空间;
34、对于所述查询数据中的所有轴,确定所述查询数据与所述查询范围不重叠的部分中体积最大的空间区域;
35、将所述空间区域作为分裂边,在所述查询数据对应的高维空间中分裂出一个体积最大且形成最接近多维超正方体的子空间。
36、本发明的有益效果如下:
37、本发明一种多维自适应增量r树索引构建方法,使用一套用于创建和分裂节点的策略法,在静态数组上递增地和渐进地构造存储器内空间索引,惰性边界维护引入显著地减少边界维护的计算负担,显著地降低了维护边界时的计算消耗。r树是为非点空间对象量身定制的,同时也能够管理点。随机扩展策略引入旨在给予自适应增量r树更加稳定和平滑的构建特性,确保了查询的高效性和负载的平衡性,而且使自适应增量r树能够在各种应用场景下均展现出卓越的性能表现,实现边界的最优维护,最小化节点间的重叠,减少索引的死空间,并提升边界的紧密性,自适应增量r树在多维自适应索引的预查询和对工作负载的累积响应时间优于现有技术一个数量级。