在之前的文章中我们讲解了查询服务文档排序以及中文自动摘要的生成,有了以上两点,搜索引擎就可以为用户生成搜索结果页面了,下面我们就讲解搜索引擎是如何实现这个技术的。

在讲解搜索引擎生成搜索结果页面之前,我们还得了解一下索引节点的分布式。

索引节点的分布式

由于搜索引擎预处理过程中生成的倒排索引文件是很大的,以TB级计算的,如此庞大的文件不可能放在一个服务器上,这样既不安全,也不高效。因此,搜索引擎会对倒排文件进行分布式部署,分布到各个索引结点中。而检索就是针对各个节点进行的。

索引节点的分布式

搜索结果页生成步骤

  • 1、搜索请求发给检索代理,检索代理进行查询词分词。
  • 2、查询词分词后的结果发给各个索引节点,各个节点将各自倒排文件中检索出的文档列表返回给检索代理。
  • 3、检索代理重新排序来自各个检索节点的文档,取出排名前n个结果文档作为结果页的候选文档。
  • 4、通过自动摘要模块生成摘要信息。
  • 5、合并结果,动态生成搜索结果页。

流程如下图所示:

搜索结果页生成步骤

小结

本节教程讲解了搜索引擎如何生成搜索结果页面的,同时搜索引擎在实际应用中发现,80%的搜索在一段时间内是重复进行的,因此搜索引擎为了减少重复查询,又引入了搜索结果页缓存技术,该技术我们在下一节教程《4.4、搜集引擎信息查询服务--搜索结果页缓存》中探讨。