论文部分内容阅读
全文检索技术的研究已经成为近几年来的热点,并且取得了一定的成果和突破。在教育领域中,大量的有关教育的信息存放在数据库中,其中既有传统的结构化信息,如学籍信息、成绩等;也有非结构化的文本信息,对文本信息的查询就需要用到全文检索技术。为了让教育工作者用较短的时间在数据库海量的多种类型的信息中找到自己的所需,是需要我们迫切解决的一个问题,也是这篇论文研究的意义所在。近年来,经过不断研究和改进,文本数据库的整体性能有了长足进步,可以应对全文检索的大多数需求。但是文本数据库主要针对文本数据查询,功能单一,对传统的结构化数据查询支持很差。目前只有一些大型商用关系数据库(Oracle,DB2等)对全文检索与结构化数据的联合查询有较好的支持,但是这些数据库使用费用昂贵,经费不足的教育机构无法承受。当今,以MySQL和PostgreSQL为代表的开源关系数据库已纷纷加入全文检索应用支持,能够实现对全文检索与结构化数据的联合查询。但是,在遇到数据量很大并且需要将查询结果进行相关性排序输出时,它们的全文检索性能往往不能满足用户需求,故对全文检索效率进行改进具有一定的应用价值。本文以PostgreSQL数据库为研究对象,首先对PostgreSQL数据库做了简要介绍,然后分析了PostgreSQL FTS(全文检索子系统)的检索流程,研究了其原有的GIN索引结构及性能。在充分论述了PostgreSQL全文检索性能特点的基础上,提出了一整套全文检索效率改进的实现方案,其中包括:改进基于GIN索引的全文检索流程,构造新的索引结构,对索引扫描方法进行改进等。最后,本文用大量数据进行测试,发现改进后的PostgreSQL全文检索效率有了明显的提高,满足了用户的需求,证明了这篇论文研究的可行性与实用性。