分布式索引文件的检索方法、检索系统及检索服务器的制作方法

文档序号:6609826阅读:283来源:国知局
专利名称:分布式索引文件的检索方法、检索系统及检索服务器的制作方法
技术领域
本发明涉及网络通信技术领域,具体的特别涉及一种分布式索引文件的检索方法、检索系统及检索服务器。
背景技术
通常在进行检索时需要输入检索串,检索串包含一个或多个关键词,每个关键词由一个或多个语素组成。语素是能够表达独立语意的最小语言单位,通常为分词系统中切分出的中文词;关键词通过分词系统可以被切分为数量不等的语素,如果切分为两个语素,则该关键词为二元复合语素,如果切分为三个语素,则该关键词为三元复合语素;检索串中的每个关键词之间用空格隔开,通常在互联网搜索中,关键词之间的空格表示对各个关键词之间进行“与”的检索操作。对输入的检索串需要在较短的时间内找出包含该检索串的所有文档的集合,并将该文档集合通过文档标识列表进行显示。
在各种互联网搜索引擎技术中,后台检索集群技术是最为核心的技术之一,这种技术直接关系多台检索服务器间如何协作,以便为更大规模的数据集合提供检索服务。由于单个检索服务器管理文档集合的数量是有限的,如果保存的文档数量过大,就会导致在进行正常检索操作过程中,系统难以在用户可以接受的时间内返回需要的结果,通常用户可以接受的时间不超过1秒,因此需要采用由多台检索服务器组成的检索集群来支持更大数据集合范围内的检索服务。
检索过程中最主要的就是对倒排索引的访问,倒排索引是一种用来加速对检索串进行检索的数据结构,它可以以磁盘文件的形式存在,也可以加载到内存中,它至少由词典文件和倒排表文件两部分组成。倒排表文件中保存了多个倒排表项,每个倒排表项用于保存检索串中每个关键词对文档的对应关系。在对倒排表文件的倒排表项进行读取时,每一次输入输出寻址和数据读取所需要的时间在读取量比较小的情况下,主要取决于磁盘的寻址时间,因此有效提高对倒排表项的读取速度就可以相应提高检索效率。
现有基于文档分区的分布式索引文件检索模型如图1所示,该系统包括一个检索代理以及由该检索代理管理的多台平行的检索服务器,这些检索服务器在索引阶段并行完成各自服务器中的索引检索任务,因此每台服务器分配整个文档全集的N分之一的文档,这里N为检索服务器的总数。在检索阶段,检索代理将检索请求同时发送到每个检索服务器上进行检索,检索服务器在做完本地检索后将检索结果返回给检索代理,最终由检索代理根据特定的权值排序方式将这些检索结果汇聚在一起。这种系统结构设计独立,机器之间的耦合度小,每台检索服务器都相当于可以进行独立加载的检索子系统。但是在互联网检索服务中,大部分检索串都是由两个或者两个以上的关键词组成,检索服务器在进行完通常方式的文档标识匹配后,再进行文档内的位置偏移匹配,这就会带来对文档磁盘的多次输入输出访问,并且由于读取文档标识列表和位置偏移列表的数量很大,对于一些如“中国”、“网”、“我们”等的高频语素,它们的倒排表项数据量通常占到整个倒排索引数据量的很大比例,要在短时间内读完这些索引数据是不可能的,因此检索的大部分时间将消耗在文件输入输出的读取操作上,从而使得系统对这类检索串的检索速度和响应速度变慢,导致检索系统的整体并发能力下降。
现有基于索引项分区的分布式索引文件检索模型如图2所示,该系统包括一个检索代理以及由该检索代理管理的N(N为整数)组平行的检索服务器,图2中示出的每组检索服务器中包含3台检索服务器。在每组检索服务器中,索引关键词通常根据哈希值取模后进行分布,例如(“中国”)/n=1,则表示“中国”对应的索引关键词的倒排表项数据块存放在该组的1号检索服务器上,这样就可以把原来存放在单个检索服务器上的所有索引关键词倒排表项平均分布在3台检索服务器上,相应加快了倒排表项的访问。但是在这种检索系统中,每组检索服务器中的单台检索服务器无法独立服务,而必须同该组内的其它检索服务器协作才能完成检索任务,因此增加了检索服务器之间的数据耦合度,导致数据备份比较复杂。另外,由于每完成一次检索操作,都需要从两个或两个以上的不同检索服务器中取出对应的倒排表项进行操作,因此增大了每组内的检索服务器之间的通信量。

