本发明专利技术提供了一种XML关键字查询方法,其特征在于包括步骤:首先,根据用户输入的关键字获得所有关键字的倒排表;其次,通过扫描关键字倒排表并根据快速分组方法进行分组,因此根据不同的分组构建的子树自然也就满足以SLCA为根节点,且包含全部关键字;最后,对每个分组构建路径子树,进而对路径子树根据单调性和一致性约束过滤冗余信息得到最终的查询结果,即匹配子树。本发明专利技术可以对XML关键字进行高效查询。
【技术实现步骤摘要】
本专利技术涉及信息领域,尤其涉及ー种XML关键字查询方法。
技术介绍
随着越来越多的Web应用,如电子商务、电子政务与各种数字化资源等等,使得XML技术在Web应用中起着举足轻重的作用,也使得XML标准逐渐成为当前主流的数据格式,主要有数据表示、数据存储和数据交換。因此,如何高效地管理大量XML文档成为当前数据库领域研究的热点。当XML格式的数据成为主流数据后,如何高效的从XML文档中获取用户感兴趣的信息成为众多研究机构和学者关注的问题。因此,XML查询技术根据其查询模式的不同,可分为=XML结构化查询和XML关键字查询。 对于XML结构化查询而言,首先,用户需要凭借查询描述语言来描述对自己感兴趣的内容;其次,将用户的查询语句提交XML数据库系统;最后,XML数据库系统需要根据用户提交的查询语句返回与查询语句相匹配的结果给用户。因为结构化查询通常采用的是正则路径表达式的形式,所以其最主要的优点就是可以获得更精确的查询結果。但是XML结构化查询也存在着以下两点缺陷。(I)需要普通用户必须学习相关的查询语言。(2)需要普通用户了解所要查询的。XML文档的数据组织形式由于XML结构化查询存在着以上缺陷,使得XML结构化查询不能被绝大多数的普通用户选择使用。因此,更为方便的XML关键字查询也随之成为信息检索领域的研究热点。对于XML关键字查询而言,首先,针对用户感兴趣的内容,用户只需要凭借若干个关键字来进行描述;其次,将用户的关键字提交给XML数据处理系统进行处理;最后,XML数据处理系统会返回与用户提交的关键字相匹配的结果给用户。因此,对普通用户来说,XML关键字查询是一种极为方便的查询模式。但是,XML关键字查询也存在着明显的缺陷,由于XML文档具有半结构化、自描述性等特点,使得XML关键字查询通常返回的不是整个XML文档,而是包含全部关键字的XML文档片段。如果更深层次的节点包含关键字信息,那么需要考虑更多的上下文信息。因此,XML关键字查询返回的结果中通常含有大量的无关信息。然而,与传统的信息检索技术相比,虽然XML关键字查询技术和传统的信息检索技术都是提交若干个查询关键字,但是其查询结果往往是不同的。随着XML关键字查询技术在现实生活中的广泛应用,如何有效的获取满足所有关键字组合语义的XML文档片段成为XML关键字查询的关键问题。
技术实现思路
基于上述问题,本专利技术提出ー种具有查询高效性的XML关键字查询方法。本专利技术的ー个目的是提供ー种XML关键字查询方法,其特征在于包括步骤 首先,根据用户输入的关键字获得所有关键字的倒排表;其次,通过扫描关键字倒排表并根据快速分组方法进行分组,因此根据不同的分组构建的子树自然也就满足以SLCA为根节点,且包含全部关键字; 最后,对每个分组构建路径子树,进而对路径子树根据单调性和一致性约束过滤冗余信息得到最終的查询結果,即匹配子树。本专利技术的另一方面进ー步包括,解析XML文档时,首先在每个编码的尾部附加ー个路径ID用于标识其路径;其次构建关键字倒排表 ,将与每个关键字相匹配的所有节点组织在一起,并根据Dewey编码从小到大的顺序进行排序;最后,构建从根节点到每个值节点的路径索引,通过Dewey编码最后一位的路径ID索引该节点在XML文档中的全部路径。本专利技术的另一方面进ー步包括通过快速构建分组集来构建路径子树,进而获得全部的匹配子树。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本专利技术的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图I示出了 XML文档查询返回的完全子树示意 图2示出了 XML文档查询返回的路径子树示意图。具体实施例方式下面结合附图来详细地描述本专利技术的具体实施例。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。在XML文档树D中,查询Q的返回结果是D的子树,每个子树t对应ー个分组group= (r, M),其中r为t的根节点,M是由全部与Q中关键字相匹配的节点所构成的集合。所有这样的group构成分组集,用groupSet(Q)表示。对于不同的group,可以构建出不同的路径子树t。在图I中,考虑查询Ql={Grizzlies, Gasol, position},满足该查询的goupSet(Ql)={groupl},其中 groupl= (r, M)为r=team(0), M= {Grizzlies (0. 0), Gasol (0. I. 0. 0),position (0. I. 0. 2), position (0. I. I. 2), position (0.1.2. 2)}。因此,可以根据该 groupl= (r, M)构建路径子树,如图2 a)所示。快速分组是指扫描所有关键字倒排表计算SLCA节点时,通过记录不同关键字的Dewey编码,直接求解分组集group= (r,M)的过程。在图I中,考虑查询Q2= {Gasol, position},Gasol的关键字倒排表为(0. I. 0. 0) position 的关键字倒排表为(0. I. 0. 2)、(0. I. I. 2)、(0. I. 2. 2)。在扫描倒排表过程中,节点(0. 1.0.0)和节点(0. 1.0.2)的最长公共前缀为(0.1.0),设groupl. r=(0. I. 0),并以节点(0.1.0)为祖先进行分组,即依次向groupl. M中添加节点(0. I.0.0)、节点(0. 1.0.2);下ー个节点(0. 1.0. 0)和节点(0. I. 1.2)的最长公共前缀为(0.1),因为(0.1)为(0.1.0)的父节点,所以排除(0.1)。当倒排表扫描结束,goupSet (Q2) = {groupl},其中,groupl. r= (0. I. 0),groupl. M= {(0. I. 0. 0), (0. I. 0. 2)}。因此,该查询 Q 的 SLCASet= {(0. I. 0)}。从上例可以看出,采用快速分组策略,通过计算边LCA,边排除LCA祖先节点的方法得到所有的SLCA节点,并以此构建分组集。因此,快速分组能够有效的减少扫描倒排表的次数,从而減少整体的时间消耗。 本专利技术的一个实施例所提出的查询方法,其所返回的匹配子树是仍然是以SLCA为根节点,并在去除冗余信息后满足单调性和一致性的子树。具体操作步骤是,首先,根据用户输入的关键字获得所有关键字的倒排表;其次,通过扫描关键字倒排表并根据快速分组方法进行分组,因此根据不同的分组构建的子树自然也就满足以SLCA为根节点,且包含全部关键字;最后,对每个分组构建路径子树,进而对路径子树根据单调性和一致性约束过滤冗余信息得到最終的查询結果,即匹配子树。为了提高关键字查询处理的效率,在解析XML文档时,首先在每个编码的尾部附加一个路径ID用于标识其路径;其本文档来自技高网...
【技术保护点】
一种XML关键字查询方法,其特征在于包括步骤:l)?根据用户输入的关键字获得所有关键字的倒排表;2)?通过扫描关键字倒排表并根据快速分组方法进行分组,因此根据不同的分组构建的子树自然也就满足以SLCA为根节点,且包含全部关键字;3)对每个分组构建路径子树,进而对路径子树根据单调性和一致性约束过滤冗余信息得到最终的查询结果,即匹配子树。
【技术特征摘要】
【专利技术属性】
技术研发人员:宗竞,
申请(专利权)人:江苏乐买到网络科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。