一种搜索引擎的索引数据加载方法和装置的制造方法

文档序号:9766061阅读:408来源:国知局
一种搜索引擎的索引数据加载方法和装置的制造方法
【技术领域】
[0001]本发明涉及互联网技术领域,特别是涉及一种搜索引擎的索引数据加载方法和一种搜索引擎的索引数据加载装置。
【背景技术】
[0002]随着互联网技术的发展,搜索引擎的搜索功能成为网站的一个必备功能。搜索引擎所处理的数据量越来越多,索引数据量也在不断增长,大数据背景下对搜索引擎不断提出挑战。搜索引擎进行搜索时,需保证搜索体验不断提高的同时减小包括CPU、内存等计算资源的消耗。
[0003]为了保证搜索体验,一般搜索引擎将索引数据先直接加载到内存,而不是采用网络数据库的方式获取索引数据,目的是排序算法能够直接使用内存中的索引数据,以最快的速度对用户搜索做出响应。
[0004]但是,搜索引擎中索引数据量很大,并且索引数据量随着时间不断增长,而物理机的内存资源有限,如果将索引数据直接展开成排序算法所需数据,将会占用大量的内存。另夕卜,如果内存加载压缩的索引数据,在需要时对压缩的索引数据进行解压,则会严重影响搜索的响应时间,从而影响用户搜索体验。

【发明内容】