发明内容
本发明的目的在于提供一种分布式索引文件的检索方法,以克服现有技术中检索服务器的响应速度慢,服务器之间的通信量大,耗费内存资源导致检索的整体并发能力和检索速度低的问题。
本发明的目的在于提供一种分布式索引文件的检索系统,以克服现有技术中的检索服务器集群整体并发能力和检索速度低的问题。
本发明的又一目的在于提供一种分布式索引文件的检索服务器,以克服现有检索服务器检索速度低的问题。
为解决上述技术问题,本发明提供如下技术方案一种分布式索引文件的检索方法,包括对获取的检索串进行解析后生成由关键词组成的检索表达式;将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;集群中的检索服务器按照所述关键词命中文档的频率高低读取所述关键词的倒排表项;集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果。
所述关键词按照命中文档的频率高低分为由超高频关键词和中高频关键词组成的高频关键词以及低频关键词。
所述倒排表项包括包含所述关键词的文档标识、所述关键词在所述文档中的权值、及所述关键词在所述文档中的位置偏移。
所述方法进一步包括所述检索服务器将所述关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。
所述关键词为超高频关键词和/或中高频关键词,所述集群中的检索服务器读取所述关键词的倒排表项具体为将所述关键词的倒排表项进行分割,集群中的每个检索服务器读取所述分割后的关键词的一部分倒排表项。
所述集群中包含N台检索服务器,N为整数;所述分割具体为对所述高频关键词的倒排表项中的文档篇号进行取模,将相同模值的倒排表项作为一组,所述取模参数为N。
所述关键词为低频关键词,所述集群中的检索服务器读取所述关键词的倒排表项具体为集群中的某一检索服务器读取所述关键词的全部倒排表项。
所述集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果包括将所述某一检索服务器中低频关键词的倒排表项的文档篇号进行取模后发送到对应的检索服务器;所述集群中的每个检索服务器对所述高频关键词和低频关键词的倒排表项进行逻辑操作;对所述每个检索服务器的逻辑操作结果进行汇总后得到所述检索串的检索结果。
一种分布式索引文件的检索系统,包括缓存代理服务器,用于对获取的检索串进行解析后生成由关键词组成的检索表达式;集群代理服务器,用于将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;
检索服务器,用于按照所述关键词命中文档的频率高低读取所述关键词的倒排表项,并对所述关键词的倒排表项进行逻辑操作后输出检索结果。
一种分布式索引文件的检索服务器,包括检索解释模块,用于对获取的检索串进行解析后生成由关键词组成的检索表达式供上层服务器调用;读取管理模块,用于接收所述关键词的检索请求及该关键词的倒排表项的预读请求;关键词读取模块,用于按照所述关键词命中文档的频率高低读取高频关键词的一部分倒排表项,和/或低频关键词的全部倒排表项;逻辑运算模块,用于对所述高频关键词的倒排表项和低频关键词的倒排表项进行逻辑操作后输出检索结果。
所述检索服务器进一步包括标识转换模块,用于将所述关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。
由以上本发明提供的技术方案可见,本发明的分布式索引文件的检索方法,通过对获取的检索串进行解析后生成由关键词组成的检索表达式,将关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器,集群中的检索服务器按照关键词命中文档的频率高低读取关键词的倒排表项,集群中的检索服务器对关键词的倒排表项进行逻辑操作后输出检索结果。本发明由于让集群中的多台服务器分摊高频关键词的倒排表项,对分摊的倒排表项进行并行读取,因此在系统设计时间内完成了超大倒排表项的读取而不延误单次逻辑操作的时间开销;并且对于低频关键词的倒排表项,将原来需要在多台检索服务器上读取转换为在一台检索服务器上读取,节省了集群中多台检索服务器的资源。
应用本发明可以有效提高检索集群内部检索服务器之间的耦合度,并且增加了服务器之间的资源动态调配能力。通过把集群内的多台检索服务器的内存资源,磁盘输入输出资源以及CPU(中央处理器)资源看成整体进行统一规划,最大限度保证了集群整体的并发能力,使得检索速度得到极大的提高。


