分布协作式搜索引擎模型及算法研究
【摘要】:互联网的迅速发展对集中式搜索引擎的可扩展性、覆盖率、实时性、专业性、个性化、多元化等提出了挑战。云计算面向服务的理念为搜索引擎的发展提供了新的机遇,而集中式搜索引擎只关注对人类用户的服务,忽视了互联网上的虚拟用户——网站,从而无法为网站提供量身定做的信息检索服务。分布式搜索引擎较好地解决了集中式搜索引擎所面临的诸多问题,更加适应下一代互联网。
本文提出了分布式搜索引擎可分配计算模型,将分布式搜索引擎的体系结构对应为计算供给与需求的均衡状态,对搜索引擎的分布式和集中式具有相同的解释力。模型指出分布式搜索引擎相比于集中式搜索引擎,更加充分地利用了单元节点的计算资源,实现计算的跨网络分配和使用。
本文对分布式搜索引擎的协作式与非协作式进行了对比,指出协作式相对于非协作式而言,具有精度高、资源占用少等优势,所以本文选择分布协作式搜索引擎作为研究对象。
本文讨论了分布协作式搜索引擎系统的计算分配问题,将计算更多地分配到节点以提高系统的可扩展性。本文对分布协作式搜索引擎可能出现的查询效率降低问题进行了研究,提出二次检索的解决方案,即在中心实现以节点为粒度的信息检索,而在节点实现以网页为粒度的信息检索。在此基础上,本文综合考虑计算分配以及查询效率两个方面,提出分布协作式搜索引擎二次检索架构。
针对具有二次检索的分布协作式搜索引擎架构,本文提出了旨在提高中心对节点计算利用效率的任务调度算法——双层定向MapReduce算法,将节点资源统计和用户查询响应两个层面的任务进行整体优化,仿真实验显示,相比于其他算法,本算法有效降低了查询过程通信成本及中心服务器平均负载,代价是中心服务器的负载均衡度在不影响系统整体性能的范围内有所下降。本算法在服务器索引超负荷时自动退化为随机MapReduce算法,而在其他情况下都有明显的优势。
本文将提出的模型、架构及算法应用于真实系统,开发了基于SOA的分布式联邦搜索引擎原型系统。联邦各个节点遵从共同的通信协议,采用SOAP协议进行通信,并通过WSDL形式发布网页检索服务。本文选取两类异构节点验证了系统的高度可扩展性。