[0005]鉴于上述问题,提出了本发明实施例以便提供克服上述问题或者至少部分地解决上述问题的一种搜索引擎的索引数据加载方法和相应的一种搜索引擎的索引数据加载装置。
[0006]为了解决上述问题,本发明实施例公开了一种搜索引擎的索引数据加载方法,包括:获取输入搜索引擎的第一关键词;查询第一缓存空间是否存在所述第一关键词对应的第一类索引数据;如果否,查询第一内存空间是否存在所述第一关键词对应的压缩第一类索引数据;所述第一内存空间存储压缩第一类索引数据;当所述第一内存空间存在所述第一关键词对应的压缩第一类索引数据时,对所述第一关键词对应的压缩第一类索引数据进行解压缩,并将解压缩后的第一类索引数据加载到所述第一缓存空间;返回所述第一关键词对应的第一类索引数据。
[0007]为了解决上述问题,本发明实施例还公开了一种搜索引擎的索引数据加载装置,包括:关键词获取模块,用于获取输入搜索引擎的第一关键词;第一查询模块,用于查询第一缓存空间是否存在所述第一关键词对应的第一类索引数据;第二查询模块,用于当所述第一缓存空间不存在所述第一关键词对应的第一类索引数据时,查询第一内存空间是否存在所述第一关键词对应的压缩第一类索引数据;所述第一内存空间存储压缩第一类索引数据;第一加载模块,用于当所述第一内存空间存在所述第一关键词对应的压缩第一类索引数据时,对所述第一关键词对应的压缩第一类索引数据进行解压缩,并将解压缩后的第一类索引数据加载到所述第一缓存空间;第一数据返回模块,用于返回所述第一关键词对应的第一类索引数据。
[0008]本发明实施例包括以下优点:在获取到第一关键词后,首先查询第一缓存空间是否存在第一关键词对应的第一类索引数据,如果不存在,则进一步查询第一内存空间是否存在第一关键词对应的压缩第一类索引数据,其中,第一内存空间存储压缩第一类索引数据,并当第一内存空间存在第一关键词对应的压缩第一类索引数据时,对第一关键词对应的压缩第一类索引数据进行解压缩,并将解压缩后的第一类索引数据加载到第一缓存空间,最后返回第一关键词对应的第一类索引数据。实现了在内存空间中存储压缩的第一类索引数据,而在查询时,建立第一缓存空间以缓存已经解压缩的第一类索引数据,在减小第一类索引数据内存占用量的同时,保证大部分的查询是已经解压缩的索引数据,且不影响搜索的响应时间。
【附图说明】
[0009]图1是第一类索引数据、第二类索引数据和第三类索引数据的组成示意图;
[0010]图2是本发明的一种搜索引擎的索引数据加载方法实施例的步骤流程图;
[0011]图3是本发明的另一种搜索引擎的索引数据加载方法实施例的步骤流程图;
[0012]图4是本发明的一种搜索引擎的索引数据加载装置实施例的结构框图;
[0013]图5是本发明的另一种搜索引擎的索引数据加载装置实施例的结构框图。
【具体实施方式】
[0014]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0015]参照图1,索引数据依据用途,可以分为第一类索引数据、第二类索引数据和第三类索引数据。其中,第一类索引数据的关键词可以为查询词,例如世界名著等查询词,查询第一类索引数据的结果是查询词相关的文档ID(Identity,身份标识号码),即倒排索引,例如红楼梦、西游记、老人与海等文档ID。一次用户搜索中,搜索引擎对查询词的查询量和用户搜索量在同一个数量级,查询结果即查询词相关文档ID的数量是用户搜索量的四个数量级。第二类索引数据的关键词可以为文档ID,查询第二类索引数据的结果是文档ID对应的文档属性,即正排索引,例如红楼梦的作者、年份、分类等。一般情况下,一次用户搜索对应文档ID的数量是用户搜索量的四个数量级以上,因此,对第二类索引数据的查询结果是用户搜索量的四个数量级以上。第三类索引数据的关键词可以为查询词+文档ID,查询第三类索引数据的结果是查询词下用户的行为数据,例如最近搜索世界名著的100个用户中,50个用户点击了红楼梦,40个用户点击了老人与海,其余用户没有进行点击操作,第三类索引数据的结果为正排索引。实际情况下,用户行为数据并不覆盖查询词对应的所有文档ID,因为用户感兴趣的文档ID只是搜索引擎搜索结果中的一小部分。一般来说,查询词+文档ID的查询量是用户搜索量两个数量级左右,因此,对第三类索引数据的查询结果即用户感兴趣的文档ID数量是用户搜索量的两个数量级。简单来说,一次查询,三种类型索引数据查询量比例是1:10000:100,查询结果比例是 10000:10000:100。
[0016]具体地,三类索引数据在索引文件中的存储格式都是压缩形式,在加载到内存后,需要解压缩成能够直接使用的索引数据,解压缩所需的CPU时间与索引数据信息量相关。由于三类索引数据的查询结果都是描述文档ID相关的信息,因而解压缩时间和文档ID的数量相关,则三类索引的解压缩时间如下:对于第一类索引数据,解压缩时间和文档ID的数量正相关,即解压缩时间为解压缩单个文档ID时间的四个数量级;对于第二类索引数据,虽然解压缩单个文档ID时间短,但是每一次搜索对应的所有文档ID都需要解压缩,因此解压缩时间为解压缩单个文档ID时间的四个数量级以上,与第一类索引数据需要的解压缩时间在同一个级别;对于第三类索引数据,一个查询词对应的文档ID的数量一般在一百以内,解压缩时间为解压缩单个文档ID时间的两个数量级。简单来说,一次查询对应的三种类型索引数据的解压缩时间比是10000:10000:100。
[0017]对于第一类索引数据和第二类索引数据,由于解压缩的时间较长,影响了搜索的响应时间和吞吐量,所以应保证查询的索引数据是已经解压的数据;对于第三类索引数据,则可以先查询到压缩的索引数据,解压压缩的索引数据后再使用。
[0018]基于以上思想提出了本发明实施例,本发明实施例的核心构思之一在于,在内存空间中存储压缩的索引数据,并根据第一关键词建立缓存空间,以缓存已经解压缩的索引数据,在查询时先查询缓存空间,从而在减小内存占用量的同时,保证大部分查询是已经解压缩的索引数据。
[0019]实施例一
[0020]参照图2,示出了本发明的一种搜索引擎的索引数据加载方法实施例的步骤流程图,具体可以包括如下步骤:
[0021 ]步骤SI,获取输入搜索引擎的第一关键词。
[0022]当用户在搜索引擎中输入搜索信息后,步骤SI可以通过对搜索信息进行分词等处理来获取搜索信息中的第一关键词。进入步骤S2。
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1