为了能在极短的时间内响应用户的查询请求,搜索引擎除了在用户提交查询信息前就生成关键字的页面排序列表外,还需要为那些查询最频繁的关键字对应的页面的页面排序列表简历缓存机制。

  经过统计,搜素引擎发现关键字查询的集中现象非常明显。查询次数最多的前20%的关键字大约占了总查询次数的80%(就这是著名的80/20法则)。因此,只要对这20%左右的关键字建立缓存就可以满足80%的查询需求。

  由于互联网中的信息时刻都在增长,如果搜索引擎每次都向用户返回同样的信息,则不但用户得不到更高质量的信息,其他网站也不能向用户展示最新的高质量信息,从而造成信息滞后。因此,搜索引擎还会对缓存中的内容进行定期更新。

  缓存区的存储量是有一定限度的,当缓存区的空间全部被占用完毕后,如果有新的对象要进入缓存区时,必须要从原来的缓存区去除一个或一些对象,以便让出空间给新的要缓存的对象。如何选择从原缓存区中去除哪些对象就需要制定合适的缓存置换策略。例如采纳 LFU(Least Frequently Used) 算法,其思想是:缓存中被访问最多次的对象被用户再次访问的可能性最大,具有最高优先级;而缓存中最少次被访问的对象的优先级最低。进行缓存置换时,被置换的将是缓存中被访问得最少的对象。在 LFU 算法的实现中必须有一个访问次数作为置换比较的标志。每次在缓存中置换或加入新的对象,对该标志进行更改。