论文部分内容阅读
在上世纪90年代,以因特网为代表的计算机网络还是少量研究人员使用的高深技术,但是很快就和计算机硬件一起以极其惊人的速度进入到普通民众的生活中。同时,计算机上产生的数据越来越多。如何在大量信息中找到有用信息成为研究者们关注的焦点。这过程中一批通用搜索引擎诞生,例如Google、Yahoo、百度等。搜索引擎的发展越来越呈现出被少数几个公司掌控的局面,而通用搜索引擎在机构内部常常无法满足用户的搜索需求。本文采用开源的Apache分布式框架Hadoop与全文检索引擎框架Lucene来完成在相对规模较大、产生文件量较多的局域网范围内实现分布式搜索引擎。设计方案主要分为三个部分:第一部分针对用户提交的源文件建立索引,存储到HDFS中,提出了分类策略,针对不同文件格式分别建立索引,独立存储索引文件,解决了以往单机环境下索引数据量过大而成为服务器处理瓶颈的问题,同时还保存了源文件的分类特征;第二部分根据用户提交的检索关键词,在第一部分建立的分类索引文件中检索出结果后返回给用户,本文提出采用基于远程过程调用进行数据统计的方式解决了分布式环境下衡量检索关键词与检索结果相关性计算中部分计算因子在获取上存在障碍的问题;第三部分利用用户检索的历史结果,提供用户在历史检索结果中快速检索。本文针对响应速度的要求,借鉴操作系统中缓存的思想,充分利用用户的历史检索记录挖掘用户检索行为规律,提出基于历史检索记录的快速检索方案,该方案针对被常检索到的文件,建立单独的索引进行存储,在用户选择快速检索时将优先在该基于用户历史检索记录挖掘出的被频繁检索的文档单独建立的索引文件中进行检索。该系统采用快速检索与全局检索相结合的方式,在分布式环境下实现了搜索引擎的基本功能,并且已经投入实际应用。