一种并发查询条件下的动态查询系统及方法
【技术领域】
[0001]本发明涉及信息查询技术领域,特别涉及一种并发查询条件下的动态查询系统及方法。
【背景技术】
[0002]随着当前互联网的高速发展,人们能够接触到的互联网信息量变得越来越多。为了从海量信息中获取自身所需的信息,用户需要利用各式各样的互联网搜索引擎来进行信息筛选处理。
[0003]搜索引擎在工作的过程中,往往会面临高并发查询请求所带来的查询压力。为了应对巨大的查询压力,主流的搜索引擎均会采用分布式集群的方式来分担用户的查询负载。然而,目前单个查询响应节点在对查询请求进行响应时,通常是直接通过查询磁盘中存储的所有索引文件来获取相应的查询结果,由于磁盘中存储了大量的索引文件,从而使得上述直接在磁盘上进行查询操作的技术方案需要消耗大量的查询时间,导致用户需要等待较长时间,降低了用户体验。
[0004]综上所述可以看出,如何进一步减少查询响应时间,以改善用户体验是目前亟待解决的问题。
【发明内容】
[0005]有鉴于此,本发明的目的在于提供一种并发查询条件下的动态查询系统及方法,实现了进一步减少查询响应时间的目的,从而改善了用户的查询体验。其具体方案如下:
[0006]—种并发查询条件下的动态查询系统,包括索引文件磁盘、缓冲器、索引文件调取器、请求分发器以及N个查询响应器,N为正整数;其中,
[0007]所述索引文件调取器,用于根据用户历史查询痕迹信息,从所述索引文件磁盘中取出与所述用户历史查询痕迹信息相对应的倒排表,并将取出的倒排表缓存至所述缓冲器内部的缓冲区;
[0008]所述请求分发器,用于获取用户终端发送的并发查询请求,并基于分布式的请求分发原则,将所述并发查询请求中的所有查询请求分发至所述N个查询响应器;
[0009]任一查询响应器,用于利用所述缓冲器中存储的倒排表,对接收到的查询请求进行第一次检索响应,若所述第一次检索响应后得到相应的检索文档集合,则将该检索文档集合返回至相应的用户终端,若所述第一次检索响应后未得到相应的检索文档集合,则利用所述索引文件磁盘中存储的倒排表,对接收到的查询请求进行第二次检索响应,并将所述第二次检索响应后得到的检索文档集合返回至相应的用户终端。
[0010]优选的,所述动态查询系统,还包括:
[0011]倒排表生成器,用于为待索引化文档建立索引,生成相应的倒排表,并将生成的倒排表保存至所述索引文件磁盘。
[0012]优选的,所述缓冲器包括用于存储倒排表的第一缓冲区和第二缓冲区,还包括:
[0013]缓冲控制单元,用于当所述第一缓冲区和所述第二缓冲区中的任一缓冲区存满后,从该缓冲区存储的所有倒排表中筛选出满足预设调回条件的倒排表,并将筛选到的倒排表调回至所述索引文件磁盘。
[0014]优选的,任一查询响应器均包括:
[0015]查询词提取单元,用于从所述请求分发器分发的查询请求所对应的查询语句中提取出相应的查询词;
[0016]第一检索单元,用于根据所述查询词,对所述缓冲区进行检索,若在所述缓冲区中检索到与所述查询词相对应的倒排表,则根据检索到的倒排表调取相应的文档集合,并将该文档集合返回至相应的用户终端;
[0017]第二检索单元,用于当所述第一检索单元在所述缓冲区中未检索到与所述查询词相对应的倒排表,则对所述索引文件磁盘进行检索,根据检索到的倒排表调取相应的文档集合,并将该文档集合返回至相应的用户终端。
[0018]优选的,任一查询响应器还均包括:
[0019]文档排序单元,用于在所述第一检索单元或所述第二检索单元将相应的文档集合返回至用户终端之前,计算该文档集合中每个文档与所述查询语句之间的关联度,并按照关联度的大小顺序,对该文档集合进行重新排序处理。
[0020]优选的,所述动态查询系统,还包括:
[0021 ]文件压缩模块,用于在所述索引文件磁盘对接收到的倒排表进行存储之前,对该倒排表进行压缩处理,将压缩处理后得到的数据保存至所述索弓I文件磁盘。
[0022]优选的,所述文件压缩模块,具体用于在所述索引文件磁盘对接收到的倒排表进行存储之前,将该倒排表中的每个数据项存储至存储空间与该数据项大小相一致的文件块,并利用PForDe Ita压缩算法对与该倒排表对应的所有文件块进行压缩处理,将压缩处理后得到的数据保存至所述索引文件磁盘。
[0023]本发明还公开了一种并发查询条件下的动态查询方法,包括:
[0024]根据用户历史查询痕迹信息,从索引文件磁盘中取出与所述用户历史查询痕迹信息相对应的倒排表,并将取出的倒排表缓存至缓冲器内部的缓冲区;
[0025]获取用户终端发送的并发查询请求,并基于分布式的请求分发原则,将所述并发查询请求中的所有查询请求分发至N个查询响应器,以通过所述N个查询响应器,对所述并发查询请求进行检索响应;其中4为正整数;
[0026]其中,任一查询响应器进行检索响应的过程包括:利用所述缓冲器中存储的倒排表,对接收到的查询请求进行第一次检索响应,若所述第一次检索响应后得到相应的检索文档集合,则将该检索文档集合返回至相应的用户终端,若所述第一次检索响应后未得到相应的检索文档集合,则利用所述索引文件磁盘中存储的倒排表,对接收到的查询请求进行第二次检索响应,并将所述第二次检索响应后得到的检索文档集合返回至相应的用户终端。
[0027]优选的,所述动态查询方法,还包括:
[0028]在所述索引文件磁盘对接收到的倒排表进行存储之前,对该倒排表进行压缩处理,将压缩处理后得到的数据保存至所述索弓I文件磁盘。
[0029]优选的,所述在所述索引文件磁盘对接收到的倒排表进行存储之前,对该倒排表进行压缩处理,将压缩处理后得到的数据保存至所述索引文件磁盘的过程,具体包括:
[0030]在所述索引文件磁盘对接收到的倒排表进行存储之前,将该倒排表中的每个数据项存储至存储空间与该数据项大小相一致的文件块,并利用PForDelta压缩算法对与该倒排表对应的所有文件块进行压缩处理,将压缩处理后得到的数据保存至所述索引文件磁盘。
[0031]本发明中,查询响应器在对查询请求进行响应时,是先利用缓冲器中保存的倒排表对查询请求进行第一次检索响应的,在第一次检索响应无法得到相应的检索文档的情况下,才会利用索引文件磁盘中保存的倒排表来进行第二次检索响应。一方面,由于缓冲器的数据存取速度要远高于磁盘的数据存取速度;另一方面,由于缓冲器中保存的倒排表是从索引文件磁盘中筛选的与用户历史查询痕迹信息相对应的倒排表,所以,当前接收到的用户查询请求所对应的查询词在缓冲器所保存的倒排表中出现的几率相当高,也即,查询响应器利用缓冲器进行第一次检索响应的过程中,具有非常高的检索命中率,从而有利于查询速度的提升;再一方面,由于缓冲器中保存的只是用户平时常用到的索引信息,其存储的信息量远小于磁盘中的索引信息量,由此也有助于减少查询响应时间。综上所述,本发明实现了进一步减少查询响应时间的目的,从而改善了用户的查询体验。
【附图说明】
[0032]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0033]图1为本发明实施例公开的一种并发查询条件下的动态查询系统应用结构示意图;
[0034]图2为本发明实施例公开的一种具体的并发查询条件下的动态查询系统应用结构示意图;
[0035]图3为本发明实施例公开的一种并发查询条件下的动态查询方法流程图。
【具体实施方式】