论文部分内容阅读
分布式搜索技术是目前一个重要的研究内容。随着因特网的快速发展,当今时代互联网上的数据越来越多,而其中很多信息都是无用的,不需要处理。如何从如此海量的数据中检索到对自己有用的信息,成为搜索引擎主要面临的问题。现在的搜索引擎主要是基于复制集群的大规模集中式系统,也就是整个系统都部署在一个服务器上,这对服务器的性能要求非常高,并且可扩展性很差,然而web技术是不断发展的,最近几年,集中式的系统越来越低效,这就推动了分布式集群技术的快速发展。对于如此海量的web数据,通用搜索引擎也有其弊端,例如查询结果不够全面、搜索结果相对粗糙等,而利用垂直搜索引擎能够很好地解决上述问题,特别是针对某一特定领域提供服务,垂直搜索引擎更加具体、更加有效、更加深入。本文在深入研究分布式技术和垂直搜索的基础上,结合分布式技术和垂直搜索的优势,在视频领域设计并实现一个小型的分布式视频垂直搜索引擎。在深入研究系统需求的基础上,采用两种不同的方案把系统分为线下非实时过程和实时搜索显示过程。非实时过程主要是海量视频数据的采集和存储、分布式索引的建立,此过程是通过Hadoop来实现,主要利用Hadoop的海量批处理能力。由于Hadoop的实时性不是很好,所以对于实时分布式搜索部分,本文提出了Elastic Search搜索方案,Elastic Search的实时性能很好,能够胜任分布式实时搜索的要求。同时,针对用户对搜索引擎的要求,本文从两个方向完成改进。第一,本文设计了二级缓存策略和三层缓存存储机制。实验表明,引入缓存系统后,能够较好地改善用户体验。第二,对于搜索引擎中不同用户的相同查询,会返回相同的结果的问题,本文提出了基于用户兴趣模型的二次排序方案,实验表明,搜索结果更能满足用户的需求。