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

文档序号:9766061阅读:来源:国知局
0056]步骤S213,返回第二关键词对应的第二类索引数据。
[0057]具体地,步骤S213可以返回第二关键词对应的第二类索引数据至排序算法。
[0058]步骤S214,以第一关键词和第一关键词对应的第一类索引数据为第三关键词,查询第三内存空间是否存在第三关键词对应的压缩第三类索引数据;第三内存空间存储压缩第三类索引数据。
[0059]其中,第三类索引数据的键为关键词和关键词相关的文档ID的列表,第三类索引数据的值为关键词下用户的行为数据,步骤S214中第三关键词对应的第三类索引数据为具有该第三关键词的第三类索引数据。其中,第三内存空间存储已压缩第三类索引数据,从而可以减小第三类索引数据所占用的内存量。如果是,进入步骤S215。
[0060]步骤S215,如果是,对第三关键词对应的压缩第三类索引数据进行解压缩。
[0061 ]其中,对第三关键词对应的第三类索引数据进行解压缩,可以为对压缩第三类索引数据中的倒排表等进行解压缩。进入步骤S216。
[0062]步骤S216,返回解压缩后的第三类索引数据。
[0063]具体地,步骤S216可以返回解压缩后的第三类索引数据至排序算法。
[0064]根据本发明实施例二,在第一内存空间中存储压缩第一类索引数据,在第二内存空间中存储压缩第二类索引数据,在第三内存空间中存储压缩第三类索引数据,进而根据第一关键词建立第一缓存空间和第二缓存空间,以分别缓存已经解压缩的第一类索引数据和第二类索引数据。从而使得对于第一类索引数据的大部分查询是查询第一缓存空间中已经解压缩的第一类索引数据,对于第二类索引数据的大部分查询是查询第二缓存空间中已经解压缩的第二类索引数据,对于第三类索引数据的查询是查询第三内存空间中压缩第三类索引数据。实现在不影响搜索响应时间的同时,相对于将索引数据直接展开成排序算法所需数据,本发明有效减少了第一类索引数据、第二类索引数据和第三类索引数据的内存占用量,节省了内存资源,以及当在占用相同内存资源情况下,相对于内存加载压缩的索引数据,本发明有效提高了搜索引擎的搜索响应时间。
[0065]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0066]实施例三
[0067]参照图4,示出了本发明的一种搜索引擎的索引数据加载装置实施例的结构框图,具体可以包括如下模块:
[0068]关键词获取模块〗,用于获取输入搜索引擎的第一关键词。
[0069]当用户在搜索引擎中输入搜索信息后,关键词获取模块I可以通过对搜索信息进行分词等处理来获取搜索信息中的第一关键词。进入第一查询模块2。
[0070]第一查询模块2,用于查询第一缓存空间是否存在第一关键词对应的第一类索引数据。
[0071]其中,第一查询模块2中第一关键词对应的第一类索引数据为具有该第一关键词的第一类索引数据,具体地,第一类索引数据的键为关键词,值为关键词相关的文档ID的列表。另外,第一缓存空间可以为内存空间,也可以为除内存空间以外的其它高速存储空间,只需不影响搜索引擎的搜索响应时间即可。具体地,第一缓存空间和第二缓存空间可以为LRU缓存空间,此时,LRU缓存空间可以缓存一定数量的第一类索引数据,当超过设定的数量阈值时,就把一些过期的第一类索引数据删除,例如一定数量的第一类索引数据为10000条第一类索引数据,当第一类索引数据小于10000条时可以随意加载新的第一类索引数据,当第一类索引数据超过10000条时,就需要把新的第一类索引数据添加进来,同时要把相应数量的过期第一类索引数据删除,以确保最大缓存数量为10000条。进入第二查询模块3。
[0072]第二查询模块3,用于当第一缓存空间不存在第一关键词对应的第一类索引数据时,查询第一内存空间是否存在第一关键词对应的压缩第一类索引数据;第一内存空间存储压缩第一类索引数据。
[0073]其中,第一类索引数据的关键词可以为查询词。第一内存空间存储已压缩第一类索引数据,从而可以减小第一类索引数据所占用的内存量。如果是,进入第一加载模块4。
[0074]第一加载模块4,用于当第一内存空间存在第一关键词对应的压缩第一类索引数据时,对第一关键词对应的压缩第一类索引数据进行解压缩,并将解压缩后的第一类索引数据加载到第一缓存空间。
[0075]因此,第一缓存空间存储的索引数据为解压缩的第一类索引数据。其中,对第一关键词对应的第一类压缩索引数据进行解压缩可以为对压缩第一类索引数据中的倒排表等进行解压缩。进入第一数据返回模块5。
[0076]第一数据返回模块5,用于返回第一关键词对应的第一类索引数据。
[0077]具体地,第一数据返回模块5可以返回第一关键词对应的第一类索引数据至排序算法。
[0078]根据本发明实施例三,在关键词获取模块获取到第一关键词后,首先第一查询模块查询第一缓存空间是否存在第一关键词对应的第一类索引数据,如果不存在,则第二查询模块进一步查询第一内存空间是否存在第一关键词对应的压缩第一类索引数据,其中,第一内存空间存储压缩第一类索引数据,并当第一内存空间存在第一关键词对应的压缩第一类索引数据时,第一加载模块对第一关键词对应的压缩第一类索引数据进行解压缩,并将解压缩后的第一类索引数据加载到第一缓存空间,最后第一数据返回模块返回第一关键词对应的第一类索引数据。实现了在内存空间中存储压缩的第一类索引数据,而在查询时,建立第一缓存空间以缓存已经解压缩的第一类索引数据,在减小第一类索引数据内存占用量的同时,保证大部分的查询是已经解压缩的索引数据,且不影响搜索的响应时间。
[0079]实施例四
[0080]参照图5,示出了本发明的另一种搜索引擎的索引数据加载装置实施例的结构框图,具体可以包括如下模块:
[0081]索引文件读取模块51,用于从预设磁盘分别读取压缩的第一类索引文件、压缩的第二类索引文件和压缩的第三类索引文件至第一内存空间、第二内存空间和第三内存空间。
[0082]其中,压缩的第一类索引文件、压缩的第二类索引文件和压缩的第三类索引文件除可以存储在磁盘外,还可以存储在内存空间中。
[0083]索引数据构建模块52,用于根据压缩的第一类索引文件、压缩的第二类索引文件和压缩的第三类索引文件分别构建具有预设数据结构的压缩第一类索引数据、压缩第二类索弓I数据和压缩第三类索弓I数据。
[0084]其中,预设数据结构可以为map数据结构,map数据结构描述键-值的对应关系。具体地,压缩第一类索引数据的键为关键词,值为关键词相关的文档ID的列表;压缩第二类索引数据的键为文档ID,值为与文档ID对应的文档属性集合;压缩第三类索引数据的键为关键词和文档ID,值为关键词下与文档ID对应的文档的属性文档,所对应的属性集合,换句话说,该值为关键词下用户的行为数据。
[0085]关键词获取模块53,用于获取输入搜索引擎的第一关键词。
[0086]当用户在搜索引擎中输入搜索信息后,关键词获取模块53可以通过对搜索信息进行分词等处理来获取搜索信息中的第一关键词。进入第一查询模块54。
[0087]第一查询模块54,用于查询第一缓存空间是否存在第一关键词对应的第一类索引数据。
[0088]其中,第一查询模块54中第一关键词对应的第一类索引数据为具有该第一关键词的第一类索引数据。另外,第一缓存空间可以为
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1