搜索引擎缓存机制

2019-12-04 14:57:36  浏览:121  作者:老王

  切有为法,皆如梦勾泡影

  如露亦如电,应作如是观

  《金刚经》

  缓存( Cache)是目前所有搜索引擎都会采用的技术。所谓缓存,就是在高速内存硬件设备内开辟一块数据存储区,用来容纳常见的用户查询及搜索结果(或者索引数据及搜索的中间结果),同时采取一定的管理策略来维护存储区内的数据。当搜索引擎接收到用户查询请求时,首先在缓存系统里查找,如果能够找到则直接返回搜索结果,否则采取正常的搜索流程来返回搜索结果。

  为何搜索引擎要引入缓存机制?一则使用缓存系统能够加快用户查询响应的速度;另外还可以有效地减少搜索引擎后台计算量,节省计算资源。

  对于一个正常的搜索流程,比如用户输入查询请求“搜索引擎技术”,搜索引擎需要分别将存储在磁盘上的两个单词的倒排索引读入内存,之后进行解压缩,然后求两个单词对应倒排列表的交集,找到所有包含两个单词的文档集合,根据排序算法来对每个文档的相关性进行打分,按照相关度输出相关度最高的搜索结果。

  以上这个流程涉及了磁盘读/写、内存运算等一系列操作,相对比较耗费时间和计算资源。如果将本次搜索结果存储在缓存中,下次遇到相同的查询请求,则可以直接将搜索结果返回,不需要经过上述的复杂流程进行计算。缓存一般用最快的内存设备进行存储,所以响应速度非常快,同时也省略了相当多的磁盘读取和计算步骤,有效地节省了计算资源。

  以上搜索加速行为能够成立,其实隐含了一个假设,即:相同的用户查询会反复出现只有这个假设成立,才能够利用以上措施来加快搜索速度,但是问题是这个假设成立吗?

  这涉及用户查询分布本身具有的特点。我们先看下用户搜索请求行为有哪些特点。目前有很多研究集中在分析用户搜索行为,通过对搜索日志的分析,可以得出如下结论。

  1.至少63.5%的搜索引擎用户只看搜索结果第1页的内容(默认是排名头10位的搜索结果);大约117%的搜索引擎用户会翻看搜索结果第2页内容;至少79%的搜索引擎用户只查看搜索结果前3页的内容。

  2.用户发出的查询请求分布符合逆 Power-Law规则,即少数查询占了查询总数的相当比例,而大多数查询出现次数非常少。在十亿规模的搜索日志记录中,63.7%的用户查询只出现过一次,而热门查询占搜索请求总数的比例非常高,最热门的25个用户搜索请求占了用户查询请求总数的12%-1.5%:同时,用户查询有很大比例的重复性,大约有30%-40%的用户查询是重复查询。

  3.用户查询请求具备时间局部性,即大多数重复的用户查询会在较短的间隔时间被再次重复访问。

  通过上面的调查结论,可以看出在一定的时间间隔内,发送到搜索引擎的用户查询有相当比例的重复性,而缓存机制之所以能够运用在搜索引擎里来加快系统响应速度,与这点是密不可分的。

评论区

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

【随机新闻】

返回顶部