一种结果缓存替换的优化方法

文档序号:6485926阅读:267来源:国知局
一种结果缓存替换的优化方法
【专利摘要】本发明公开了一种结果缓存替换的优化方法,属于计算机网络【技术领域】。本方法为:1)以系统搜索日志中的用户ID为键、用户发起的请求为键值建立一哈希表h2;2)将同一用户ID发起的所有请求进行拼接,得到一字符串,对所有用户的拼接字符串构成的文档集进行话题模型分析,获得话题集合M及关联度;3)计算与某话题相关的搜索请求出现次数与同一时间段内所有请求出现次数的比值,计算该请求的权重贡献值;4)当收到一请求q时,查找匹配的结果缓存并返回和更新h2;如果没有,则在h2中查找对应的键值并与q拼接,计算q的权重贡献值;5)将结果缓存中权重较低的结果项替换出去,并加入新的缓存项。本发明可大大提高缓存命中率的效果。
【专利说明】一种结果缓存替换的优化方法
【技术领域】
[0001]本发明涉及的是一种搜索引擎和全文检索系统中,提高结果缓存命中率的方法,具体是利用结果质量和搜索请求的语义特征来提高结果缓存的命中率的方法,属于计算机网络【技术领域】。
【背景技术】
[0002]现代搜索引擎每天要处理数亿到数十亿的搜索请求,因此,对搜索请求的快速处理是一个至关重要的问题。在现代搜索引擎中,结果缓存是一个非常重要的性能部件。因此,如何有效的提高结果缓存的效率,是一个在学术界和产业界备受关注的问题。
[0003]结果缓存作为缓存的一种,满足缓存机制的基本假设,即搜索请求的局部性原则,即曾经出现过的搜索请求,在短时间内可能会再次出现。对于搜索引擎来说,这代表了有些用户可能会对自己刚刚搜索过的内容再次搜索,或者在某段时间内,不同的用户对于某些热点事件发出了相同的搜索请求。结果缓存作为搜索引擎的最上层,存储了在过去某段时间内,搜索引擎系统认为可能会再次出现的搜索请求及其结果,包括相关应该返回的网页信息和对这些结果的评价。
[0004]对于结果缓存来说,影响其性能的一个最重要的指标就是缓存命中率(Cache HitRatio)。对于缓存来说,如果我们某次请求查询的数据已经存在于缓存之中了,则称为一次缓存命中(Cache Hit),反之则称为未命中(Cache Miss)。在缓存持续提供服务的过程中,缓存命中的百分比称为缓存命中率。如果某次对某一数据项的查询没有命中,则需要对该搜索请求进行重新计算。因此,在给定缓存存储空间大小的情况下,缓存命中率越高,则需要重新计算的搜索请求也就越少,从而就降低了计算代价。
[0005]在整个系统开始提供服务后,搜索引擎会针对不同的搜索请求,不断的计算出新的结果,此时,如果结果缓存空间没有被占满,则计算结果将被不断的存储到结果缓存之中。当结果缓存中存满了结果之后,如果再出现了新的结果,则需要对结果缓存中的所有结果项进行评估,从中选择一些结果项并将其清理出结果缓存,并将新计算的结果项放入结果缓存之中,以上过程称为缓存替换(Cache Replacement),缓存替换中遵循的原则或算法则称为缓存替换策略(Cache Replacement Policy)。为了提高缓存命中率,国内外的专家学者提出了很多种针对不同情况的缓存替换策略,例如LRU(Least Recently Used)和LFU(Least Frequently Used)等等。这些算法着眼于搜索请求的局部性,分析搜索请求的自身特征,将一段时间内使用频繁的搜索请求的结果项在结果缓存中尽量保存较长的时间。
[0006]这些方法对于提高结果缓存的命中率非常有意义,然而他们大多数只考虑搜索请求的自身特征,没有考虑搜索结果的质量对搜索请求再次出现的概率的影响,也没有考虑搜索请求的语义特征,使得结果缓存的命中率距离可以获得的最好命中率之间还有很大距离。
【发明内容】

