搜索引擎的缓存(cache)机制

什么是缓存?

  在搜索领域中,所谓缓存,就是在高速内存硬件设备上为搜索引擎开辟一块存储区,来存储常见的用户查询及其结果,并采用一定的管理策略来维护缓存区内的数据。当搜索引擎再次接收到用户的查询请求时,首先在缓存系统中查找,如果能够在缓存中找到,则直接返回搜索结果;否则采取正常的搜索流程来返回搜索结果。缓存技术在目前所有的搜索引擎都采用到。

搜索引擎使用缓存的好处:

  1、加快用户查询响应时间。

  2、有效减少搜索引擎后台计算量,节约系统资源。

搜索引擎正常搜索流程:

  1、搜索引擎接收用户查询请求

  2、搜索引擎对用户查询词(语句)进行分词

  3、计算每一个查询词的权重,构成一个查询向量VQ

  4、将存储在磁盘上的对应单词的倒排列表读入内存

  5、取所有查询词倒排列表的交集(交集:包含所有查询词的所有文档的集合RS(Result Set))

  6、遍历RS中,对每一篇文档对应的权重向量VR与VQ计算余弦值,加入优先级队列排序。

   (关于余弦相似度http://www.ruanyifeng.com/blog/2013/03/cosine_similarity.html)

  7、按照相关度由高到低返回给客户端

时间: 2024-10-21 21:18:05

搜索引擎的缓存(cache)机制的相关文章

Java -- 常用缓存Cache机制的实现 -- 艺多不压身

常用缓存Cache机制的实现 缓存,就是将程序或系统经常要调用的对象存在内存中,以便其使用时可以快速调用,不必再去创建新的重复的实例. 这样做可以减少系统开销,提高系统效率. 缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式 二.内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查. 啦啦啦

Java 中常用缓存Cache机制的实现

所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. 所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. 缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式: 二.内存缓存,也就是实现一个类中静态Map,对这个Map进行

Java中常用缓存Cache机制的实现

缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例.这样做可以减少系统开销,提高系统效率. 缓存主要可分为二大类: 一.通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式: 二.内存缓存,也就是实现一个类中静态Map,对这个Map进行常规的增删查. import java.util.*; //Description: 管理缓存 //可扩展的功能:当chche到内存溢出时必须清除掉最早

HTTP请求中的缓存(cache)机制

http://www.chaorenmao.com/blog/?p=79 流程 当资源第一次被访问的时候,HTTP头部如下 (Request-Line)  GET /a.html HTTP/1.1Host    127.0.0.1User-Agent  Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15Accept           

POCO库——Foundation组件之缓存Cache

缓存Cache:内部提供多种缓存Cache机制,并对不同机制的管理缓存策略不同实现: ValidArgs.h :ValidArgs有效键参数类,模板参数实现,_key:键,_isValid:是否有效,此外提供key获取键.isValid是否键有效,invalidate使得键值无效:默认情况下键为有效: KeyValueArgs.h :KeyValueArgs键值参数对类,模板参数实现,_key:键,_value:键值:此外提供key获取键,value获取键值: EventArgs.h :事件参数

受教了,memcache比较全面点的介绍,受益匪浅,适用memcached的业务场景有哪些?memcached的cache机制是怎样的?在设计应用时,可以通过Memcached缓存那些内容?

基本问题 1.memcached的基本设置 1)启动Memcache的服务器端 # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid -d选项是启动一个守护进程, -m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB, -u是运行Memcache的用户,我这里是root, -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服

网页的缓存Cache与控制

什么是缓存 Cache? 缓存位于客户端与服务器之间, 或者服务器与服务器之间.它决定是否保存所获资源的副本,以及如何使用副本,何时更新副本,这里所说的资源包括页面的HTML, 图片,文件等等. 使用缓存主要有2大理由: 减少响应延迟,让页面显示更快:因为缓存比源服务器离客户端更近, 如果直接从缓存而不是源服务器响应客户的请求,耗时更少,让网站看上去响应更快: 减少网络带宽消耗:当副本被重用时,减少了从源服务器获取资源的次数,从而减少带宽消耗. 缓存如何工作? 所有的缓存都遵循以下基本规则 保留

缓存Cache

转载自  博客futan 这篇文章将全面介绍有关 缓存 ( 互动百科 | 维基百科 )cache以及利用PHP写缓存caching的技术. 什么是缓存Cache? 为什么人们要使用它? 缓存 Caches种类 浏览器缓存 Caches 代理缓存 Caches 缓存对网站的影响? 怎样正确地使用缓存? 网站缓存的工作原理 如何设置网站的缓存 Caches HTML Meta 标签Tags vs. HTTP 报头Headers HTTP 报头Headers (为什么HTTP头对缓存不起作用?) HT

Mybatis缓存处理机制

一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空. 2. 二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap存储,不同在于其存储作用域为 Mapper(Namespace),并且可自定义存储源,如