CN102867054A - 一种xml关键字查询方法 - Google Patents
一种xml关键字查询方法 Download PDFInfo
- Publication number
- CN102867054A CN102867054A CN2012103381909A CN201210338190A CN102867054A CN 102867054 A CN102867054 A CN 102867054A CN 2012103381909 A CN2012103381909 A CN 2012103381909A CN 201210338190 A CN201210338190 A CN 201210338190A CN 102867054 A CN102867054 A CN 102867054A
- Authority
- CN
- China
- Prior art keywords
- xml
- path
- node
- subtree
- key word
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明提供了一种XML关键字查询方法,其特征在于包括步骤:首先,根据用户输入的关键字获得所有关键字的倒排表;其次,通过扫描关键字倒排表并根据快速分组方法进行分组,因此根据不同的分组构建的子树自然也就满足以SLCA为根节点,且包含全部关键字;最后,对每个分组构建路径子树,进而对路径子树根据单调性和一致性约束过滤冗余信息得到最终的查询结果,即匹配子树。本发明可以对XML关键字进行高效查询。
Description
技术领域
本发明涉及信息领域,尤其涉及一种XML关键字查询方法。
背景技术
随着越来越多的Web应用,如电子商务、电子政务与各种数字化资源等等,使得XML技术在Web应用中起着举足轻重的作用,也使得XML标准逐渐成为当前主流的数据格式,主要有数据表示、数据存储和数据交换。因此,如何高效地管理大量XML文档成为当前数据库领域研究的热点。当XML格式的数据成为主流数据后,如何高效的从XML文档中获取用户感兴趣的信息成为众多研究机构和学者关注的问题。因此,XML查询技术根据其查询模式的不同,可分为:XML结构化查询和XML关键字查询。
对于XML结构化查询而言,首先,用户需要凭借查询描述语言来描述对自己感兴趣的内容;其次,将用户的查询语句提交XML数据库系统;最后,XML数据库系统需要根据用户提交的查询语句返回与查询语句相匹配的结果给用户。因为结构化查询通常采用的是正则路径表达式的形式,所以其最主要的优点就是可以获得更精确的查询结果。但是XML结构化查询也存在着以下两点缺陷。
(1)需要普通用户必须学习相关的查询语言。
(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文档中的全部路径。
本发明的另一方面进一步包括通过快速构建分组集来构建路径子树,进而获得全部的匹配子树。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1示出了XML文档查询返回的完全子树示意图;
图2示出了XML文档查询返回的路径子树示意图。
具体实施方式
下面结合附图来详细地描述本发明的具体实施例。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在 XML文档树D中,查询Q的返回结果是D的子树,每个子树t对应一个分组group=(r,M),其中r为t的根节点,M是由全部与Q中关键字相匹配的节点所构成的集合。所有这样的group构成分组集,用groupSet(Q)表示。对于不同的group,可以构建出不同的路径子树t。
在图1中,考虑查询Q1={Grizzlies,Gasol,position},满足该查询的goupSet(Q1)=
{group1},其中group1=(r,M)为:r=team(0),M= {Grizzlies(0.0),Gasol(0.1.0.0),position(0.1.0.2),
position(0.1.1.2), position (0.1.2. 2)}。因此,可以根据该group1=(r,M)构建路径子树,如图
2 a)所示。
快速分组是指扫描所有关键字倒排表计算 SLCA节点时,通过记录不同关键字的 Dewey编码,直接求解分组集 group=(r,M)的过程。
在图1中,考虑查询Q2={Gasol, position},Gasol的关键字倒排表为:(0.1.0.0);position的关键字倒排表为:(0.1.0.2)、(0.1.1.2)、(0.1.2.2)。在扫描倒排表过程中,节点(0.1.0.0)和节点(0.1.0.2)的最长公共前缀为(0.1.0),设group1.r=(0.1.0),并以节点(0.1.0)为祖先进行分组,即依次向 group1.M中添加节点(0.1.0.0)、节点(0.1.0.2);下一个节点(0.1.0.0)和节点(0.1.1.2)的最长公共前缀为(0.1),因为(0.1)为(0.1.0)的父节点,所以排除(0.1)。当倒排表扫描结束,goupSet(Q2)={group1},其中,group1.r=(0.1.0),group1.M={(0.1.0.0),(0.1.0.2)}。因此,该查询Q的 SLCASet={(0.1.0)}。
从上例可以看出,采用快速分组策略,通过计算边LCA,边排除LCA祖先节点的方法得到所有的SLCA节点,并以此构建分组集。因此,快速分组能够有效的减少扫描倒排表的次数,从而减少整体的时间消耗。
本发明的一个实施例所提出的查询方法,其所返回的匹配子树是仍然是以SLCA为根节点,并在去除冗余信息后满足单调性和一致性的子树。具体操作步骤是,首先,根据用户输入的关键字获得所有关键字的倒排表;其次,通过扫描关键字倒排表并根据快速分组方法进行分组,因此根据不同的分组构建的子树自然也就满足以SLCA为根节点,且包含全部关键字;最后,对每个分组构建路径子树,进而对路径子树根据单调性和一致性约束过滤冗余信息得到最终的查询结果,即匹配子树。
为了提高关键字查询处理的效率,在解析XML文档时,首先在每个编码的尾部附加一个路径ID用于标识其路径;其次构建关键字倒排表,将与每个关键字相匹配的所有节点组织在一起,并根据Dewey编码从小到大的顺序进行排序;最后,构建从根节点到每个值节点的路径索引,通过Dewey编码最后一位的路径ID索引该节点在XML文档中的全部路径。将Dewey编码与路径索引相结合的方式作为预处理方案具有以下2个重要的性质。
(1)根据编码求出两个元素之间的关系。
(2)根据元素编码可以直接得出元素标签以及祖先和后代标签。
对于一个给定XML文档D和查询Q={k1,k2,…,km},本发明的一个实施例的方法主要是通过快速构建分组集来构建路径子树,进而获得全部的匹配子树,具体实现过程主要分为3步:
第1步:对于给定查询Q = k1,k2,…,km},返回与关键字ki(1≤i≤m )相匹配的倒排表。我们使用Li表示关键字ki(1≤i≤m )的倒排表,并且每个Li有一个光标Ci,用C[i](1 ≤i≤m )表示。
第2步:扫描全部关键字倒排表构建分组集groupSet,每个group= {r, M}包含一个满足SLCA语义的节点r和以节点r为祖先且全部与关键字相匹配的节点构成的节点集M。
首先,FastGroupes函数根据关键字倒排表L[1,…,m]构建group,根据光标C[1,…,m]指向的Dewey编码计算最长公共前缀LCA,返回结果用Lca表示。
其次,findMatch函数按以下三种情况构建分组。
第一种情况:如果groupset中存在某一group.r等于当前Lca时,则执行Addnodes函数。Addnodes函数的主要功能为:将光标C[1,…,m]指向的节点添加到该group.M分组中,然后将有后继节点、且指向最小Dewey编码的光标后移一位。
第二种情况:如果groupset中存在某一group.r为当前Lca的祖先,则表示当前Lca不满足SLCA定义,不以当前 Lca为祖先进行分组。
第三种情况:如果groupset中不存在某一group.r为当前Lca的祖先,则表示当前Lca为SLCA节点,然后以当前Lca进行分组。
最后,依此类推,直到遍历全部倒排表结束。因此,查询Q的分组集为groupSet(Q)= {group[1] ,…, group[n]},其中,对于任意一个group[i] (1≤i≤n),group[i].r满足SLCA语义,group[i].M中的节点满足以SLCA为祖先节点或者父节点,并且全部与关键字相匹配。
第3步:根据不同的group构建路径子树,并对路径子树根据单调性和一致性约束进行裁剪得到匹配子树。对于任意一group ={r,M},可以表示为一个路径子树t,其中,t是以r为根节点,由从r到 M中所有节点的路径所构成的子树。因此,可以根据不同的group = {r, M}构建出不同的路径子树t。 PruneMatches函数首先根据第2步求得的group构建路径子树t;其次,先序遍历路径子树t,然后根据文献[26]的方法,通过从t中移除不满足关键字包含条件的节点得到相应的匹配子树,即查询结果。
本发明的查询方法不仅避免了Stack算法根据Dewey编码频繁进栈和出栈的操作,而且还避免了与查询无关的节点标签的访问;另外,该方法还可以通过一次扫描全部的关键字倒排表就能构建满足查询的分组集,进而有效的避免了重复扫描倒排表的问题。该方法可以减少频繁索引节点名称的时间开销,进一步提高系统的查询效率。
需要说明的是,以上实施例仅是对本发明技术方案的示例性描述,而并不是对本发明的限制;尽管参照上面的实施例对本发明进行了详细的说明,但是,本领域的普通技术人员应当可以完全理解的是,在不脱离由本发明的权利要求书限定的保护范围已经精神的前提下,可以对上述实施例所记载的技术方案进行修改或者对其中部分技术特征进行等同替换,这些都应该属于本发明的保护范围。
Claims (5)
1.一种XML关键字查询方法,其特征在于包括步骤:
l) 根据用户输入的关键字获得所有关键字的倒排表;
2) 通过扫描关键字倒排表并根据快速分组方法进行分组,因此根据不同的分组构建的子树自然也就满足以SLCA为根节点,且包含全部关键字;
3)对每个分组构建路径子树,进而对路径子树根据单调性和一致性约束过滤冗余信息得到最终的查询结果,即匹配子树。
2.根据权利要求1所述的方法,进一步包括,解析XML文档时,在每个编码的尾部附加一个路径ID用于标识其路径。
3.根据权利要求2所述的方法,进一步包括,构建关键字倒排表,将与每个关键字相匹配的所有节点组织在一起,并根据Dewey编码从小到大的顺序进行排序。
4.根据权利要求3所述的方法,进一步包括,构建从根节点到每个值节点的路径索引,通过Dewey编码最后一位的路径ID索引该节点在XML文档中的全部路径。
5.根据权利要求4所述的方法,进一步包括通过快速构建分组集来构建路径子树,进而获得全部的匹配子树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103381909A CN102867054A (zh) | 2012-09-13 | 2012-09-13 | 一种xml关键字查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103381909A CN102867054A (zh) | 2012-09-13 | 2012-09-13 | 一种xml关键字查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102867054A true CN102867054A (zh) | 2013-01-09 |
Family
ID=47445923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103381909A Pending CN102867054A (zh) | 2012-09-13 | 2012-09-13 | 一种xml关键字查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102867054A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059798A (zh) * | 2016-05-18 | 2016-10-26 | 厦门市美亚柏科信息股份有限公司 | 一种基于节点集合的多层管理系统 |
CN111130860A (zh) * | 2019-12-11 | 2020-05-08 | 中盈优创资讯科技有限公司 | 网络拓扑管理方法及装置、网络拓扑查询方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615190A (zh) * | 2009-07-31 | 2009-12-30 | 复旦大学 | 安全的xml关键字检索方法 |
CN102043802A (zh) * | 2009-10-16 | 2011-05-04 | 上海飞机制造有限公司 | 基于结构摘要的xml关键字检索方法 |
CN102063474A (zh) * | 2010-12-16 | 2011-05-18 | 西北工业大学 | 基于语义相关的XML关键字top-k查询方法 |
CN102081660A (zh) * | 2011-01-13 | 2011-06-01 | 西北工业大学 | 基于语义相关的xml文档关键字检索排序方法 |
-
2012
- 2012-09-13 CN CN2012103381909A patent/CN102867054A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101615190A (zh) * | 2009-07-31 | 2009-12-30 | 复旦大学 | 安全的xml关键字检索方法 |
CN102043802A (zh) * | 2009-10-16 | 2011-05-04 | 上海飞机制造有限公司 | 基于结构摘要的xml关键字检索方法 |
CN102063474A (zh) * | 2010-12-16 | 2011-05-18 | 西北工业大学 | 基于语义相关的XML关键字top-k查询方法 |
CN102081660A (zh) * | 2011-01-13 | 2011-06-01 | 西北工业大学 | 基于语义相关的xml文档关键字检索排序方法 |
Non-Patent Citations (1)
Title |
---|
崔健 等: "FastMatch:一种高效的XML关键字查询算法", 《计算机应用研究》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059798A (zh) * | 2016-05-18 | 2016-10-26 | 厦门市美亚柏科信息股份有限公司 | 一种基于节点集合的多层管理系统 |
CN106059798B (zh) * | 2016-05-18 | 2019-10-01 | 厦门市美亚柏科信息股份有限公司 | 一种基于节点集合的多层管理系统 |
CN111130860A (zh) * | 2019-12-11 | 2020-05-08 | 中盈优创资讯科技有限公司 | 网络拓扑管理方法及装置、网络拓扑查询方法及装置 |
CN111130860B (zh) * | 2019-12-11 | 2023-04-07 | 中盈优创资讯科技有限公司 | 网络拓扑管理方法及装置、网络拓扑查询方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102033954B (zh) | 关系数据库中可扩展标记语言文档全文检索查询索引方法 | |
CN105159949B (zh) | 一种中文地址分词方法及系统 | |
US8938456B2 (en) | Data recovery system and method in a resource description framework environment | |
US8566343B2 (en) | Searching backward to speed up query | |
CN103123650B (zh) | 一种基于整数映射的xml数据库全文索引方法 | |
CN102411580B (zh) | 可扩展标记语言文档的检索方法及装置 | |
JP2005092889A (ja) | ウェブページのための情報ブロック抽出装置及び情報ブロック抽出方法 | |
US20120254189A1 (en) | Multilevel indexing system | |
CN102405623A (zh) | 路由表项的存储方法和装置 | |
Liu et al. | Dynamic labeling scheme for XML updates | |
Moro et al. | Early Profile Pruning on XML-aware Publish/Subscribe Systems. | |
CN101996190B (zh) | 一种从网页中抽取信息的方法及装置 | |
CN108241709B (zh) | 一种数据集成方法、装置和系统 | |
CN101833588B (zh) | 一种xml文档索引结构 | |
CN104636265A (zh) | 一种cimxml文档的高效内存模型组织的访问方法 | |
CN104462095A (zh) | 一种查询语句公共部分的提取方法及装置 | |
CN102867054A (zh) | 一种xml关键字查询方法 | |
CN102043802B (zh) | 基于结构摘要的xml关键字检索方法 | |
CN104133895A (zh) | 一种基于二叉树的智能变电站二次设备连接图编码算法 | |
Liu et al. | Significant-attributed Community Search in Heterogeneous Information Networks | |
CN106933844A (zh) | 面向大规模rdf数据的可达性查询索引的构建方法 | |
Prabhavathy et al. | Path stream group level encoding: Efficient wireless xml streaming | |
CN113590650A (zh) | 基于特征表达式的结构化查询语句甄别方法及装置 | |
US20070220033A1 (en) | System and method for providing simple and compound indexes for XML files | |
CN108614842B (zh) | 查询数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130109 |