缓存(Cache)是目前所有搜索引擎都会采用的技术。
缓存——就是在高速内存硬件设备内开辟一块数据存储区,用来容纳常见的用户查询以及搜索结果(或索引数据以及搜索的中间结果),同时采用一定的管理策略来维护存储区内的数据。
缓存的目的:加快用户查询的响应速度;减少搜索引擎后来计算量,节省计算资源;
缓存系统架构
缓存淘汰策略:根据一定的策略将缓存中的项目进行替换,因为不论给缓存多大的空间,当系统运行到一定的程度,很可能缓存已经满了,当有新的需要缓存的内容要进入缓存时,需要根据一定的策略,从缓存中剔除一部分优先级别较低的缓存内容,以腾出空间供后续内容放入缓存存储区;
SRLU策略——将缓冲区分为:非保护区域和保护区域,每个区域按使用频率由高到底进行排序,频率高端的将MRU,低端叫LRU,如果内容没有在缓存中,那么将这个查询放入非保护区域的MRU,如果某个查询命中非保护区域,则把这个查询记录放到保护区域的MRU端,如果此时保护区域已满,则把保护区LRU端数据放到非保护区的MRU,这样保护区域的记录最少呗访问两次;淘汰机制是将非保护区的LRU端缓存项淘汰
缓存更新策略:根据一定的策略保证缓存中的内容与索引内容一致,如果搜索引擎索引的文档集合是静态文档,文档集合不会发生任何变化,则缓存不存在更新问题,只有当搜索引擎处理的文档集合是动态变化的,索引已经反映了文档集合的变化,而缓存数据并没有随索引作出相应的变化,就发生了缓存内容与索引内容不一致的问题;