分布式索引文件的检索方法、检索系统及检索服务器技术方案

技术编号:2836743 阅读:377 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种分布式索引文件的检索方法,包括:对获取的检索串进行解析后生成由关键词组成的检索表达式;将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;集群中的检索服务器按照所述关键词命中文档的频率高低读取所述关键词的倒排表项;集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果。本发明专利技术还公开了一种分布式索引文件的检索方法和一种分布式索引文件的检索服务器。应用本发明专利技术有效提高了检索集群内部检索服务器之间的耦合度,增加了服务器之间的资源动态调配能力,通过把集群内的多台检索服务器的资源进行统一规划,最大限度保证了集群整体的并发能力,提高了检索速度。

【技术实现步骤摘要】

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

【技术保护点】
一种分布式索引文件的检索方法,其特征在于,包括:对获取的检索串进行解析后生成由关键词组成的检索表达式;将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;集群中的检索服务器按照所述关键词 命中文档的频率高低读取所述关键词的倒排表项;集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果。

【技术特征摘要】
1.一种分布式索引文件的检索方法,其特征在于,包括对获取的检索串进行解析后生成由关键词组成的检索表达式;将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;集群中的检索服务器按照所述关键词命中文档的频率高低读取所述关键词的倒排表项;集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果。2.根据权利要求1所述的方法,其特征在于,所述关键词按照命中文档的频率高低分为由超高频关键词和中高频关键词组成的高频关键词以及低频关键词。3.根据权利要求2所述的方法,其特征在于,所述倒排表项包括包含所述关键词的文档标识、所述关键词在所述文档中的权值、及所述关键词在所述文档中的位置偏移。4.根据权利要求3所述的方法,其特征在于,所述方法进一步包括所述检索服务器将所述关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。5.根据权利要求4所述的方法,其特征在于,所述关键词为超高频关键词和/或中高频关键词,所述集群中的检索服务器读取所述关键词的倒排表项具体为将所述关键词的倒排表项进行分割,集群中的每个检索服务器读取所述分割后的关键词的一部分倒排表项。6.根据权利要求5所述的方法,其特征在于,所述集群中包含N台检索服务器,N为整数;所述分割具体为对所述高频关键词的倒排表项中的文档篇号进行取模,将相同模值的倒排表项作为一组,所述取模参数为N。7.根据权利要求4所述的方法,其特征在于,所述关键词为低频关键词,所述集群中的检索服务器读取所述关键词的倒排表项具体为集群中的某一检索服务...

【专利技术属性】
技术研发人员:孙良
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1