搜索技术入门到精通

Tuesday, April 03, 2007

第三章 3.4 缓存 Search Engine Caching

缓存优化的核心思想是从避免无谓和重复的CPU计算、I/O调度来提高查询器的吞吐量。传统的缓存有两级:一是对结果集的缓存,纪录了查询的关键词和返回结果。如果相同的关键词被再次访问将得到快速地响应,同时过滤导致重复查询的计算量,提高系统的吞吐量。另外一个是对倒排索引的缓存,索引通常只保留最近、频繁被访问的索引段在内存中。这样的两级体系的优点在Rank-Preserving Two-Level Caching for Scalable Search Engines一文中做了详细地分析。
要介绍的是三级缓存结构:
第一级是结果缓存
查询分析器在内存和磁盘保存了大量的查询结果。分析所有的访问日志可以确定所有高频查询的关键词结果,然后保存起来。
第二级为集合缓存
一般查询的关键词为一些词的组合,例如:查询的关键词为A B C(检索的逻辑为AND),包含关键词A、B的各自命中文档列表都很大,而包含C的文档很少,不在一个数量级上,于是对A、B的交集结果进行缓存,并跟踪这些缓存数据在集群中的分布。这样的优化是针对大于等于三个词的情况,一般意义上看是在第一级缓存基础上的提升。
第三级为索引列表缓存
内存总是有限的,无法导入整个索引表,于是总是把最近/频繁访问到的索引置于内存中。
参考文献:Three-Level Caching for Efficient Query Processing in Large Web Search Engines

No comments: