CN102693308B - 一种面向实时搜索的缓存方法 - Google Patents

一种面向实时搜索的缓存方法 Download PDF

Info

Publication number
CN102693308B
CN102693308B CN201210165475.7A CN201210165475A CN102693308B CN 102693308 B CN102693308 B CN 102693308B CN 201210165475 A CN201210165475 A CN 201210165475A CN 102693308 B CN102693308 B CN 102693308B
Authority
CN
China
Prior art keywords
buffer memory
docid
result
retrieval
result set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210165475.7A
Other languages
English (en)
Other versions
CN102693308A (zh
Inventor
王飞
常智山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING XUNAO TECHNOLOGY CO LTD
Original Assignee
BEIJING XUNAO TECHNOLOGY CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING XUNAO TECHNOLOGY CO LTD filed Critical BEIJING XUNAO TECHNOLOGY CO LTD
Priority to CN201210165475.7A priority Critical patent/CN102693308B/zh
Publication of CN102693308A publication Critical patent/CN102693308A/zh
Application granted granted Critical
Publication of CN102693308B publication Critical patent/CN102693308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种面向实时搜索的缓存方法,属于计算机程序技术领域缓存当前检索结果和后台索引库最大docID,通过仅向后台服务器检索增量部分的数据,缓存检索结果的Top-K结果集及文档最大的docID值。在不造成检索结果延迟的情况下,采用本缓存方法提升了检索结果缓存的命中率,在缓存命中时极大的降低检索过程中的计算量,提升了整个系统的性能和吞吐量。

Description

一种面向实时搜索的缓存方法
技术领域
本发明涉及一种面向实时搜索的缓存方法,属于计算机程序技术领域。
背景技术
互联网规模的急剧膨胀,基于Web的电子信息以爆炸式的速度增长。普通用户想在纷繁复杂的海量数据中找到所需的内容如同大海捞针,而搜索引擎正是为了满足广大用户的信息检索需求而诞生。
主流的搜索引擎基本结构,如图1所示,包括数据下载子系统、数据预处理子系统、索引子系统、检索子系统、网页库、正向索引库、文档库和倒排索引库。
数据采集子系统根据相应的采集策略的,对互联网进行批量或增量的信息扫描,完成网页信息采集。
数据预处理子系统对采集到信息进行分析,提取检索项,并统计相应的位置、频率信息,估算检索项权重。
索引子系统按照一定周期,创建新的全局索引文件。检索子系统依据最新静态索引文件完成用户查询的检索服务。
为了实现海量数据的检索服务,搜索引擎大量采用分布式计算技术和缓存技术,其中,缓存技术的应用大幅提高检索效率,改善了用户的使用感受。
搜索引擎系统按照一定策略对检索过程中产生的最终运算结果或中间计算数据进行存储,降低后续查询的运算负载。
文献“Three Level Caching for Efficient Query Processing in LargeWeb Search Engines”文献[1][用于大型web搜索引擎高效检索的三层缓存结构设计]对搜索引擎缓存技术进行了分析,提出了基于检索结果、查询项交集结果列表、查询倒排列表的三层缓存方法,如图2所示,目前被广泛采用,并获得非常好的运行效果。
文献“New Caching Techniques for Web Search Engines”[webs搜索引擎新缓存技术]文献[2]在文献[1]的基础上提出增加一个Top-K(最相关的前K条)结果集docID(文章编号)列表缓存。但M.Marin,V.G.Costa,C.G.Pantoja文献[2]所做的这些改进只适合于静态索引技术创建的索引库,且仍然无法解决对于增量索引所创建的索引库在检索时所存在的缓存问题。
本发明是参考了M.Marin,V.G.Costa,C.G.Pantoja文献[2]并做了进一步的改进来解决采用增量索引技术创建索引库在检索时所存在的缓存问题。
随着twitter、facebook等web2.0应用的兴起,人们对于获取实时发布的信息内容越来越感兴趣,对搜索引擎查询的时效性、实时性提出了更高的要求。
基于静态索引+缓存技术的搜索引擎架构无法胜任具有强实时特性的信息数据检索,实时搜索技术成为搜索引擎技术的研发热点。
目前,已知的实时搜索引擎主要采用增量索引技术,索引库分为磁盘索引和内存索引二部分,同时提供检索服务。
内存索引用于实时加载新增的数据,当加载数据达到一定规模时,保存成磁盘索引或者与已有的磁盘索引进行归并。
内存索引的引入使得搜索引擎能够支持数据的实时加载。
背景技术缺陷:
采用增量索引技术后,搜索引擎能够支持数据的实时加载。但,增量索引过程使索引库始终处于不断变化的过程,为了已有的缓存技术性能得到下降。无法发挥的实时实现数据的都具备两个基本特征,一个是大量不间断的增量实时数据,一个是数据变化会实时体现到检索结果,采用现有的检索缓存方法会存在以下问题:
1、过短的缓存有效期,可缩减检索结果的延迟,但却会造成缓存命中率过低,对后台造成较大压力,失去了缓存的意义。
2、过长的缓存有效期,虽提高了命中率,但造成了不必要检索结果延迟,从而失去了检索结果的实时性。
发明内容
本发明提出了一种基于增量索引技术的检索结果缓存方法,用于解决增量索引技术中采用传统的缓存技术造成检索结果过长的延迟或者命中率过低造成的检索压力偏大的问题。
一种面向实时搜索的缓存技术,缓存当前检索结果和后台索引库最大docID,通过仅向后台服务器检索增量部分的数据,缓存检索结果的Top-K结果集及文档最大的docID值;
计算新增的增量数据,避免在缓存有效期内直接返回缓存结果。
一种基于增量索引技术的检索结果缓存方法,含有以下步骤;
步骤1、建立基本的索引库结构,由ID(文章编号)对照表、词典和倒排索引组成;其中ID对照表是建立的docID与URLID(url对应的唯一编号)之间的对照关系,URLID是基于所创建索引文档分配的唯一的ID值,docID是索引库为URLID分配的一个从1开始自增的内部ID;词典存储的是关键词到倒排索引列表之间的索引关系;倒排索引存储的为docID递增有序的ID列表;
步骤2、判断结果缓存中是否存在当前检索串;查询检索串的Top-K结果集,记录当前检索串所命中结果docID列表中的最大docID值;
如果缓存中存在当前检索串,仅向后台检索服务器请求查询大于从最大docID开始的结果;将返回结果和已经缓存的Top-k进行归并排序,重新获得新的Top-K结果;将新的Top-k结果和新的最大docID保存在缓存中;
如果缓存中不存在当前检索串,向后台检索服务器请求查询全局的Top-K结果,将返回的Top-K结果和最大的docID保存到缓存中;
最后,返回Top-K结果集完成检索。
本发明的效果:提高实时检索应用环境下,缓存的命中率和缓存数据的利用价值,有效提高系统的检索效率。
本发明通过缓存检索结果的Top-K结果集及文档最大的docID值,在缓存命中时避免了重复计算历史结果数据的问题。
但会计算新增的增量数据,从而也避免了在缓存有效期内直接返回缓存结果造成的实时数据延迟问题。
在不造成检索结果延迟的情况下,采用本缓存方法提升了检索结果缓存的命中率,在缓存命中时极大的降低检索过程中的计算量,提升了整个系统的性能和吞吐量。
附图说明
当结合附图考虑时,通过参照下面的详细描述,能够更完整更好地理解本发明以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定,如图其中:
图1为现有技术典型的搜索引擎基本结构;
图2为现有技术的一种搜索引擎三层缓存方法;
图3为本发明的基本的索引库结构;
图4为本发明的缓存结果集结构;
图5为缓存的构建和使用流程。
下面结合附图和实施例对本发明进一步说明。
具体实施方式
显然,本领域技术人员基于本发明的宗旨所做的许多修改和变化属于本发明的保护范围。
实施例1:如图所示,基本的索引库结构,如图3所示,由ID对照表、词典和倒排索引组成。其中ID对照表是建立的docID与URLID之间的对照关系,URLID是基于所创建索引文档分配的唯一的ID值,docID是索引库为URLID分配的一个从1开始自增的内部ID;词典存储的是关键词到倒排索引列表之间的索引关系;倒排索引存储的为docID递增有序的ID列表。
本发明方案是基于增量索引技术的检索结果缓存,在采用增量索引技术构建的索引库时,对于添加到索引库中的增量新数据有个明显的特征,就是其分配的docID一定大于索引库中所有已索引数据的docID值。基于这个特征在索引库基础上缓存用户经常查询的检索串的Top-K结果集时,在结果集结构中,如图4所示,记录当前检索串所命中结果docID列表中的最大docID值。
以下内容介绍了本缓存的构建和使用过程,及淘汰策略。
一、缓存的淘汰策略
情况一、当缓存中缓存的结果数大于系统上限时,这里采用LRU但不限于LRU淘汰策略来淘汰缓存中已有的结果数据。
情况二、命中缓存中的结果集无效docID个数大于δ(δ>0)时需淘汰掉该结果集。假设系统需返回的结果集docID个数为N,为了避免在删除索引库中的文档造成缓存结果集中由于单个或极少数docID无效造成整个结果集无效的情况。当前在缓存中会存储K=N+δ个docID结果集,来避免以上情况的发生。
二、缓存的构建和使用流程
检索结果缓存是一个动态维护数据结构,即在用户的检索过程中来创建和维护结果缓存。首先当用户提交检索串时,以下详细阐述了检索子系统处理用户提交检索串过程:
步骤一:判断结果缓存中是否存在当前检索串:若存在当前检索串,则进入步骤二;若不存在当前检索串,则进入步骤四。
步骤二:根据缓存淘汰策略中的情况二来判断缓存中的结果集是否有效:若缓存结果集无效,跳跃docID值清零,进入步骤三;若缓存结果集有效,记录跳跃docID值,进入步骤四。
步骤三:从缓存中淘汰当前无效结果集。
步骤四:在索引库中查询检索串中包含的所有关键词的倒排列表,生成倒排列表队列。
步骤五:判断是否需要跳跃docID(docID非零时须跳跃)遍历起始点:需跳跃docID,则进入步骤六;不需跳跃docID,则进入步骤七。
步骤六:逐个将生成的倒排列表队列中的docID遍历起始点跳跃到最大docID值。
步骤七:计算Top-k结果集,并记录最大docID值。
步骤八:判断结果缓存中的结果数是否达到系统上限:若达到系统上限,则进入步骤九;如没有达到系统上限,则进入步骤十。
步骤九:根据缓存淘汰策略中的情况一来淘汰结果缓存中的结果数据。
步骤十:将Top-k结果集及最大docID值插入结果缓存,返回Top-N结果集完成检索。
从以上缓存使用流程中可看出在命中缓存中的有效结果集时,通过doc I D的跳跃节省了大量的检索计算过程,从而有效提高了整个实时搜索引擎系统的性能。
实施例2:
如图5的流程图所示,一种基于增量索引技术的检索结果缓存方法,含有以下步骤;
步骤1、建立基本的索引库结构,由ID对照表、词典和倒排索引组成;其中ID对照表是建立的docID与URLID之间的对照关系,URLID是基于所创建索引文档分配的唯一的ID值,docID是索引库为URLID分配的一个从1开始自增的内部I D;词典存储的是关键词到倒排索引列表之间的索引关系;倒排索引存储的为docID递增有序的ID列表;
步骤2、判断结果缓存中是否存在当前检索串;查询检索串的Top-K结果集,记录当前检索串所命中结果docID列表中的最大docID值;
如果缓存中存在当前检索串,仅向后台检索服务器请求查询大于从最大docID开始的结果,由于需要查询的集合很小,查询速度很快。将返回结果和已经缓存的Top-k进行归并排序,重新获得新的Top-K结果。将新的Top-k结果和新的最大docID保存在缓存中。
如果缓存中不存在当前检索串,向后台检索服务器请求查询全局的TopK结果,将返回的Top-K结果和最大的docID保存到缓存中
最后,返回Top-N结果集完成检索。
步骤3、当缓存中缓存的结果数大于系统上限(系统预设的缓存内存大小限制或缓存结果总数限制)时,这里采用LRU(Least Recently Used,最近最少使用对象缓存淘汰算法)但不限于LRU淘汰策略(可以采用LFU(LeastFrequently Used,最少访问频率对象淘汰算法)、ARC(Adaptive ReplacementCache,自适应规则缓存淘汰算法)等方法)来淘汰缓存中已有的结果数据;或:命中缓存中的结果集无效docID个数大于δ(δ>0)时淘汰掉该结果集;
[1]X.Long,T.Suel.“Three-level caching for efficient queryprocessing in large Web search engines”.
[2]M.Marin,V.G.Costa,C.G.Pantoja“New Caching Techniques for WebSearch Engines”
如上所述,对本发明的实施例进行了详细地说明,但是只要实质上没有脱离本发明的发明点及效果可以有很多的变形,这对本领域的技术人员来说是显而易见的。因此,这样的变形例也全部包含在本发明的保护范围之内。

Claims (2)

1.一种面向实时搜索的缓存方法,其特征在于缓存当前检索结果和后台索引库最大docID,通过仅向后台服务器检索增量部分的数据,缓存检索结果的Top-K结果集及文档最大的docID值,
含有以下步骤:
步骤1、建立基本的索引库结构,由ID对照表、词典和倒排索引组成;其中ID对照表是建立的docID与URLID之间的对照关系,URLID是基于所创建索引文档分配的唯一的ID值,docID是索引库为URLID分配的一个从1开始自增的内部ID;词典存储了关键词到倒排索引的ID列表之间的对应关系;倒排索引存储的为docID递增有序的ID列表;
步骤2、判断结果缓存中是否存在当前检索串;查询检索串的Top-K结果集,记录当前检索串所命中结果docID列表中的最大docID值;
如果缓存中存在当前检索串,则向后台检索服务器仅查询docID大于前次docID列表中最大docID值的文档;将返回结果和已经缓存的Top-K结果集进行归并排序,重新获得新的Top-K结果集;将新的Top-K结果集和新的最大docID值保存在缓存中;
如果缓存中不存在当前检索串,向后台检索服务器请求查询全局的Top-K结果集,将返回的Top-K结果集和最大的docID值保存到缓存中;
最后,返回Top-K结果集完成检索。
2.根据权利要求1所述的一种面向实时搜索的缓存方法,其特征在于当缓存中缓存的结果数大于系统上限,系统预设的缓存内存大小限制或缓存结果总数限制时,这里采用LRU但不限于LRU淘汰策略,或采用LFU、Landlord,ARC方法来淘汰缓存中已有的结果数据;
或:命中缓存中的结果集无效docID个数大于δ,δ>0时淘汰掉该结果集。
CN201210165475.7A 2012-05-24 2012-05-24 一种面向实时搜索的缓存方法 Active CN102693308B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210165475.7A CN102693308B (zh) 2012-05-24 2012-05-24 一种面向实时搜索的缓存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210165475.7A CN102693308B (zh) 2012-05-24 2012-05-24 一种面向实时搜索的缓存方法

Publications (2)

Publication Number Publication Date
CN102693308A CN102693308A (zh) 2012-09-26
CN102693308B true CN102693308B (zh) 2014-02-12

Family

ID=46858742

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210165475.7A Active CN102693308B (zh) 2012-05-24 2012-05-24 一种面向实时搜索的缓存方法

Country Status (1)

Country Link
CN (1) CN102693308B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902610A (zh) * 2012-12-28 2014-07-02 北大方正集团有限公司 搜索方法和装置
CN106570023B (zh) * 2015-10-10 2020-11-27 北京国双科技有限公司 一种爬虫系统自定义去重的方法及装置
CN106649403B (zh) 2015-11-04 2020-07-28 深圳市腾讯计算机系统有限公司 文件存储中的索引实现方法和系统
CN108304395B (zh) * 2016-02-05 2022-09-06 北京迅奥科技有限公司 网页作弊检测
CN106682202B (zh) * 2016-12-29 2020-01-10 北京奇艺世纪科技有限公司 一种搜索缓存更新方法及装置
CN106874402A (zh) * 2017-01-16 2017-06-20 腾讯科技(深圳)有限公司 搜索方法和装置
CN106919691A (zh) * 2017-03-06 2017-07-04 广东神马搜索科技有限公司 基于网页库进行检索的方法、装置及检索系统
CN108197186B (zh) * 2017-12-26 2021-11-12 北京航空航天大学 一种应用于社交网络中的动态图匹配查询方法
CN108664579B (zh) * 2018-05-03 2021-07-02 杭州美登科技股份有限公司 海量数据实时筛选分析方法、系统及存储介质
CN109656978A (zh) * 2018-12-24 2019-04-19 泰华智慧产业集团股份有限公司 近实时搜索服务的优化方法
CN111241136A (zh) * 2020-01-07 2020-06-05 桂林电子科技大学 一种基于数据缓冲池的Top-k高效用项集挖掘方法
US11327980B2 (en) * 2020-04-21 2022-05-10 International Business Machines Corporation Cached updatable top-k index
CN113806408A (zh) * 2021-09-27 2021-12-17 济南浪潮数据技术有限公司 一种数据缓存方法、系统、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101039211A (zh) * 2006-03-15 2007-09-19 中兴通讯股份有限公司 一种性能数据的定制查询方法及其系统
CN102012931A (zh) * 2010-12-01 2011-04-13 北京瑞信在线系统技术有限公司 过滤式缓存方法及其装置、缓存系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100511164B1 (ko) * 2002-12-10 2005-08-31 정보통신연구진흥원 웹 검색엔진에서의 실시간 사용자 질의 분석에 기반한and 연산용 색인데이터의 캐슁 방법
US20080319980A1 (en) * 2007-06-22 2008-12-25 Fuji Xerox Co., Ltd. Methods and system for intelligent navigation and caching for linked environments
US8140538B2 (en) * 2008-04-17 2012-03-20 International Business Machines Corporation System and method of data caching for compliance storage systems with keyword query based access

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101039211A (zh) * 2006-03-15 2007-09-19 中兴通讯股份有限公司 一种性能数据的定制查询方法及其系统
CN102012931A (zh) * 2010-12-01 2011-04-13 北京瑞信在线系统技术有限公司 过滤式缓存方法及其装置、缓存系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Mauricio Marin et al..New Caching Techniques for Web Search Engines.《Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing》.2010,215-226.
New Caching Techniques for Web Search Engines;Mauricio Marin et al.;《Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing》;20101231;215-226 *
数据流top-K频繁模式挖掘算法研究;杨蓓;《中国博士学位论文全文库》;20091030;31-50 *
杨蓓.数据流top-K频繁模式挖掘算法研究.《中国博士学位论文全文库》.2009,31-50.

Also Published As

Publication number Publication date
CN102693308A (zh) 2012-09-26

Similar Documents

Publication Publication Date Title
CN102693308B (zh) 一种面向实时搜索的缓存方法
Fagni et al. Boosting the performance of web search engines: Caching and prefetching query results by exploiting historical usage data
Skobeltsyn et al. ResIn: a combination of results caching and index pruning for high-performance web search engines
Cambazoglu et al. Scalability challenges in web search engines
US8620900B2 (en) Method for using dual indices to support query expansion, relevance/non-relevance models, blind/relevance feedback and an intelligent search interface
Fontoura et al. Evaluation strategies for top-k queries over memory-resident inverted indexes
US8626781B2 (en) Priority hash index
US8352474B2 (en) System and method for retrieving information using a query based index
US20150363446A1 (en) System and Method for Indexing Streams Containing Unstructured Text Data
CN102541924B (zh) 一种检索信息的缓存方法和搜索引擎系统
Altingovde et al. Second chance: A hybrid approach for dynamic result caching in search engines
Tsegay et al. Dynamic index pruning for effective caching
CN103902693B (zh) 一种读优化的内存数据库t树索引结构的方法
Fevgas et al. A spatial index for hybrid storage
Chang et al. Learning-based time-sensitive re-ranking for web search
Feng et al. Multi-modal query expansion for web video search
Altingovde et al. Site-based dynamic pruning for query processing in search engines
Lempel et al. Just in time indexing for up to the second search
Zhang et al. Parallel cache prefetching for LSM-tree based store: From algorithm to evaluation
Mackenzie Managing tail latencies in large scale IR systems
Cambazoglu et al. Impact of regionalization on performance of web search engine result caches
Ma et al. User-aware caching and prefetching query results in web search engines
Zhang et al. Compact snippet caching for flash-based search engines
Li et al. A hybrid cache and prefetch mechanism for scientific literature search engines
Dou et al. Efficient Optimized Strategy of Big Data Retrieval

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120926

Assignee: CHINA TECHNOLOGY EXCHANGE Co.,Ltd.

Assignor: BEIJING XUNAO TECHNOLOGY Co.,Ltd.

Contract record no.: X2022110000032

Denomination of invention: A caching method for real-time search

Granted publication date: 20140212

License type: Exclusive License

Record date: 20220927

EE01 Entry into force of recordation of patent licensing contract
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A caching method for real-time search

Effective date of registration: 20220930

Granted publication date: 20140212

Pledgee: CHINA TECHNOLOGY EXCHANGE Co.,Ltd.

Pledgor: BEIJING XUNAO TECHNOLOGY Co.,Ltd.

Registration number: Y2022110000247

EC01 Cancellation of recordation of patent licensing contract
EC01 Cancellation of recordation of patent licensing contract

Assignee: CHINA TECHNOLOGY EXCHANGE Co.,Ltd.

Assignor: BEIJING XUNAO TECHNOLOGY Co.,Ltd.

Contract record no.: X2022110000032

Date of cancellation: 20240315

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20140212

Pledgee: CHINA TECHNOLOGY EXCHANGE Co.,Ltd.

Pledgor: BEIJING XUNAO TECHNOLOGY Co.,Ltd.

Registration number: Y2022110000247