图1为现有基于文档分区的分布式索引文件检索模型示意图;图2为现有基于索引项分区的分布式索引文件检索模型示意图;图3为本发明方法的第一实施例流程图;图4为本发明方法的第二实施例流程图;图5为应用本发明方法对具体检索串进行检索的示意图;图6为本发明系统的实施例框图;图7为应用本发明系统的检索模型示意图;图8为应用图7中检索模型进行检索的流程图;图9为本发明检索服务器的实施例框图。
具体实施例方式
本发明的核心在于提供一种分布式索引文件的检索方法,该方法对获取的检索串进行解析后生成由关键词组成的检索表达式,将关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器,集群中的检索服务器按照关键词命中文档的频率高低读取这些关键词的倒排表项,集群中的检索服务器对这些关键词的倒排表项进行逻辑操作后输出检索结果。
为了使本技术领域的人员更好地理解本发明方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。
本发明方法的第一实施例流程如图3所示步骤301对获取的检索串进行解析后生成由关键词组成的检索表达式。
步骤302将关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器。
其中,倒排表项是记录了某个关键词命中的所有文档篇号的数组,包括包含该关键词的文档标识、该关键词在该文档中的权值、及该关键词在该文档中的位置偏移,基本结构如下所示<d1,wd1,t,loc1,loc2,…locfd1,t><d2….>…<dft…>
其中,t表示检索串中的某个关键词,di表示包含该关键词t的一系列文档的标识,Wd,t表示关键词t在文档di中的权值,loci表示关键词t在当前文档中出现的位置偏移,通常用两字节表示。通过这种倒排表项的结构,就可以快速查找检索串中的某个关键词。通常每个检索串的倒排索引文件由N个倒排表项组成,N的数量即为检索串中关键词的数量之和。
步骤303集群中的检索服务器按照关键词命中文档的频率高低读取关键词的倒排表项。
具体的,检索表达式中的关键词按照频率高低分为由超高频关键词和中高频关键词组成的高频关键词以及低频关键词。当关键词为超高频关键词和/或中高频关键词时,集群中的检索服务器读取关键词的倒排表项具体为将该关键词的倒排表项进行分割,集群中的每个检索服务器读取超高频和/或中高频关键词的一部分倒排表项;当关键词为低频关键词时,集群中的检索服务器读取关键词的倒排表项具体为集群中的某一台检索服务器读取低频关键词的全部倒排表项。
其中,集群中包含N(N为整数)台检索服务器时,对高频关键词的倒排表项中的文档标识进行取模,取模参数为N,将具有相同模值的倒排表项作为一组分配给与该模值对应的检索服务器。
进一步地,检索服务器将关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。
步骤304集群中的检索服务器对关键词的倒排表项进行逻辑操作后输出检索结果。
具体的,将某一检索服务器中低频关键词的倒排表项的文档标识进行取模后发送到对应的检索服务器;集群中的每个检索服务器对高频关键词和低频关键词的倒排表项进行逻辑操作;对每个检索服务器的逻辑操作结果进行汇总后得到检索串的检索结果。
其中,逻辑操作可以为与操作、或操作、非操作中的一种。
本发明方法的第二实施例流程图如图4所示,该实施例示出的每个集群中包含N台检索服务器,其中N为整数步骤401对获取的检索串进行解析后生成由关键词组成的检索表达式。
通常用户输入的需要进行检索的检索串可以是一个短句或者若干关键词,这些检索串都是未经计算机格式化处理的原始字符串,该检索串经过解析处理后成为计算机可以识别的检索表达式,该检索表达式可以包含一个或多个关键词,中间用空格隔开,一般关键词之间的空格表示前后的关键词进行“与”检索操作,而在互联网搜索中最常见的搜索操作也是“与”操作。
步骤402将关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器。
其中,倒排表项是记录了某个关键词命中的所有文档篇号的数组,包括包含该关键词的文档标识、该关键词在该文档中的权值、及该关键词在该文档中的位置偏移,所有关键词对应的倒排表项的集合即为到排表文件。
步骤403判断关键词为高频关键词或为低频关键词,若为高频关键词则执行步骤404;若为低频关键词则执行步骤405。
通过对网页搜索的后台日志文件的统计,大约超过百分之六十的检索需要进行“与”操作,因此有效提高对“与”操作的检索效率能够提高系统的整体性能。对“与”操作来说,关键在于参与“与”操作的检索表达式中个别高频(命中互联网中巨大数量的网页文档)关键词的倒排表项的读取速度,对于低频关键词的倒排表项读取,由于其本身倒排表项的数据块尺寸较小,因此不占用较多的资源。因此根据关键词对应的倒排表项数量的不同,特别将检索表达式中的关键词分为高频关键词和低频关键词,特别的,高频关键词还可以进一步分为中高频关键词和超高频关键词。
步骤404集群中N台检索服务器分别读取高频关键词的一部分倒排表项,执行步骤407。
对于高频关键词的倒排表项的读取,采用了类似磁盘RAID(冗余独立磁盘阵列)系统的技术,让集群中的多个检索服务器分摊超大规模的高频关键词的倒排表项,同时进行多个检索服务器的并行读取,这样在系统设计时间内可以完成对超大倒排表项的读取,同时也不会延误单次“与”检索操作的总时间开销。
步骤405集群中的某一检索服务器读取低频关键词的全部倒排表项。
对于低频关键词的倒排表项的读取,把原来需要在多台检索服务器上分摊读取的少量倒排表项转换为在集群中的某一台检索服务器上一次读取完成。通常低频关键词的倒排表项的数据块小于64K,如果把它切分成N块再由N台服务器去读取,则不但不会提高读取的速度,而且浪费了集群中多个检索服务器的资源,这是因为对于小于64K的数据块,磁盘在读取时耗费的时间是一样的。
步骤406将低频关键词的倒排表项的文档篇号取模后发送到对应的检索服务器。
检索服务器将关键词倒排表项中的八个字节的文档标识压缩为四个字节的文档篇号。倒排表项中的文档标识是用于定位文档的,对于互联网上的网页来说,每个网页都有一个唯一的URL(统一资源定位器),我们可以根据网页的URL字符串对其进行签名算法的处理后,得到该URL字符串对应的一个64bit(8个字节)的全局唯一整数,就是该文档对应的文档标识。但是由于该互联网中的网页数量巨大,因此该文档标识占用的存储空间也很大,在进行检索过程中,当将关键词的倒排表项分摊到N台检索服务器上时,也就相当于将不同的文档均分到了不同的检索服务器上,因此每台检索服务器上得到了一定数量的文档,假设该数量为n(n为整数),则该检索服务器会对分配到本机的文档进行进一步编号,将这些文档标识为从0-n-1的整数,即为该文档的文档篇号,对于同一文档,文档篇号的长度远远小于原来文档标识的长度,节约了存储空间也相应提高了读取速度。
步骤407集群中的N台检索服务器对高频关键词和低频关键词的倒排表项进行逻辑操作。
其中,逻辑操作包括与操作、或操作、非操作中的一种。
步骤408对N台检索服务器的逻辑操作结果进行汇总后得到检索串的检索结果。
下面以对高频关键词“中国”和低频关键词“徐建军”进行“与”操作为例,详细说明对检索串“中国徐建军”进行检索的过程,“中国”是一个在文档中出现频率非常高的高频关键词,而“徐建军”作为一个具体的人名,在他为非名人的情况下,是一个在文档中出现频率很低的低频关键词。对该检索串进行检索的示意图如图5所示从图5中可知,该集群中包含三台检索服务器,这三台检索服务器分别为检索服务器0、检索服务器1和检索服务器2。其中,高频关键词“中国”的倒排表项中的文档篇号列表为{16,38,100,207,3 19,872,903,1081,2331,5618},低频关键词“徐建军”的倒排表项中的文档篇号列表为{38,295,307,971,2331}。
由于“中国”为高频关键词,因此该高频关键词的各个文档篇号对3取模后分别对应集群中的三台检索服务器,比如文档篇号16对3取模后的值为1,因此文档篇号16的倒排表项对应集群中的检索服务器1。由此对这两个关键词进行与操作时,首先,集群中的检索服务器0相应读取文档篇号为{207,903,2331}的倒排表项,集群中的检索服务器1相应读取文档篇号为{16,100,319,1081}的倒排表项,集群中的检索服务器2相应读取文档篇号为{38,872,5618}的倒排表项,图5中的三台检索服务器分别保存了一部分低频关键词的所有倒排表项,并且假设集群中的检索服务器2读取包含低频关键词“徐建军”的所有文档篇号{38,295,307,971,2331}的倒排表项;其次,集群中的检索服务器完成对关键词的倒排表项的读取后,将低频关键词“徐建军”的倒排表项分发到集群中的三台检索服务器,具体通过将低频关键词的文档篇号对3取模后对应集群中的三台检索服务器,由此该低频关键词文档篇号为{2331}的倒排表项发送到检索服务器0,文档篇号为{295,307}的倒排表项发送到检索服务器1,文档篇号为{38,971}的倒排表项发送到检索服务器2,得到检索的中间结果;最后,集群中的三台服务器分别对高频关键词“中国”和低频关键词“徐建军”的倒排表项进行与操作,检索服务器0的检索结果是文档篇号为2331的文档,检索服务器1的检索结果为空,检索服务器2的检索结果是文档篇号为38的文档,将三个检索服务器的检索结果汇总后,得到对检索串“中国徐建军”进行检索后的结果为文档篇号为{2331,38}的文档。
本发明系统的实施例框图如图6所示该分布式索引文件的检索系统包括缓存代理服务器610、集群代理服务器620以及检索服务器630。
其中缓存代理服务器610用于对获取的检索串进行解析后生成由关键词组成的检索表达式;集群代理服务器620用于将关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的检索服务器630;检索服务器630用于按照关键词命中文档的频率高低读取关键词的倒排表项,并对关键词的倒排表项进行逻辑操作后输出检索结果。
应用本发明系统的检索模型示意图如图7所示,该示意图中的缓存代理服务器、集群代理服务器以及检索服务器呈“树型”分布,该系统中包括一个缓存代理服务器,该缓存代理服务器下连接N台集群代理服务器,每一台集群代理服务器下面连接N台检索服务器,每一组N台检索服务器组成一个集群检索子系统。
其中,缓存代理服务器为一个独立的进程,可以驻留在一台硬件服务器上,其功能是对外部输入的检索串的查询结果进行缓存,同时调用检索服务器中的检索解释程序将外部输入的检索串解析成机器能够读懂的检索表达式,并将解析后的检索表达式分发给每个检索集群子系统,当每个检索集群子系统返回相应的检索结果到集群代理服务器后,再由该缓存代理服务器汇总所有集群代理服务器的结果并返回给外部用户。
集群代理服务器是一个独立的进程,可以驻留在一台硬件服务器上,其功能是对缓存代理服务器发过来的检索表达式进行检索,并将检索任务在下方的检索集群子系统内部进行调度,并最终汇总该检索集群子系统的检索结果,将检索结果返回给上层的缓存代理服务器。
每一台检索服务器都是一个独立的进程,可以驻留在一台硬件服务器上,其为一个最基本的检索单元,在上层集群代理服务器的调度下,进行基本的底层检索操作,包括读取关键词的倒排表项,以及进行相应的“与”“或”“非”等逻辑操作。
本发明对词频不同的关键词的倒排表项的读取策略通过下述实验得到,在互联网随机下载得到的1500万个网页文档中,我们对其中的语素进行统计,命中文档数量超过1000篇的一元、二元、三元语素总数量不超过50万。那么可以推想在1亿篇文档中,命中文档数量在6000-10000篇的语素数量不会超过50万,假定存储文档标识(8字节)、权值(3字节)以及位置偏移(压缩后2字节),在命中5000篇时的存储空间为64k,在命中10000篇时的存储空间为128k,读取时间8毫秒。在如图7所示的新的分布式检索模型中,采用16台机器一组,对于倒排表项存储空间(包括文档标识、权值和位置偏移)在64k以上的语素采用文档分隔,在64k以下的语素采用语素分隔。对于64k以下的语素每次读取一个语素的倒排表项的时间小于8毫秒,对于64k以上的语素,记录为文档篇号(压缩后<2字节)、权值(3字节)以及位置偏移(压缩后<2字节),在每台检索服务器64k-128k的读取量上,可以存放(64k-128k)/7*16=15-30万,对于中高频关键词命中率在千分之三以下,则每次读取时间也在8毫秒之内,对于这两种情况,都可以采用一次性把所有的倒排表项读完。对于命中率超过千分之三以上的高频语素可以只存放权值较高的部分,权值较低的部分可以做停用处理,以使得每个语素的最大倒排表项空间不超过1M,即读取时间不超过50ms。
应用图7中检索模型进行检索的流程图如图8所示
步骤801缓存代理服务器解析检索串后将由关键词组成的检索表达式发送给全部的集群代理服务器。
步骤802集群代理服务器根据关键词命中文档的频率高低将检索请求和倒排表项的预读请求发送到相应的检索服务器。
步骤803检索服务器接收检索请求后获取关键词倒排表项的倒排文档。
步骤804检索服务器使用倒排文档的文档篇号对关键词进行逻辑运算。
步骤805各个检索服务器将逻辑运算后的结果发送到上层集群服务器进行汇总得到中间结果。
步骤806各个集群服务器将中间结果发送到上层缓存代理服务器汇总得到最终结果并输出。
本发明检索服务器的实施例框图如图9所示该检索服务器包括检索解释模块910、读取管理模块920、关键词读取模块930、逻辑运算模块940以及标识转换模块950。
其中,检索解释模块910用于对获取的检索串进行解析后生成由关键词组成的检索表达式供上层服务器调用;读取管理模块920用于接收关键词的检索请求及该关键词的倒排表项的预读请求;关键词读取模块930用于按照关键词命中文档的频率高低读取高频关键词的一部分倒排表项,和/或低频关键词的全部倒排表项;逻辑运算模块940用于对高频关键词的倒排表项和低频关键词的倒排表项进行逻辑操作后输出检索结果;标识转换模块950用于将关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。
由以上实施例可见,本发明的分布式索引文件的检索方法,通过对获取的检索串进行解析后生成由关键词组成的检索表达式,将关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器,集群中的检索服务器按照关键词命中文档的频率高低读取关键词的倒排表项,集群中的检索服务器对关键词的倒排表项进行逻辑操作后输出检索结果。应用本发明可以有效提高检索集群内部检索服务器之间的耦合度,并且增加了服务器之间的资源动态调配能力,通过把集群内的多台检索服务器的资源进行统一规划,最大限度保证了集群整体的并发能力,使得检索速度得到极大的提高。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
权利要求
1.一种分布式索引文件的检索方法,其特征在于,包括对获取的检索串进行解析后生成由关键词组成的检索表达式;将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;集群中的检索服务器按照所述关键词命中文档的频率高低读取所述关键词的倒排表项;集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果。
2.根据权利要求1所述的方法,其特征在于,所述关键词按照命中文档的频率高低分为由超高频关键词和中高频关键词组成的高频关键词以及低频关键词。
3.根据权利要求2所述的方法,其特征在于,所述倒排表项包括包含所述关键词的文档标识、所述关键词在所述文档中的权值、及所述关键词在所述文档中的位置偏移。
4.根据权利要求3所述的方法,其特征在于,所述方法进一步包括所述检索服务器将所述关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。
5.根据权利要求4所述的方法,其特征在于,所述关键词为超高频关键词和/或中高频关键词,所述集群中的检索服务器读取所述关键词的倒排表项具体为将所述关键词的倒排表项进行分割,集群中的每个检索服务器读取所述分割后的关键词的一部分倒排表项。
6.根据权利要求5所述的方法,其特征在于,所述集群中包含N台检索服务器,N为整数;所述分割具体为对所述高频关键词的倒排表项中的文档篇号进行取模,将相同模值的倒排表项作为一组,所述取模参数为N。
7.根据权利要求4所述的方法,其特征在于,所述关键词为低频关键词,所述集群中的检索服务器读取所述关键词的倒排表项具体为集群中的某一检索服务器读取所述关键词的全部倒排表项。
8.根据权利要求7所述的方法,其特征在于,所述集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果包括将所述某一检索服务器中低频关键词的倒排表项的文档篇号进行取模后发送到对应的检索服务器;所述集群中的每个检索服务器对所述高频关键词和低频关键词的倒排表项进行逻辑操作;对所述每个检索服务器的逻辑操作结果进行汇总后得到所述检索串的检索结果。
9.一种分布式索引文件的检索系统,其特征在于,包括缓存代理服务器,用于对获取的检索串进行解析后生成由关键词组成的检索表达式;集群代理服务器,用于将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;检索服务器,用于按照所述关键词命中文档的频率高低读取所述关键词的倒排表项,并对所述关键词的倒排表项进行逻辑操作后输出检索结果。
10.一种分布式索引文件的检索服务器,其特征在于,包括检索解释模块,用于对获取的检索串进行解析后生成由关键词组成的检索表达式供上层服务器调用;读取管理模块,用于接收所述关键词的检索请求及该关键词的倒排表项的预读请求;关键词读取模块,用于按照所述关键词命中文档的频率高低读取高频关键词的一部分倒排表项,和/或低频关键词的全部倒排表项;逻辑运算模块,用于对所述高频关键词的倒排表项和低频关键词的倒排表项进行逻辑操作后输出检索结果。
11.根据权利要求10所述的检索服务器,其特征在于,所述检索服务器进一步包括标识转换模块,用于将所述关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。
全文摘要
本发明公开了一种分布式索引文件的检索方法,包括对获取的检索串进行解析后生成由关键词组成的检索表达式;将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;集群中的检索服务器按照所述关键词命中文档的频率高低读取所述关键词的倒排表项;集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果。本发明还公开了一种分布式索引文件的检索方法和一种分布式索引文件的检索服务器。应用本发明有效提高了检索集群内部检索服务器之间的耦合度,增加了服务器之间的资源动态调配能力,通过把集群内的多台检索服务器的资源进行统一规划,最大限度保证了集群整体的并发能力,提高了检索速度。
文档编号G06F17/30GK101071442SQ20071011245
公开日2007年11月14日 申请日期2007年6月26日 优先权日2007年6月26日
发明者孙良 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1