APP下载

关系数据库中XML全文检索系统的研究与实现

2017-12-21吴胜斌

数字技术与应用 2017年10期
关键词:关系数据库

吴胜斌

摘要:本文提出一种以关系数据库作为核心的XML全文检索系统,该系统具备全文检索功能,能够进行元素级别的查询,同时还能够将数据库查询与全文检索进行紧密结合,使其能够按照元素与文档的重要程度进行排序。

关键词:关系数据库;XML;全文检索系统

中图分类号:TP311.1 文献标识码:A 文章编号:1007-9416(2017)10-0072-01

社会信息化的发展使传统的关系数据库已经难以满足人们日益提升的应用需求,而XML的发展也使其成为数据交换的全新标准,这也使人们对XML文档的查询开展了大量的研究。当前对XML文档查询的研究主要集中在XML文档的结构化方面,但对于XML关键字的检索方面仍旧处于初步研究阶段。

1 关系数据库中XML全文检索系统的研究

1.1 系统架构的研究

关系数据库中XML全文检索系统的系统架构与SQL Server的体系结构类似,其顶层用户能够利用Web服务来进行检索功能,Web服务器会按照用户检索时的关键字来进行转换,使其转换成SQL传输至服务器后台,关系数据库的查询引擎在检测到用户需要进行全文索引时,会从关系数据库中对XML全文检索引擎进行调用,然后用于查询工作。该系统还能够对全文检索模块进行调用,从而构建出相应的倒排索引。该系统与SQL Server不同的是,SQL Server会利用进程间通信,而SQL Server系统则是将关键字与数据库查询进行了结合。XML全文检索系统具备以下特点,首先,该系统能够支持XML全文检索,对XML文档的检索查询的最高精度能够达到element级别,并按照文档级别来按照用户需求进行选择。其次,XML全文檢索系统与XRank相比,XML全文检索系统与数据库查询引擎实现了紧密的耦合,这也使其能够适用于复杂内容的查询。再次,该系统能够使用户对Rank函数进行灵活定义,进而达到节省检索时间的目的。最后,该系统能够对NOT、AND、OR等多种复杂表达形式的关键词予以支持,利用关系数据库便能够实现SQL语句的逻辑运算[1]。

1.2 Dewey ID编码方式的研究

在传统的倒排索引当中,其在进行索引时只是对文档中单词的位置信息进行了记录,而XML文档不仅要对位置信息进行记录,还要对元素信息进行记录,因此需要对这些XML文档中的元素信息进行编码,编码方式有很多,但能够适用于XML全文检索的只有Dewey ID的研究。Dewey ID编码方式不仅能够对元素所包含的路径信息进行记录,还能够通过不同元素间公共父元素的比较来对最长字符串进行匹配,而这有助于改善多关键字检索时会将最近的公共父元素当做检索结果的问题。在应用Dewey ID编码方式时,应对其进行扩展,扩展后的第一数值便是XML文档的ID。将Dewey ID编码方式进行倒排是最为简单的方法,但这样做会使倒排索引项产生不定长问题,而且需要进行重复存储。因此,为了解决这一问题,还需要在Dewey ID倒排索引的基础上再构建一层自索引,这样做能够有效避免重复存储问题的出现,同时还能够对元素中的关键词位置进行快速查找[2]。

自索引的建立过程中,由于其在进行扫描时是按照从左向右的方式进行的,新结构的增加也只是在最右边,而且平面倒排索引的增长方向是从左向右的,因此对于自索引倒排索引的建立相对较为简单。自索引的倒排建立算法如图1所示。

该算法需要对所有XML文档中的元素进行全部扫描。在采用该算法进行全文检索时,可能存在以下情形,第一种情形是给定的关键字能够返回全部位置信息,这种情形只需要进行遍历G就可以;第二种情形是Dewey ID与给定的关键词返回全部位置信息,这只需要按照Dewey ID的路径并返回位置信息即可,其代价也只是对相应G与自索引树的遍历。第三种情形是文件ID与给定的关键词返回文件时产生关键词的全部位置信息,这种情形可以按照文件ID的顺序进行扫描就能够明确后续文档的开始。

1.3 与查询引擎的结合研究

为了使关系数据库能够与查询引擎实现无缝结合,索引类型可以参照CoDB中的Btree或Hash进行,即建立一种FTI索引类型,这样不仅能够建立索索引,还能够利用Select语句来实现查询。CoDB对索引的设计具有独到之处,它能够非常灵活的对新型索引类型进行加入,并且只需要设置接品函数,并在XML全文检索系统的注册表中对函数进行注入即可。

1.4 重要度计算方式的研究

在系统的重要度计算方式中,应加入衰减率概念,之所以要加入衰减率概念是因为在系统中对XML关键字检索的定义是将下划线部分与粗体字全部作为检索结果,不过下划线部分要明显优于粗体字,因此为了使下划线的重要程度能够高于粗体字部分,需要加入衰减率概念。其计算方式是将检索词的关键字进行找出,然后将ElementA中关键字的权重进行定义,进而明确衰减率的取值范围,并在元素中找出关键词中的各个元素。根据祖先节点中词的重要性是以递减形式呈现的原则能够对元素在检索词的重要度进行计算。关键字的权重可以按照两大原则进行计算,其一是Element名字是关键字时的重要度高,其二是出现频率越高的关键字重要度就越高。利用Rank函数能够对所有XML文档的Rank值进行获取,并利用Order by语句来排序[3]。

2 关系数据库中XML全文检索系统的实现

将关系数据库中XML全文检索系统与SQL Server全文检索系统进行对比,测试集为dblp,测试计算机为内存512M、CPU P4 2.0G、硬盘80G,XML全文检索系统的测试平台为Linux系统,SQL Server全文检索系统的测试平台是Windows 2000 Server,对比内容为建立索引时间、多关键字索引时间与单关键字索引时间。测试结果表明XML系统的索引建立时间与SQL Server系统相差不多,但对查询时间却远远超过SQL Server系统。由此可以证明,关系数据库中XML全文检索系统的检索速度更快,在全文检索功能上要更加优越。

参考文献

[1]苏新宁.基于XML的中文全文检索关键技术及其发展——简评《XML文档全文检索的理论与方法》[J].情报科学,2013,(11):155-158.

[2]林子雨,杨冬青,王腾蛟,张东站.基于关系数据库的关键词查询[J].软件学报,2010,(10):2454-2476.

[3]戴经国,李运智,谢东.关系数据库的关键词检索[J].计算机系统应用,2009,(08):37-42.

猜你喜欢

关系数据库
关系数据库在高炉数据采集系统中的应用
关系数据库技术在计算机网络设计中的应用
基于索引结构的关系数据库关键词检索
一种基于数据图划分的关系数据库关键词检索方法