一种基于值域的查询方法及装置与流程

文档序号:21630894发布日期:2020-07-29 02:40阅读:309来源:国知局
一种基于值域的查询方法及装置与流程
本发明涉及查询路径优化
技术领域
,具体涉及基于值域的查询方法、装置以及计算机存储介质。
背景技术
:现在对查询树的研究变得越来越重要,主要有两方面的原因,一是随着移动网络和云计算的发展,信息存储系统中的数据规模越来越大,文件元数据和数据键值管理越来越复杂,必须借助快速准确的查询系统来提高效率。另一方面,相比于传统的数据集合,现代数据集合往往更注重实时效应,越来越多的数据分析主要关注最近相关数据,并据此赋以不同权重。现有的查询树查询设计存在以下问题:1)不能及时返回失败结果。当查询结果只有唯一可确定查找失败的条件时,为找到这个条件需要覆盖大量的查询路径,经过较长的查找路径后才能得出结论。最坏查找情况时,甚至需要遍历树中所有的索引,才能得到查询结果不在当前索引树中的结论。2)没有充分利用路径入口节点的指示作用。指示下一层路径的入口节点可以携带很多信息,然而这些信息不具有很好的通用性,会因不同的路径组织形式而不能通用(即不同树种的路径使用不同的辅助树)。技术实现要素:本发明的目的在于克服上述技术不足,提供一种基于值域的查询方法、装置以及计算机存储介质,解决现有技术中查询树查询只有唯一可确定查找失败的条件,导致无法及时确认继续查询的必要性的技术问题。为达到上述技术目的,本发明的技术方案提供一种基于值域的查询方法,包括以下步骤:建立查询树时,根据经过每一路径的入口节点的插入值,为各路径定义值域;当查询操作进入优先路径的入口节点时,判断待查询值是否位于优先路径的值域范围内,如果位于,则进入优先路径进行查询,否则终止当前查询。本发明还提供一种基于值域的查询装置,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现所述基于值域的查询方法。本发明还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现所述基于值域的查询方法。与现有技术相比,本发明的有益效果包括:本发明在建立查询树时,根据经过每一路径的入口节点的插入值,为各路径定义值域,使得入口节点具有指示相应路径查询值域范围的功能,同时自定义的值域信息具有通用性。基于自定义的值域信息进行查询,当查询操作进入优先路径时,可根据值域判断该查询操作进入该优先路径的必要性,如果有必要则进入进行查询,如果没有必要则及时终止不必要的查询操作,从而及时止损,尽快得出查询结果。附图说明图1是本发明提供的基于值域的查询方法一实施方式的流程图;图2是本发明提供的基于值域的查询方法一实施方式的值域定义流程图;图3是本发明提供的基于值域的查询方法一实施方式的值域更新流程图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。实施例1如图1所示,本发明的实施例1提供了基于值域的查询方法,以下简称本方法,包括以下步骤:s1、建立查询树时,根据经过每一路径的入口节点的插入值,为各路径定义值域;s2、当查询操作进入优先路径的入口节点时,判断待查询值是否位于优先路径的值域范围内,如果位于,则进入优先路径进行查询,否则终止当前查询。本发明实施例提供了一种查询树中基于扩展属性的值域查询路径指示策略,在查询树建立过程中,通过插入值经过路径入口时的比对操作获得路径闭区间值域的特性。在每一个优先路径的入口处预先计算出当前优先路径的闭区间值域。当查询操作进入各个优先路径时,先与该优先路径的值域进行比对操作,以确定进入该优先路径的必要性,只有在待查询值位于值域范围内时才会进入优先路径进行查询,从而及时终止没有必要的查询操作,优化查询路径。本发明充分利用了查询树入口节点的指示作用,在入口节点本身携带指示信息的基础之上,增加指示查询范围的值域信息,由于每一个路径的入口节点均定义了值域属性,因此具有普适性;同时,在定义了值域属性后,在合适时机确认了继续查询的必要性,迅速终止部分无效的查询操作,加速查询过程;当查询结果不在树中时,只需要查找每个辅助树(路径)的入口节点,即总查找次数为树的深度,即可得到查询失败的结果,大大降低了查找操作的代价。本方法可应用于分布式存储系统中键值索引和查询,也可以用于海量存储系统中文件元数据的索引和查询。优选的,如图2所示,根据经过路径的入口节点的插入值,为路径定义值域,具体为:s11、新建路径时,将路径的第一个插入值作为值域的初始上界和初始下界;s12、判断下一个插入值是否大于当前上界,如果大于,则更新上界,如果不大于,则进一步判断其是否小于当前下界,如果小于,则更新下界,如果不小于,则不更新;s13、逐一根据每一插入值对上界和下界进行更新,根据最后一次更新的上界和下界为路径定义值域。考虑一个新建的路径,将该路径的第一个插入值直接赋值给上下界值;考虑一个已有路径,对每个新插入的插入值,都与入口节点中的上/下界进行比较,大于上界则更新上界,小于下界则更新下界。优选的,在路径的入口节点中增设值域属性,将所述值域存储于所述值域属性中,所述值域包括上界和下界,所述上界和所述下界的数据类型均为键值类型。由于需要定义用于判断查询必要性的值域属性,因此新建路径时,除包括原有的路径信息之外,还应在入口节点中增加值域属性,值域属性包括上界、下界两个值。上界和下界的数据类型为键值类型。优选的,判断待查询值是否位于优先路径的值域范围内,具体为:将所述待查询值分别与优先路径的值域的上界及下界进行比较,如果越界,则不位于值域范围内,如果没有越界,则位于值域范围内。根据值域的上/下界值确定查询操作进入当前路径的必要性;获取值域的上/下界,与待查询值进行比较;超出值域,终止当前查询;在值域之中,进入路径获取节点进行比较。优选的,本方法还包括:当查询操作即将进入的下一层路径相较于所述优先路径发生改变时,对优先路径进行更新。如果判断待查询值不在优先路径的值域范围内,则及时终止当前查询操作,进入下一层路径,说明优先路径的设置有不合适之处,即存在非优先路径,此时需要改变优先路径,对优先路径进行更新。若查询成功,在整个查询操作中,经过的优先路径为n,n>1,则证明:无论是否采取调整姿态的策略,优先路径都需要调整,需要调整的节点数为n-1个。优选的,对优先路径进行更新,具体为:获取当前优先路径的路径指针,获取查询操作即将进入的下一层路径的路径指针,将当前优先路径的路径指针与下一层路径的路径指针进行交换。优先路径上的节点均为优先查看的节点,对一个完整路径上的所有节点而言,如果没有先考虑完优先路径上的所有节点,是不会考虑这些节点所引出的其它路径的。此外,每一个优先路径都有一个额外的节点,即入口节点来表示这是一个路径,这是查询树的特征之一。下一层路径的入口节点包含的路径指针;回溯到上层节点,获取当前优先路径指针;交换两个指针变量的值,存储位置不变;考虑已经回溯,交换左右指针以维持优先路径的相关属性。优选的,本方法还包括,当查询操作进入的路径相较于所述优先路径发生改变时,对查询操作进入的当前路径的值域进行更新。查询树建立完成之后,当查询路径相较优先路径发生改变时,深入到当前路径的下一层路径获得当前路径新的值域。对新选中的优先路径,由于之前不存在指示新路径的入口节点,所以没有记载值域,这就需要深入到新路径进行查看,以获取值域。优选的,对查询操作进入的当前路径的值域进行更新,具体为:判断所述优先路径中,除查询操作已经进入的当前路径外,是否存在其他优先路径,如果不存在,则定义值域的上界和下界均为当前查询节点的值,如果存在,则进一步判断其他优先路径中是否包含左侧优先路径以及右侧优先路径;如果其他优先路径包含左侧优先路径,则根据左侧优先路径的下界对值域的下界进行更新,如果其他优先路径包含右侧优先路径,则根据右侧优先路径的上界对值域的上界进行更新。考虑一个需要调整路径的节点,需要深入到下一层路径当中确认值域,以维持闭区间表示值域的特征:沿优先路径找到两个节点,它们具有改变优先路径方向(左侧优先变为右侧优先,或相反)、指向另一优先路径或终止优先路径的特点,即可获得值域。具体的,如图3所示,考虑当前节点,有另一优先路径则记录值域为ab(上界a下界b),没有另一优先路径则记录值域为cc(上界c下界c,c为当前节点值);若存在左侧优先路径,保留上界a,沿路径向左,若左侧出现下一路径,进入,获取该左侧路径的下界更新下界b,若左侧没有下一路径,则进一步判断当前路径是否有延续,有延续,则继续根据延续路径更新下界b,没有延续,记录当前节点值为上界a;若存在右侧优先路径,保留下界b,沿路径向右,若右侧出现下一路径,进入,获取该右侧路径的上界更新上界a,若右侧没有上一路径,则进一步判断当前路径是否有延续,有延续,则继续根据延续路径更新上界a,没有延续,记录当前节点值为下界b;返回最后更新的a、b,即值域。实施例2本发明的实施例2提供了基于值域的查询装置,以下简称本装置,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现实施例1提供的基于值域的查询方法。本发明实施例提供的基于值域的查询装置,用于实现基于值域的查询方法,因此,基于值域的查询方法所具备的技术效果,基于值域的查询装置同样具备,在此不再赘述。具体的,本实施例中查询装置的配置如表1所示:表1、节点数和系统配置节点数cpu硬盘内存操作系统50intel(r)i56500@3.2ghz1tb4gbwindows7旗舰版本装置的重点在于,使用较小的时空开销,换取查询失败的较快反应速度。实施例3本发明的实施例3提供了计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现实施例1提供的基于值域的查询方法。本发明实施例提供的计算机存储介质,用于实现基于值域的查询方法,因此,基于值域的查询方法所具备的技术效果,计算机存储介质同样具备,在此不再赘述。以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1