欢迎光临本站!

为什么搜索引擎的搜索速度这么快

来源:技术探讨    更新时间:2019-12-12 14:49:03    编辑:老王    浏览:279

  笔者在 Google搜索引擎中查询“北京奥运”的相关信息,搜索用时0.21秒,搜索结果的展示几乎是一瞬间就完成了。信息离我们是如此之近,近到只有0.21秒之遥。为什么这些结果只需要花费0.21秒的时间就能来到我们的眼前呢?

  我们从这样几个方面来解答这个问题。

  1.合理的搜索引擎架构

  搜索引擎分为4大系统,即下载系统、分析系统、索引系统和查询系统。这4个系统中下载系统、分析系统,以及索引系统称为搜索引擎的“离线部分"( offline part),只有查询系统称为在线部分"( online part)离线部分承担了数据制作的工作,而查询系统承担了数据服务的工作。数据制作的速度没有那么快速一个网页依次经历抓取、分析和索引入库的漫长过程,这些过程对于用户都是未知的。用户不需要等待这些操作过程,实际用户查询的都是准备好的数据。一般搜索引擎的索引库都有一个做库周期,这个周期内查询系统使用同一个索引库而并不更新。这部分工作主要是缩短做库周期使得尽可能新的数据能够被检索到。数据服务的速度相当快,得到用户的查询请求后立即完成查询工作,并且返回用户结果。

  2.能够支持快速检索的倒排索引库

  倒排索引库是目前为止最优秀并适合大规模数据检索的数据结构,它能够有效且快速地检索出与查询相关的文档。在查询系统中搜索结果页缓存不命中的情况下,也能够快速地检索。当然关于倒排索引的很多优化设计方面的技巧本书没有展开探讨,这些需要学习计算机操作系统等深入的知识。有兴趣的读者可以参考 Google搜索引擎的一些设计技巧[S. Ghemawat et a2003],进步了解索引库的设计。

  3.查询系统的一些优化

  查询系统做了大量的优化工作,其中最为显著的优化就是查询结果缓存的技巧。对于某个热门查询词,例如“北京奥运”,由于大量的用户会在不同的时段执行这样的查询,并且同一个用户也会可能连续地查询这样的热门查询词,因此这些查询结果页都是以静态网页的形式被保存在内存中。一旦这些查询词被再次查询,实际上是返回了放在缓存中由前人已经完成的搜索结果页。

  综上,搜索引擎“快”的工作主要是由索引系统和查询系统担当,这两大系统共同满足了搜索系统“查得快”的需求。

评论区

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

相关内容

点击排行

随机新闻

评论排行榜