基于云平台的分布式索引与检索系统的设计与实现
作者单位:东北大学
学位级别:硕士
导师姓名:鲍玉斌
授予年度:2011年
学科分类:081203[工学-计算机应用技术] 08[工学] 0835[工学-软件工程] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:云计算 分布式检索 并行索引 Hadoop Lucene 倒排索引
摘 要:随着计算机技术的发展和互联网时代的到来,互联网上的信息呈爆炸式增长。面对这些海量数据,随着数据文件的增多,索引时间呈线性增长;当承载高访问量或者索引数据规模很大时,检索服务器无法在有限的时间内处理请求。如何快速的建立索引以及如何高效的检索成为极其关键的问题。另一方面,现在的搜索引擎(如Google和百度),检索结果只包含网页数据,而没有结构化数据,用户必须选择某个网页寻找所需要的结构化信息,检索结果不能直观的展现事物的详细信息,用户体验效果不理想。解决这两方面的问题对从互联网上获取信息具有极其重要的意义。 为了解决上述问题,本文设计并实现了一种分层的基于云计算平台的分布式索引与检索系统。首先,针对数据量大和单机索引慢的问题,提出了一种使用Lucene并行建立倒排索引的方法,该方法运行在Hadoop集群的多个节点上,使多台机器同时建立索引,大大加快了索引建立的速度。其次,提出了一种基于Katta的分布式检索方法,成功解决了高访问量和索引数据规模大导致的检索慢问题。检索时一方面分级缓存检索结果,如果缓存命中则直接返回缓存结果,未命中时才检索索引;另一方面将索引分布到Katta集群的多个节点上并备份索引文件,检索时多个节点同时搜索,提高了检索速度以及系统的可靠性可扩展性。再次,提出了一种以树形结构展示结构化数据,以类百度和谷歌的形式展示网页数据的数据展示方法,改善了用户查询体验。最后通过对网页数据进行分析,选择包含手机和公司信息的网页数据对系统进行了全面的测试。 通过实验及实际应用证明,本文所设计的系统可以很快地对海量数据建立索引,并能够快速地响应查询,查询结果中直观的展示结构化数据,同时具有良好的可扩展性及容错性。