论文部分内容阅读
随着互联网的发展,搜索引擎要处理的数据量越来越大,对搜索引擎的性能要求越来越高。为了提高信息检索效率,信息检索系统一般都采用倒排索引技术。倒排索引技术是搜索引擎系统的核心组成部分,它的结构设计、存储方式、查询操作和动态更新算法的好坏对信息检索的效率有很大的影响。同样为了提高信息检索的效率,搜索引擎系统中引入了分布式的计算平台,以实现并行计算。Hadoop是一种常用的开源分布式处理平台,已经被应用到许多系统,并且取得了很好的效果。通过Hadoop平台,能比较方便的进行分布式编程,让计算并行化,从而提高系统响应效率。因此,在Hadoop平台上实现倒排索引技术对搜索引擎效率的提高有重要意义。本文利用Hadoop分布式计算平台,使用HDFS文件系统和Map-Reduce的原理,设计并实现了一种基于分布式系统Hadoop的倒排索引结构。这种结构的倒排索引,能够在一定程度上节省磁盘存储空间,提高信息检索效率。本文首先研究分析了Hadoop平台的系统架构、主要组成部分以及其中的两个关键技术——Map-Reduce编程模型和HDFS文件系统的原理;研究了Hadoop中Map-Reduce作业的提交和任务的运行流程,分析了整个过程中数据流的走向,以及基于Hadoop的应用程序设计原理与方法;在分析传统的倒排索引技术实现方案及相关算法后,验证了在Hadoop平台下实现的可能性倒排索引的可能性。在此基础上,在Hadoop平台下设计了一种倒排索引结构,该结构主要由主索引、段索引、删除索引和词典库等部分组成。然后详细介绍了该结构的各组成部分。设计了基于词频高低和词频排名的倒排文件存储策略,以及倒排项中数字信息的压缩编码方法——综合编码压缩法;设计了倒排文件的压缩格式的选择。针对这种倒排索引的结构,设计了Map-Reduce方式的倒排索引构建算法、基于段索引的倒排索引更新算法、基于删除索引的倒排索引删除算法以及基于词典库的倒排索引查询算法。最后在Hadoop分布式集群环境编程实现了以上结构的倒排索引和相关操作算法,并且进行了测试和验证。