论文部分内容阅读
随着社会的信息化,传统的关系数据库已经不能满足人们的某些应用。在关系数据库上增加新的功能特性成为当前的主流的研究方向。例如地理空间数据库,流数据库,XML数据库和全文检索就是数据库系统急待增加的功能,目前DB2 Version 9已经实现对XML数据的支持,Oracle, SQL Server等主流产品已经支持全文检索功能。一旦数据库拥有了全文检索的功能,用户就可以通过SQL语句进行关键字的查询,而且可以完成聚集、连接等一系列复杂的查询。这是一般搜索引擎所不能办到的。另一方面伴随着XML逐渐成为数据交换的标准,对XML文档的查询也是当前的一个研究热点。随着网络和Internet的发展,数据交换的能力已成为新的应用系统的一个重要的要求。XML的优势是数据的可交换性(portable),同时在数据应用方面还具有如下优点:(1)XML文件为纯文本文件,不受操作系统、软件平台的限制;(2)XML具有基于Schema自描述语义的功能,容易描述数据的语义,这种描述能为计算机理解和自动处理;(3)XML不仅可以描述结构化数据,还可有效描述半结构化,甚至非结构化数据。目前业界主流的产品实现还是集中在对XML文档的结构化查询上,而对XML的关键字检索的工作还处于刚刚起步的阶段。结构化的XML文档为什么还需要关键字检索呢?关键字的检索有自己的特点:用户不需要知道XML的结构信息也不需要知道复杂的XML查询语言。对于普通用户来说他们更喜欢这种简单关键字的检索。因此XML的关键字检索有着非常广阔的应用前景。本文以公司项目中开发的Sphinx关系数据库为基础,在其上设计并实现了XML全文检索的功能。我们的系统有如下一些特点:●支持XML文档的检索,查询的粒度可以控制,可以是在XML文档的元素Element级别也可以是在文档级别。●Sphinx中的全文检索功能和数据库查询引擎句紧密地结合在了一起,用户可以完成一些较为复杂的基于关键字的查询。●设计了一种新的自索引的倒排结构可以很好的应用于XML全文检索。●支持对XML文档的重要度和XML元素的重要度排序。实验证明使用我们的全文检索进行检索时查询速度很快,而且在全文检索的功能上符合用户要求。