[0007]本发明针对上述现有技术的不足,本发明的目的在于提供一种结果缓存替换的优化方法,该方法可提高结果缓存命中率,通过分析结果的质量以及搜索请求的语义特征,进一步提高预测结果项可能会再次出现的概率的准确度,从而达到提高缓存命中率的效果。
[0008]本发明的技术方案为:
[0009]一种结果缓存替换的优化方法,其步骤为:
[0010]1)初始化一结果缓存空间;
[0011]2)读取系统搜索日志,以系统搜索日志中的用户ID为键、用户发起的请求为键值建立一哈希表h2 ;
[0012]3)将同一用户ID发起的所有请求进行拼接,得到一字符串;将每条字符串作为一个文档,对所有用户的拼接字符串构成的文档集进行话题模型分析,获得话题集合M及文档与每个话题mi之间的关联度pi ;
[0013]4)计算一段时间内,与话题mi相关的搜索请求出现次数与这一时间段内所有请求出现次数的比值hi,根据比值hi和关联度pi计算该请求的权重贡献值,并将结果缓存存入结果缓存空间中,直到结果缓存空间存满;
[0014]5)当收到一用户请求q时,在结果缓存空间中查找匹配的结果缓存并返回和更新h2 ;如果没有匹配结果缓存,则根据当前用户请求q的用户ID,在哈希表h2中查找对应的键值并与q拼接,计算q的权重贡献值;如果哈希表h2中没有对应的用户ID,则将其作为新的项添加到h2,并计算q的权重贡献值;
[0015]6)如果请求q对应结果缓存的权重小于缓存空间中当前权重最小的结果缓存的权重,则不缓存请求q的结果缓存;否则将请求q的结果缓存替换当前权重最小的结果缓存。
[0016]进一步的,所述步骤2)中,提取系统日志中页面的URL,以URL为键、页面点击次数和页面在结果中出现的次数为键值建立一哈希表hi。
[0017]进一步的,对于请求q,利用其结果缓存及用户反馈,更新哈希表hi。
[0018]进一步的,对于请求q,将哈希表hi中的用户点击归一化后,计算搜索结果质量重要度Fl的值。
[0019]进一步的,采用公式
【权利要求】
1.一种结果缓存替换的优化方法,其步骤为: 1)初始化一结果缓存空间; 2)读取系统搜索日志,以系统搜索日志中的用户ID为键、用户发起的请求为键值建立一哈希表h2 ; 3)将同一用户ID发起的所有请求进行拼接,得到一字符串;将每条字符串作为一个文档,对所有用户的拼接字符串构成的文档集进行话题模型分析,获得话题集合M及文档与每个话题mi之间的关联度pi ; 4)计算一段时间内,与话题mi相关的搜索请求出现次数与这一时间段内所有请求出现次数的比值hi,根据比值hi和关联度pi计算该请求的权重贡献值,并将结果缓存存入结果缓存空间中,直到结果缓存空间存满; 5)当收到一用户请求q时,在结果缓存空间中查找匹配的结果缓存并返回和更新h2;如果没有匹配结果缓存,则根据当前用户请求q的用户ID,在哈希表h2中查找对应的键值并与q拼接,计算q的权重贡献值;如果哈希表h2中没有对应的用户ID,则将其作为新的项添加到h2,并计算q的权重贡献值; 6)如果请求q对应结果缓存的权重小于缓存空间中当前权重最小的结果缓存的权重,则不缓存请求q的结果缓存;否则将请求q的结果缓存替换当前权重最小的结果缓存。
2.如权利要求1所述的方法,其特征在于所述步骤2)中,提取系统日志中页面的URL,以URL为键、页面点击次数和页面在结果中出现的次数为键值建立一哈希表hi。
3.如权利要求2所述的方法,其特征在于对于请求q,利用其结果缓存及用户反馈,更新哈希表hi。
4.如权利要求3所述的方法,其特征在于对于请求q,将哈希表hi中的用户点击归一化后,计算搜索结果质量重要度Fl的值。




5.如权利要求1或4所述的方法,其特征在于采用公式hi= 1Zyn t计算比



6.如权利要求5所述的方法,其特征在于计算某一请求的权重贡献值F2的公式为
?
J.F2= ~ ~~ο 1—2, pjhi
7.如权利要求6所述的方法,其特征在于每一请求的结果缓存权重W为该请求缓存项权重、 该请求搜索结果质量重要度Fl值、请求的权重贡献值F2值三者之和。
8.如权利要求4所述的方法,其特征在于应用公式Fl= I/(1-ρ1)*(1-ρ2)计算搜索质量重要度Fl的值,pi为网页在搜索日志结果中出现的次数比例、ρ2为网页被用户点击的次数比例。
9.如权利要求1所述的方法,其特征在于采用LDA模型对文档集进行话题模型分析,获得话题集合M及文档与每个话题mi之间的关联度pi。
【文档编号】G06F17/30GK103488638SQ201210191976
【公开日】2014年1月1日 申请日期:2012年6月11日 优先权日:2012年6月11日
【发明者】宗朗, 陈薇, 王腾蛟, 杨冬青 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1