为什么使用缓存?一是加快用户查询响应速度,二是减少后台计算量。对于一个正常的搜索流程,比如用户输入"搜索引擎 技术",搜索引擎需要分别将层次在磁盘上的两个单词的倒排索引读入内存,之后进行解压,然后求两个单词对应倒排列表的交集,找到
所有包含两个单词的文档集合,根据排序算法来对每个文档的相关性进行打分,按照相关度输出相关度最高的搜索结果。缓存假设了,即:相同的用户查询会反复出现。1.至少 63.5% 的搜索引擎用户只看搜索结果第1页的内容。大约 11.7% 的搜索引擎用户会翻看第2页;至少 79% 只看前3页。2.用户发出的查询请求分布符合 Power-Law 规则,即少数查询占了查询总数的相当比例。3.用户查询请求具备时间相关性。11.1 搜索引擎缓存系统架构 当搜索引擎接收到用户查询请求时,会先在缓存系统中查找,看缓存内是否包含用户查询的搜索结果,如果发现缓存已经超出了相同的查询搜索结果,则从缓存内读出给用户;如果缓存内没有找到相同的用户查询,则将用户查询按照常规处理方式交由搜索引擎返回结果,并将这条用户查询的搜索结果及中间数据根据一定的策略放入缓存中。缓存系统包含2部分:缓存存储区和缓存策略管理。缓存管理策略又包含2个子系统,即缓存淘汰策略和缓存更新策略。一个优秀的缓存系统,有几个优点:1.最大化缓存命中率2.缓存内容与索引内容保持一致性11.2 缓存对象 对于搜索引擎缓存,对象可能是搜索结果,也可能是讴歌查询词汇对应的倒排类表,或者是一些中间的搜索结果。11.3 缓存结构 最常见的是单级缓存,也可以是二级缓存,或者三级缓存。11.4 缓存淘汰策略(Evict Policy) 动态策略和静态动态混合策略。11.4.1 动态策略 动态策略的缓存数据完全来自于在线用户查询,基本思路是:对缓存项保留一个权重值,这个权重值根据查询命中情况动态调整。常见的动态策略:LRU策略:最近最少使用策略LandLord策略SLRU 策略:大小自适应LRU11.4.2 混合策略 缓和策略一方面来自于在线用户查询,另一方面来自于搜索日志等历史数据。SDC 策略:静态动态混合缓存策略AC 策略 :准入策略11.5 缓存更新策略(Refresh Policy)

11.这就是搜索引擎:核心技术详解 --- 搜索引擎缓存机制相关推荐

  1. 1.这就是搜索引擎:核心技术详解 --- 搜索引擎及其技术架构

    1.搜索引擎及其技术架构1.2 搜索引擎技术发展史 1.2.1 史前时代:分类目录的一代 1.2.2 第一代:文本检索的一代 1.2.3 第二代:链接分析的一代 这一代的搜索引擎充分利用了网页之间的链 ...

  2. 这就是搜索引擎核心技术详解@学习笔记

    对应文章的下载地址: http://download.csdn.net/detail/yijiyong100/6356227 背  景 关于本篇学习笔记,只是把书中的一些概念进行了归纳,同时把个人的一 ...

  3. 《这就是搜索引擎:核心技术详解》---读后感

    搜索引擎作为互联网发展中至关重要的一种应用,已经成为互联网各个领域的制高点,其重要性不言而喻.搜索引擎领域也是互联网应用中不多见的以核心技术作为其命脉的领域,搜索引擎各个子系统是如何设计的?这成为广大 ...

  4. iframe缓存无法清空_详解Http缓存机制

    前言 Web的缓存可以粗略分为两种:服务器缓存和浏览器缓存.服务器缓存(如代理服务器缓存.CDN等)让资源加载得更快,可有效提高第一次访问的加载速度:而浏览器缓存可以跳过请求重复的资源,大幅度提高第二 ...

  5. eureka server配置_程序员笔记|详解Eureka 缓存机制

    引言 Eureka是Netflix开源的.用于实现服务注册和发现的服务.Spring Cloud Eureka基于Eureka进行二次封装,增加了更人性化的UI,使用更为方便.但是由于Eureka本身 ...

  6. 这就是搜索引擎:核心技术详解

    这就是搜索引擎:核心技术详解 张俊林 著 ISBN 978-7-121-14865-1 2012年1月出版 定价:45.00 元 16开 320页 宣传语:改变全世界人们生活方式的"信息之门 ...

  7. php操作ElasticSearch搜索引擎流程详解

    更多python.php教程请到友情连接: 菜鸟教程https://www.piaodoo.com 茂名一技http://www.enechn.com ppt制作教程步骤 http://www.tpy ...

  8. 详解浏览器缓存 前端开发必会

    详解浏览器缓存 缓存可以说是性能优化中简单高效的一种优化方式了.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷. 对于一个数据请求来 ...

  9. python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...

    Python之shutil模块11个常用函数详解,python内置函数是什么 shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查 ...

  10. kubernetes系列11—PV和PVC详解

    kubernetes系列11-PV和PVC详解 原文:kubernetes系列11-PV和PVC详解 本文收录在容器技术学习系列文章总目录 1.认识PV/PVC/StorageClass 1.1 介绍 ...

最新文章

  1. java component创建_spring--打印hello--注解component--自动创建对象
  2. mysql text 不可指定默认值
  3. 设计模式在vue中的应用(五)
  4. HDU 4339 Query
  5. mysql - 一键安装方式- 课堂版
  6. LightOJ 1074 Extended Traffic(spfa+dfs标记负环上的点)
  7. 严格模式explainFetchTask
  8. bzoj1003[ZJOI2006]物流运输
  9. OBV指标的活用以及OBV指标的解析
  10. python 科研作图_Origin科研绘图
  11. 计算机主板的定义,垃圾佬折腾笔记 篇一:HP Z228主板自测接口定义
  12. java 取磁盘阵列容量_硬盘阵列 Raid 的区别及容量计算方式
  13. C - error: converting to execution character set:Illegal byte sequence
  14. 【实训第一天】-开班仪式
  15. 【香蕉oi】Game(SAM,SG函数,假题)
  16. 河南单招计算机专业专科学校排名2015,河南省单招大专学校排名榜 哪个学校好...
  17. 移动端开发-体检预约 手机号校验 30秒倒计时 日历展示
  18. chrome 火狐_添加有趣的图形以记住Firefox或Chrome中的Milk标志
  19. sicily 1206水题
  20. hpoem系统服务器,hp(惠普)Windows 7 32/64位-OEM版

热门文章

  1. python之配置日志的几种方式
  2. python处理识别图片验证码
  3. SecureCRT的安装、介绍、简单操作
  4. 《Entity Framework 6 Recipes》中文翻译——第十二章自定义EntityFramework对象(一)...
  5. Html5 JumpStart学习笔记2:CSS Selectors and Style Properties
  6. R 包 `ezdf`的讲解
  7. 从Retrofit的源码来看 HTTP
  8. [leetcode] 406. Queue Reconstruction by Height (medium)
  9. SQL Server中删除重复数据
  10. python 连接 mysql