`
touchmm
  • 浏览: 1026601 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

搜索引擎CACHE策略研究

阅读更多

/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/

搜索引擎CACHE策略研究

张俊林

timestamp:2005年10月

一.关于搜索引擎用户查询得出的结论:

(1) 用户查询有很大比例的重复性。有30%到40%的用户查询是重复查询。

(2) 大多数重复的用户查询会在较短的间隔时间被再次重复访问。

(3) 大多数用户的查询是短查询,大约包含25个单词。

(4) 用户一般只查看返回结果的前三个页面(前30个返回结果)。58%用户只查看第一个页面(TOP 10,15%用户查看第二个页面,不超过12%的用户会查看第三个页面以后的检索结果。

(5) 关于用户查询差异程度。有比较大的查询程度,一百万个用户查询中大约63.7%的用户查询只出现过一次。另外一方面,集中的重复查询也非常集中:25个高频查询大约占总查询的1.23%-1.5%.

二.CACHE的基本策略

(1) LRU:最近最少使用策略

基本假设:最近很少被重复访问的缓存记录在最近的将来也不会被访问。这是最简单的一种CACHE策略。将用户查询按照最近使用时间进行排序,淘汰策略将最老的查询淘汰出CACHE

(2) FBR:不仅考虑时间也考虑引用计数的问题。

FBRLRU策略的基础上将CACHE分为三个不同的部分:NEW,OLD,MIDDLE

NEW:存储最近被访问过的记录;

OLD:存储最近最少使用的一批记录;

MIDDLE:存储介于NEWOLD之间的一批记录;

引用计数的时候不考虑NEW区域的记录,只考虑OLDMIDDLE两个区域的记录引用计数增加,在替换记录的时候从OLD区域选择引用计数最少的那个记录进行替换。

(3) LRU/2:对于LRU的改进,计算第二次到最后一次被访问总的LRU,将老的记录淘汰。

(4) SLRU:

CACHE被分为两个部分:非保护区域和保护区域。每个区域的记录都按照最近使用频度由高到低排序,高端叫做MRU,低端叫做LRU。如果某个查询没有在CACHE找到,那么将这个查询放入非保护区域的MRU端;如果某个查询在CACHE命中,则把这个查询记录放到保护区的MRU端;如果保护区已满,则把记录从保护区放入非保护区的MRU,这样保护区的记录最少要被访问两次。淘汰的机制是将非保护区的LRU淘汰。

(5) LandLord策略

将一个记录增加到CACHE的时候,给予这个记录一个值(DEADLINE,如果需要淘汰记录的时候,选择CACHE里面DEADLINE最小的那个淘汰,同时将CACHE里面其它所有记录减去这个被淘汰的记录的DEADLINE值,如果一个记录被命中,则将这个记录的DEADLINE放大到一定值。

(6) TSLRUTopic based SLRU:SLRU策略相同,不过不是按照查询调整替换策略,而是按照查询所属主题进行调整。

(7) TLRU: Topic based LRU

基本策略和LRU相同,区别在于保留查询的主题(TOPIC)信息,对于某个查询来说,不仅该主题的检索结果进入CACHE,而且原先在CACHE里面的相同主题的查询及其结果也调整时间,更新为最新进入CACHE。可以看作是主题LRU,而LRU是查询LRU

(8) PDC (probability driven cache):针对用户的浏览行为建立概率模型,然后调整CACHE里面的记录优先级别,针对某个查询,将用户浏览数目比较多的文档在CACHE里面的级别提高。

(9) 预取策略

所谓预取,就是系统预测用户在很短时间内的行为,然后将该行为涉及到的数据预先存储在CACHE里面。存在不同的预取策略,比如预取策略:因为一般用户在查看完第一页检索结果后会翻看第二页结果,所以将该用户查询的第二页结果首先预取到CACHE里面,这样可以减少存取时间。

(10) 二级CACHE

有两级CACHE,一级是查询结果CACHE,保留了原始查询以及相关文件;第二级CACHE是倒排文档列表CACHE,也就是查询中某个单词在索引中的倒排列表信息,这个CACHE主要减少了磁盘I/O时间。替换策略采取LRU,结果证明该方法提高30%的性能。

(11) 三级CACHE

是对二级CACHE的一种改进策略,除了二级CACHE里面保留的两个CACHE,另外增加一个CACHE,这个CACHE记录了两个单词查询的倒排文档交集记录,这样一个是省去了磁盘I/O时间,另外一个减少了计算交集的操作,有效的减少了计算量。

三.CACHE方法性能分析与比较

(1) LRU适合存储比较小的记录效果才好。

(2) 中等大小的CACHE能够满足很大一部分重复用户查询。(大约20%的查询能够在中等大小CACHE找到)

(3) 将时间因素和命中次数结合起来的缓存策略好于只考虑时间因素的策略。实验表明FBR/LRU2/SLUR性能总是好于LRU策略。

(4) 对于小CACHE来说,静态CACHE策略要好于动态CACHE策略,命中率要高些。

(5) 对于LRU来说,大CACHE的重复命中率大约占30%。

(6) 对于大CACHE来说,TLRU略微好于LRU,但是差别不太大。对于小CACHE,结论正好相反。

(7) 随着CACHE逐步增大,命中率逐渐增加,对于SLRU来说,其性能跟两个分区划分大小无关。

(8) PDC的命中率高于LRU变形算法,大约有53%命中率,不过计算复杂度高。

分享到:
评论

相关推荐

    搜索引擎应用技术--cache技术

    Cache技术,即缓存技术,是提高搜索引擎响应速度和性能的关键策略之一。搜索引擎在抓取网页后,会将其内容存储在索引中,以便于后续的检索操作。然而,直接从磁盘读取索引数据效率低下,尤其是在面对大规模数据时,...

    搜索引擎技术 中文分词搜索引擎程序

    综上所述,搜索引擎技术是一门涉及广泛领域的复杂技术,涵盖了网络爬取、信息处理、检索策略等多个环节,旨在为用户提供快速、精准的信息获取服务。随着移动互联网和大数据的发展,搜索引擎技术将持续演进,以满足日...

    一种通用Cache的设计,实现和在天网搜索引擎中的应用

    同时,文章还讨论了Cache在搜索引擎中的应用,包括预加载、结果缓存等策略,以减少重复计算和网络延迟。 第三章详细阐述了一种通用Cache的设计与实现。通用Cache的设计目标包括:通用性,即能够适应多种应用场景;...

    搜索引擎的开题报告(word)

    【搜索引擎开题报告】 搜索引擎是互联网时代不可或缺的重要组成部分,它为...本开题报告将深入研究搜索引擎的关键技术,分析现有搜索引擎的优缺点,探索可能的改进策略,以期为搜索引擎的优化提供理论支持和实践指导。

    高效的企业级搜索引擎Solr

    ### 高效的企业级搜索引擎Solr #### 一、Solr概述 Solr是一款高性能、可伸缩的企业级搜索引擎,广泛应用于需要复杂全文检索功能的系统中。它基于Java开发,能够提供高度灵活的配置机制,并且具备强大的索引与查询...

    中文搜索引擎源代码XunLong0.7(4)

    5. **缓存与更新(Cache & Update)**:为了提高搜索速度和保持信息的时效性,搜索引擎通常会使用缓存策略,并定期更新索引。XunLong0.7的源码可能涉及到这部分内容,包括实时索引更新和旧数据的处理。 6. **用户...

    搜索引擎优化行业术语大全(一).docx

    2. Algorithm:算法是搜索引擎中用于分析网站内容、结构和相关性的程序集合,用以决定网站质量和关键词搜索结果的排序。搜索引擎的算法是不断更新和调整的,以确保搜索结果的准确性和公正性。 3. Anchor Text(链接...

    16_分布式搜索引擎在几十亿数据量级的场景下如何优化查询性能?.zip

    首先,对于查询性能优化,分布式搜索引擎通常采用以下策略: 1. **分布式索引**:将庞大的数据集分割成多个小部分,每个部分在一个独立的节点上建立索引。通过并行处理,可以显著提高查询速度。例如,Elasticsearch...

    Java 项目-搜索引擎的设计与实现.zip

    6. **缓存策略**:为了提高性能,搜索引擎可能需要使用缓存来存储最近或最常搜索的查询结果。Java的缓存库如Guava Cache或 Ehcache可以用于此目的。 7. **多线程与并发**:在处理大量数据和并发请求时,Java的并发...

    搜索引擎蜘蛛捕捉asp.net版

    10. **服务器日志分析**:通过分析服务器日志,可以了解搜索引擎蜘蛛的访问模式,进而优化网站结构和内容。 综上所述,"搜索引擎蜘蛛捕捉asp.net版"项目需要开发者深入理解ASP.NET框架,并结合SEO最佳实践,构建一...

    搜索引擎的设计与实现_毕设百日练.zip

    爬虫的工作效率和策略对搜索引擎的覆盖率至关重要。 2. **索引(Indexing)**:抓取的网页内容经过预处理,如去除HTML标签、分词、消除停用词等,然后构建索引。索引是搜索引擎能够快速查找信息的关键,通常采用倒...

    搜索引擎的差异研究―――基于百度与Google对比的视角 (2014年)

    在这篇名为《搜索引擎的差异研究―――基于百度与Google对比的视角》的论文中,作者详细分析了百度与Google这两大搜索引擎的特点,并对比了它们之间的差异。论文内容主要涉及了两大搜索引擎的技术特点、搜索功能、...

    ASP.NET源码——[搜索链接]军长站内搜索引擎源码.zip

    通过分析这个“军长站内搜索引擎”的源码,开发者不仅可以学习到ASP.NET的基础知识,还能深入理解搜索引擎的设计原理和实现技巧。此外,这个项目也可以作为进一步研究和扩展的起点,例如添加全文搜索、拼音模糊匹配...

    Lucene.Net +盘古分词 搜索引擎

    它提供了高性能、可扩展的全文检索和分析能力,是构建搜索引擎应用的基础。Lucene.Net的最新稳定版本是2.9.4,它在Java版本的基础上进行了.NET平台的优化,支持C#和VB.NET等.NET语言。 在搜索领域,中文分词是一个...

    开源企业搜索引擎SOLR的应用教程

    ### 开源企业搜索引擎SOLR的应用教程 #### 一、概述与特性介绍 **1.1 企业搜索引擎方案选型** 对于门户社区等网站来说,搜索引擎功能是提升用户体验的关键因素之一。当前,针对搜索引擎功能的需求有多种解决方案...

    Predictive Caching and Prefetching of Query Results in Search Engines

    文章的摘要部分阐述了研究的核心,即通过分析大规模查询日志来设计有效的缓存策略,并对提出的新方案进行评估,目的是减少搜索引擎的响应时间和硬件开销。在模拟测试中,PDC策略不仅比传统的LRU和SLRU缓存策略更有效...

Global site tag (gtag.js) - Google Analytics