CN103123650B - 一种基于整数映射的xml数据库全文索引方法 - Google Patents
一种基于整数映射的xml数据库全文索引方法 Download PDFInfo
- Publication number
- CN103123650B CN103123650B CN201310071130.XA CN201310071130A CN103123650B CN 103123650 B CN103123650 B CN 103123650B CN 201310071130 A CN201310071130 A CN 201310071130A CN 103123650 B CN103123650 B CN 103123650B
- Authority
- CN
- China
- Prior art keywords
- full
- node
- integer
- text
- information
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于整数映射的XML数据库全文索引方法,所述方法包括:a对XML文档集合建立全文索引;b利用建好的全文索引进行全文检索;所述步骤a具体包括:计算并存储XML文档中数据节点对应的信息;解析用户输入的XPath路径表达式,获取对应的节点集;建立持久化的整数映射,将节点集中的每个节点映射到一个唯一的整数;对节点内容进行全文索引;所述步骤b具体包括:解析用户输入的XML全文查询语句;在关系表全文索引中查询关键字并返回虚拟列号整数;在B树中查询虚拟列号整数,将匹配的节点结构信息与全文信息返回给用户。本发明提供的索引占用物理空间小,不存在重复存储的路径信息,提高了查询效率。
Description
技术领域
本发明涉及数据库索引领域,尤其涉及一种基于整数映射的XML数据库全文索引方法。
背景技术
XML(ExtensibleMarkupLanguage),作为一种广泛使用的可扩展标记语言,正成为数据信息管理领域的标准之一,而针对XML数据进行管理的数据库技术也正在快速地发展。在如何存储和检索XML数据这一领域,主要有两种方法:一种是在关系数据库中扩充相应功能,使之能胜任XML数据的处理;一种是充分考虑XML数据的特点,量身定做的原生XML数据库(NativeXMLDatabase),以自然的方式来处理XML数据。
在传统的关系数据库中,全文索引和检索作为不可缺的功能点而存在,相应的技术方案已经比较成熟。一般来说,全文索引会采用倒排索引的方式来存储某个单词在一个文档或一组文档中的存储位置,词频等信息的映射。在进行全文检索时,将检索语句切分成关键词后利用倒排索引查询,将关键词命中的记录行号,词频和位置信息进行进一步处理后返回给用户。
同样地,全文检索功能对于原生XML数据库来说也是一个重要的功能点。然而与关系数据库不同的是,由于XML文档具有特定的层次结构,因此在全文检索时需要进一步定位的是特定结构和内容的节点,而不仅仅是某篇文档。例如,用户可能会通过XPath语句“//book/content[contains(text(),“密码”)]”查询文档中所有book节点的子节点content,且该节点的文本内容中包含“密码”。
针对XML数据库的全文查询,目前的解决方案可以分为两种:一种方案是对文本内容建立倒排索引,并在单词对应的信息中保存路径信息,以满足结构查询的要求,查询时先根据关键词定位单词,然后再判断单词对应的路径是否满足用户输入的路径,这种方法的不足之处是当单词的数目远大于路径的数目时,会造成索引占用的物理空间过大,且重复存储的路径信息过多,影响查询效率;一种方案是根据路径结构信息建立路径索引,并在每个路径定位的路径末端节点信息中保存节点的文本内容,这种方法会导致每次查询时的字符串操作代价很大。因此,对于这种特殊的结构与数据相混合的XML全文查询,需要设计一种更有效率的全文索引结构和全文检索方法。
发明内容
为解决上述技术中存在的问题与缺陷,本发明提供了一种基于整数映射的XML数据库全文索引方法,该方法以可持久化整数映射的方式来实现XML全文索引,适用于XML数据库。所述技术方案如下:
一种基于整数映射的XML数据库全文索引方法,所述方法包括:
a对XML文档集合建立全文索引;b利用建好的全文索引进行全文检索所述步骤a具体包括:
计算并存储XML文档中数据节点对应的信息;
解析用户输入的XPath路径表达式,获取对应的节点集;
建立持久化的整数映射,将节点集中的每个节点映射到一个唯一的整数;
对节点内容进行全文索引;
所述步骤b具体包括:
解析用户输入的XML全文查询语句;
在关系表全文索引中查询关键字并返回虚拟列号整数;
在B树中查询虚拟列号整数,将匹配的节点结构信息与全文信息返回给用户。
本发明提供的技术方案的有益效果是:
本发明基于可持久化整数映射的方式,调用关系数据库的全文索引机制来实现XML数据库中XML文档节点全文索引,该索引占用物理空间小,不存在重复存储的路径信息,提高了查询效率。
附图说明
图1基于整数映射的XML数据库全文索引方法流程图;
图2是创建XML全文索引的过程示意图;
图3是进行XML全文检索的示意图;
图4是整数映射对应示例图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述:
本实施例提供了一种基于整数映射的XML数据库全文索引的方法,如图1所示,该方法包括如下步骤:
步骤10对XML文档集合建立全文索引;
步骤20利用建好的全文索引进行全文检索。
上述步骤10具体包括(如图2所示):
步骤101计算并存储XML文档中数据节点对应的信息;
对XML文档集合进行分析,计算每个数据节点对应的前缀编码信息和结构概要信息,并创建该XML文档集合对应的结构概要树,将数据节点的信息存储在该树中。概要树节点与概要信息编号一一对应,每个编号对应着一个数据节点集。
步骤102解析用户输入的XPath路径表达式,获取对应的节点集;
所述节点集是通过计算XPath路径表达式在结构概要树里对应的编号集合,然后获取每个编号对应的节点集。
步骤103建立持久化的整数映射,将节点集中的每个节点映射到一个唯一的整数;
上述整数映射由一个B树或者其他可实现映射的数据结构进行管理,每个全文索引对应一棵B树,节点集里的每一个节点分配一个整数,这样便形成了一个以整数为键,以节点对应的路径编号和前缀编码为值的键值对,然后将键值对插入B树。
步骤104对节点内容进行全文索引;
将节点对应的整数作为一个虚拟的列号,和节点的全文数据绑定到一起,插入到关系表的全文索引结构中。
上述步骤10在创建XML文档中对应某个路径的全文索引时,首先解析用户输入的XPath路径表达式,获取该路径在XML结构概要树中的编号集合和满足编号的所有数据节点。每获取一个符合编号的XML节点,就给该节点分配一个整数值,以此作为整数映射的Key,并将节点信息有关的路径编号(PCR)和前缀编码(DeweyID)作为Value,形成一个键值对(如图4所示),将这个键值对插入到例如B树的数据结构中。再将整数值与节点的文本数据一起插入到关系表的全文索引中,将该文本数据利用字典进行解析分词,使用倒排索引的方式,实现全文索引信息的保存。对每个节点重复以上过程,完成所有节点的整数映射,完成数据在关系表全文索引中的插入,实现XML的全文索引的建立。
上述步骤20具体包括(如图3所示):
步骤201解析用户输入的XML全文查询语句;
通过路径表达式指定查询节点的结构条件,关键词指定查询节点的全文内容条件。
步骤202在关系表全文索引中查询关键字并返回虚拟列号整数;
步骤203在B树中查询虚拟列号整数,将匹配的节点结构信息与全文信息返回给用户;
查询虚拟列号整数时,获取该整数映射的节点的结构信息,如果该结构信息与用户输入的路径表达式相匹配,则将符合条件的节点及其结构和全文信息返回给用户。
在执行上述步骤20过程中,当对XML文档某个路径进行全文查询时,和创建全文索引步骤102类似,首先将路径进行解析,获取该路径在XML结构摘要树中对应的编号集合。然后通过关系表的全文索引查询用户输入的关键字,获取与之相匹配的虚拟列号集,接着通过访问存储整数映射的B树,获取对应的节点的路径编号和前缀编码,如果查询路径对应的编号与节点的路径编号一致,则将符合的节点信息返回给用户,完成XML的全文查询过程。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于整数映射的XML数据库全文索引方法,其特征在于,所述方法包括:a对XML文档集合建立全文索引;b利用建好的全文索引进行全文检索;所述步骤a具体包括:
计算并存储XML文档中数据节点对应的信息;对XML文档集合进行分析,计算每个数据节点对应的前缀编码信息和结构概要信息,并创建该XML文档集合对应的结构概要树,将数据节点的信息存储在该树中;概要树节点与概要信息编码一一对应,每个编号对应着一个数据节点集;
解析用户输入的XPath路径表达式,获取对应的节点集;所述节点集是通过计算XPath路径表达式在结构概要树里对应的编号集合,然后获取每个编号对应的节点集;
建立持久化的整数映射,将节点集中的每个节点映射到一个唯一的整数;
对节点内容进行全文索引;
所述整数映射由一个B树进行管理;
所述步骤b具体包括:
解析用户输入的XML全文查询语句;
在关系表全文索引中查询关键字并返回虚拟列号整数;
在B树中查询虚拟列号整数,将匹配的节点结构信息与全文信息返回给用户。
2.根据权利要求1所述的基于整数映射的XML数据库全文索引方法,其特征在于,所述数据节点对应的信息包括前缀编码信息和结构概要信息。
3.根据权利要求1所述的基于整数映射的XML数据库全文索引方法,其特征在于,所述每个全文索引对应一棵B树,节点集的每一个节点对应一个整数,并将以整数作为键的键值对插入到B树中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310071130.XA CN103123650B (zh) | 2013-03-06 | 2013-03-06 | 一种基于整数映射的xml数据库全文索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310071130.XA CN103123650B (zh) | 2013-03-06 | 2013-03-06 | 一种基于整数映射的xml数据库全文索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103123650A CN103123650A (zh) | 2013-05-29 |
CN103123650B true CN103123650B (zh) | 2016-03-02 |
Family
ID=48454626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310071130.XA Active CN103123650B (zh) | 2013-03-06 | 2013-03-06 | 一种基于整数映射的xml数据库全文索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103123650B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346331A (zh) * | 2013-07-23 | 2015-02-11 | 北大方正集团有限公司 | Xml数据库的检索方法及系统 |
US9659045B2 (en) * | 2013-11-08 | 2017-05-23 | Oracle International Corporation | Generic indexing for efficiently supporting ad-hoc query over hierarchically marked-up data |
US10204135B2 (en) * | 2015-07-29 | 2019-02-12 | Oracle International Corporation | Materializing expressions within in-memory virtual column units to accelerate analytic queries |
CN108170726A (zh) * | 2015-10-21 | 2018-06-15 | 华为技术有限公司 | 数据查询方法和装置 |
CN107193849A (zh) * | 2016-03-15 | 2017-09-22 | 北大方正集团有限公司 | Xml文件全文检索索引生成方法及装置 |
CN106528797A (zh) * | 2016-11-10 | 2017-03-22 | 上海轻维软件有限公司 | 基于Elasticsearch的DSL查询方法 |
CN107038148A (zh) * | 2017-04-25 | 2017-08-11 | 大象慧云信息技术有限公司 | Xml文档的解析方法及解析装置 |
CN108108406A (zh) * | 2017-12-08 | 2018-06-01 | 上海电机学院 | 一种基于xml混合模式查询处理算法 |
CN112825068B (zh) * | 2019-11-21 | 2023-11-28 | 北京达佳互联信息技术有限公司 | 数据血缘生成方法及装置 |
CN115935946B (zh) * | 2022-12-05 | 2023-08-15 | 成都延华西部健康医疗信息产业研究院有限公司 | Hl7v3标准/fhir标准的解析映射处理方法及装置 |
CN117290390B (zh) * | 2023-09-07 | 2024-05-17 | 中通服网络信息技术有限公司 | 一种基于特殊索引内存映射在大数据检索上的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1987853A (zh) * | 2005-12-23 | 2007-06-27 | 北大方正集团有限公司 | 关系型数据库与全文检索相结合的检索方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089382B2 (en) * | 2000-10-13 | 2006-08-08 | Xpriori, Llc | Method of operating a hierarchical data document system having a duplicate tree structure |
-
2013
- 2013-03-06 CN CN201310071130.XA patent/CN103123650B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1987853A (zh) * | 2005-12-23 | 2007-06-27 | 北大方正集团有限公司 | 关系型数据库与全文检索相结合的检索方法 |
Non-Patent Citations (2)
Title |
---|
一种新的XML索引结构;王竞原;《计算及应用与软件》;20080331;第25卷(第3期);第114-116,144页 * |
大规模集群下XML关键字检索算法设计与实现;周梦婕;《中国优秀硕士学位论文全文数据库 信息科技辑》;20111015(第10期);第15-44页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103123650A (zh) | 2013-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103123650B (zh) | 一种基于整数映射的xml数据库全文索引方法 | |
CN102033954B (zh) | 关系数据库中可扩展标记语言文档全文检索查询索引方法 | |
CN107038207B (zh) | 一种数据查询方法、数据处理方法及装置 | |
CN103646032B (zh) | 一种基于本体和受限自然语言处理的数据库查询方法 | |
US8489597B2 (en) | Encoding semi-structured data for efficient search and browsing | |
TWI480746B (zh) | 使用經結構化之資料儲存器達到較快速全文檢索 | |
US9576011B2 (en) | Indexing hierarchical data | |
CN104809190B (zh) | 一种树形结构数据的数据库存取方法 | |
US8566343B2 (en) | Searching backward to speed up query | |
CN103150404B (zh) | 一种关系-xml混合数据关键字查询方法 | |
CN104504001B (zh) | 面向海量分布式关系数据库的游标构造方法 | |
CN103365992B (zh) | 一种基于一维线性空间实现Trie树的词典检索方法 | |
US8825621B2 (en) | Transformation of complex data source result sets to normalized sets for manipulation and presentation | |
CN104750681A (zh) | 一种海量数据的处理方法及装置 | |
CN109582831B (zh) | 一种支持非结构化数据存储与查询的图数据库管理系统 | |
CN103838837B (zh) | 基于语义模板的遥感元数据集成方法 | |
CN112256821B (zh) | 中文地址补全的方法、装置、设备及存储介质 | |
CN104346331A (zh) | Xml数据库的检索方法及系统 | |
CN107229714B (zh) | 一种基于分布式数据库的全文搜索引擎 | |
CN106503040A (zh) | 适用sql查询方法的kv数据库及其创建方法 | |
CN109284340B (zh) | 资源受限智能对象中关系型数据的存储及检索方法 | |
CN103559270A (zh) | 一种词条的存储和管理方法 | |
Catania et al. | Lazy XML updates: laziness as a virtue, of update and structural join efficiency | |
CN101719162A (zh) | 基于片段模式匹配的多版本开放式地理信息服务访问方法及系统 | |
US11200217B2 (en) | Structured document indexing and searching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |