CN104615720B - 一种基于索引的xml文档查询优化方法 - Google Patents

一种基于索引的xml文档查询优化方法 Download PDF

Info

Publication number
CN104615720B
CN104615720B CN201510061947.8A CN201510061947A CN104615720B CN 104615720 B CN104615720 B CN 104615720B CN 201510061947 A CN201510061947 A CN 201510061947A CN 104615720 B CN104615720 B CN 104615720B
Authority
CN
China
Prior art keywords
index
xpath
document
tree
inquiry
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.)
Active
Application number
CN201510061947.8A
Other languages
English (en)
Other versions
CN104615720A (zh
Inventor
陈琳
张学伟
陈海涛
黄新波
汤汨宝
房亚为
郑萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
" Academic Magazine (cd-Rom) " Co Ltd Of E-Magazine Society
TONGFANG KNOWLEDGE NETWORK (BEIJING) TECHNOLOGY Co Ltd
Original Assignee
" Academic Magazine (cd-Rom) " Co Ltd Of E-Magazine Society
TONGFANG KNOWLEDGE NETWORK (BEIJING) TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by " Academic Magazine (cd-Rom) " Co Ltd Of E-Magazine Society, TONGFANG KNOWLEDGE NETWORK (BEIJING) TECHNOLOGY Co Ltd filed Critical " Academic Magazine (cd-Rom) " Co Ltd Of E-Magazine Society
Priority to CN201510061947.8A priority Critical patent/CN104615720B/zh
Publication of CN104615720A publication Critical patent/CN104615720A/zh
Application granted granted Critical
Publication of CN104615720B publication Critical patent/CN104615720B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • G06F16/835Query processing
    • G06F16/8365Query optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种基于索引的XML文档查询优化方法,所述方法包括:构建XPath查询所需路径的索引;将XPath表示为树形的查询形式;对树形表示的查询中的任意节点,根据索引获取相应文档标识集合,通过集合运算对文档是否匹配XPath进行筛选本发明通过利用简单的集合运算,借助索引的优势,避免了不必要的数据访问和操作,以及复杂的数据结构的构造与销毁,从而使基于XPath匹配的筛选在实际性能上得到大大提升,增强了其可用性。

Description

一种基于索引的XML文档查询优化方法
技术领域
本发明涉及面向XML文档数据的查询优化方法,尤其涉及一种基于索引的XML文档查询优化方法。
背景技术
XML是一种应用广泛的数据表示与传输标准,随着越来越多的基于XML的文档出现,对XML文档数据进行管理成为一种迫切的需求。近年来,原生XML数据库技术得到快速发展,针对XML数据模型特点研发了新型的存储、索引、查询等技术。
XPath是一种标准的XML查询语言,是XQuery的子集,是操作XML文档的核心,经常用于从XML文档中定位数据片段,测试XML文档是否满足需求等。XPath的实现技术得到了广泛关注,典型的实现技术包括基于自动机的方法、基于Twig的整体匹配方法等。然而,在数据库的背景下,当数据量变得越来越大时,现有技术方法对于高效的XPath查询应答具有一定的局限性,一方面由于数据本身的复杂性,XML数据是一种层次嵌套的结构,并不是平面化的数据模型,另外XPath还需要考虑文档序;另一方面是因为查询算法的复杂性,通常需要构建复杂的数据结构,进行代价高昂的迭代和排序操作。
索引是一种特殊的数据结构,对管理的数据进行特殊编排,以实现快速访问所需要数据的目标。专利申请号为“CN103177120A”的专利描述了一种基于索引的XPath查询模式树匹配方法,将XPath查询转换为模式树匹配问题,再通过访问所涉及的模式树节点的索引数据,利用整体匹配的Twig算法,完成XPath的求值,该方法在一定程度上解决了XPath查询海量数据的问题,但当数据规模持续增长,算法本身的开销越来越大,使得该方法的可用性下降。
发明内容
为解决上述技术问题,本发明的目的是提供一种基于索引的XML文档查询优化方法,该方法针对应用XPath对文档进行匹配过滤的场景(典型的应用包括信息检索、SQL/XML中的XMLExists等),提取了一个XPath子集,通过改进的索引结构,可以通过简单的集合运算实现对XPsth筛选的应答,既提升了查询性能,又提高了索引的空间性能。
本发明的目的通过以下的技术方案来实现:
一种基于索引的XML文档查询优化方法,该方法包括:
构建XPath查询所需路径的索引;
将XPath表示为树形的查询形式;
对树形表示的查询中的任意节点,根据索引获取相应文档标识集合,通过集合运算对文档是否匹配XPath进行筛选。
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
本发明通过利用简单的集合运算,借助索引的优势,避免了不必要的数据访问和操作,以及复杂的数据结构的构造与销毁,从而使基于XPath匹配的筛选在实际性能上得到大大提升,增强了其可用性。
附图说明
图1是基于索引的XML文档查询优化方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合实施例及附图对本发明作进一步详细的描述。
如图1所示,为基于索引的XML文档查询优化方法,该方法包括以下步骤:
步骤10构建XPath查询所需路径的索引;
对于任意符合上文语法要求的XPath查询,将XPath表示为树结构,其中谓词和逻辑连接符会引入分支。针对这样的一种树形表示的查询,对于从根到任意叶节点的路径,都需要在与之对应的路径上创建索引,其中索引的键为对应的数据内容,索引的值为对应的文档标识。
步骤20将XPath表示为树形的查询形式;
对XPath进行解析,经词法、语法分析,构成语法树,即树形表示的XPath查询。
步骤30对树形表示的查询中的任意节点,根据索引获取相应文档标识集合,通过集合运算,对文档是否匹配XPath进行筛选。
对树形表示的查询的中间节点,“or”操作引入的中间节点按集合并运算处理,其他中间节点按集合交运算处理。对树形表示的查询进行自底向上的求值,当计算完根节点后,便得到了最终匹配的文档标识集合,即对应满足XPath的文档集合。
上述实施例适用的XPath语句是XPath的一个真子集,涵盖了常用的XPath表达式及功能,具体语法形式如下:
<OPath>::=<RootFork>?<NonForkPath>
<RootFork>::=/<RootElemName><PosPred>?<LPred>*
<RootElemName>::=nameTest|*
<PosPred>::=[num]|[<PosFun><Cmp>num]
<PosFun>::=position()
<LPred>::=<Pred><LogicCom><LPred>|not(<LPred>)
<NonForkPath>::=//<relPath>|/<relPath>
<relPath>::=<simplePath>|<simplePath><PosPred>|<simplePath><Pred>
<simplePath>::=<step>|<simplePath>/<step>|<simplePath>//<step>
<step>::=nametTest|@nameTest|*|.
<Pred>::=[<simplePath>]|[<PathPred>]
<PathPred>::=<simplePath><Cmp>value
<Cmp>::=<|<=|=|>=|>|!=
<LogicCom>::=and|or
num整数值
value类型值
nameTest QName类型名称
直观上,本发明所支持的XPath真子集对应于一种只在根的位置进行分叉的查询,其思想是确保不同简单路径相交处在文档中是唯一的,从而可以通过整个文档标识的交集替换复杂的结构连接。原则上,只要能确保查询的中间节点在文档中的唯一性,便可放宽语法限制,采用本方法进行处理。因此,在模式可知的情况下,本实施例有进一步改进的空间。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (4)

1.一种基于索引的XML文档查询优化方法,其特征在于,所述方法包括:
构建XPath查询所需路径的索引;
将XPath表示为树形的查询形式;
对树形表示的查询中的任意节点,根据索引获取相应文档标识集合,通过集合运算对文档是否匹配XPath进行筛选;
对树形表示的查询的中间节点,“or”操作引入的中间节点按集合并运算处理,其他中间节点按集合交运算处理;通过索引获取语法树上叶节点对应的文档标识集合,对树形表示的查询进行自底向上的求值,当计算完根节点后,便得到了最终匹配的文档标识集合,即对应满足XPath的文档集合。
2.如权利要求1所述的基于索引的XML文档查询优化方法,其特征在于,所述构建XPath查询所需路径的索引具体包括:根据XML数据模式和拟支持的XPath查询,创建路径索引。
3.如权利要求1所述的基于索引的XML文档查询优化方法,其特征在于,所述将XPath表示为树形的查询形式具体包括:对XPath进行解析,经词法、语法分析,构成语法树。
4.如权利要求1所述的基于索引的XML文档查询优化方法,其特征在于,对路径索引的键为对应的数据内容,索引的值为对应的文档标识。
CN201510061947.8A 2015-02-05 2015-02-05 一种基于索引的xml文档查询优化方法 Active CN104615720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510061947.8A CN104615720B (zh) 2015-02-05 2015-02-05 一种基于索引的xml文档查询优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510061947.8A CN104615720B (zh) 2015-02-05 2015-02-05 一种基于索引的xml文档查询优化方法

Publications (2)

Publication Number Publication Date
CN104615720A CN104615720A (zh) 2015-05-13
CN104615720B true CN104615720B (zh) 2018-05-11

Family

ID=53150162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510061947.8A Active CN104615720B (zh) 2015-02-05 2015-02-05 一种基于索引的xml文档查询优化方法

Country Status (1)

Country Link
CN (1) CN104615720B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104935674A (zh) * 2015-07-08 2015-09-23 成都梦工厂网络信息有限公司 云端推送系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929996A (zh) * 2012-10-24 2013-02-13 华南理工大学 XPath查询优化方法及系统
CN103177120A (zh) * 2013-04-12 2013-06-26 同方知网(北京)技术有限公司 一种基于索引的XPath查询模式树匹配方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603347B2 (en) * 2004-04-09 2009-10-13 Oracle International Corporation Mechanism for efficiently evaluating operator trees

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929996A (zh) * 2012-10-24 2013-02-13 华南理工大学 XPath查询优化方法及系统
CN103177120A (zh) * 2013-04-12 2013-06-26 同方知网(北京)技术有限公司 一种基于索引的XPath查询模式树匹配方法

Also Published As

Publication number Publication date
CN104615720A (zh) 2015-05-13

Similar Documents

Publication Publication Date Title
CN109445834B (zh) 基于抽象语法树的程序代码相似性快速比较方法
CN104123374B (zh) 分布式数据库中聚合查询的方法及装置
CN106372177B (zh) 支持混合数据类型的关联查询及模糊分组的查询扩展方法
CN105335479B (zh) 一种基于sql的文本数据统计实现方法
CN103177120B (zh) 一种基于索引的XPath查询模式树匹配方法
CN106610999A (zh) 查询处理方法和装置
CN108009296B (zh) 一种基于Hbase的SQL查询方法、系统及相关装置
CN103778185A (zh) 一种用于数据库审计系统的sql语句解析方法和系统
US20110302187A1 (en) Schema definition generating device and schema definition generating method
CN102156740A (zh) Sql语句的处理方法及系统
CN107016018A (zh) 数据库索引创建方法及装置
CN102346765B (zh) 一种查询内存数据的方法及装置
US9053207B2 (en) Adaptive query expression builder for an on-demand data service
CN102819600B (zh) 面向电力生产管理系统关系数据库的关键词搜索方法
CN109558166A (zh) 一种面向缺陷定位的代码搜索方法
CN109739882A (zh) 一种基于Presto和Elasticsearch的大数据查询优化方法
CN105378724B (zh) 一种数据查询方法、装置及系统
CN109063114A (zh) 能源云平台的异构数据集成方法、装置、终端及存储介质
CN107729428A (zh) 一种基于Presto和Elasticsearch的SQL查询方法
CN108766507A (zh) 一种基于CQL与标准信息模型openEHR的临床质量指标计算方法
CN104462095B (zh) 一种查询语句公共部分的提取方法及装置
WO2008011294A1 (en) Semantic aware processing of xml documents
CN107291938A (zh) 订单查询系统及方法
CN103902651B (zh) 一种基于MongoDB的云端代码查询方法与装置
CN104615720B (zh) 一种基于索引的xml文档查询优化方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Chen Lin

Inventor after: Zhang Xuewei

Inventor after: Chen Haitao

Inventor after: Huang Xinbo

Inventor after: Tang Mibao

Inventor after: Fang Yawei

Inventor after: Zheng Ping

Inventor before: Chen Lin

Inventor before: Zhang Xuewei

Inventor before: Chen Haitao

Inventor before: Huang Xinbo

Inventor before: Tang Mibao

Inventor before: Fang Yawei

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant