CN101071442A - 分布式索引文件的检索方法、检索系统及检索服务器 - Google Patents

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

Info

Publication number
CN101071442A
CN101071442A CNA2007101124514A CN200710112451A CN101071442A CN 101071442 A CN101071442 A CN 101071442A CN A2007101124514 A CNA2007101124514 A CN A2007101124514A CN 200710112451 A CN200710112451 A CN 200710112451A CN 101071442 A CN101071442 A CN 101071442A
Authority
CN
China
Prior art keywords
keyword
retrieval
list item
inverted list
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007101124514A
Other languages
English (en)
Other versions
CN100462979C (zh
Inventor
孙良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Shiji Guangsu Information Technology Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CNB2007101124514A priority Critical patent/CN100462979C/zh
Publication of CN101071442A publication Critical patent/CN101071442A/zh
Priority to PCT/CN2008/070598 priority patent/WO2009000173A1/zh
Application granted granted Critical
Publication of CN100462979C publication Critical patent/CN100462979C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

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

Description

分布式索引文件的检索方法、检索系统及检索服务器
技术领域
本发明涉及网络通信技术领域,具体的特别涉及一种分布式索引文件的检索方法、检索系统及检索服务器。
背景技术
通常在进行检索时需要输入检索串,检索串包含一个或多个关键词,每个关键词由一个或多个语素组成。语素是能够表达独立语意的最小语言单位,通常为分词系统中切分出的中文词;关键词通过分词系统可以被切分为数量不等的语素,如果切分为两个语素,则该关键词为二元复合语素,如果切分为三个语素,则该关键词为三元复合语素;检索串中的每个关键词之间用空格隔开,通常在互联网搜索中,关键词之间的空格表示对各个关键词之间进行“与”的检索操作。对输入的检索串需要在较短的时间内找出包含该检索串的所有文档的集合,并将该文档集合通过文档标识列表进行显示。
在各种互联网搜索引擎技术中,后台检索集群技术是最为核心的技术之一,这种技术直接关系多台检索服务器间如何协作,以便为更大规模的数据集合提供检索服务。由于单个检索服务器管理文档集合的数量是有限的,如果保存的文档数量过大,就会导致在进行正常检索操作过程中,系统难以在用户可以接受的时间内返回需要的结果,通常用户可以接受的时间不超过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用于将关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。
由以上实施例可见,本发明的分布式索引文件的检索方法,通过对获取的检索串进行解析后生成由关键词组成的检索表达式,将关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器,集群中的检索服务器按照关键词命中文档的频率高低读取关键词的倒排表项,集群中的检索服务器对关键词的倒排表项进行逻辑操作后输出检索结果。应用本发明可以有效提高检索集群内部检索服务器之间的耦合度,并且增加了服务器之间的资源动态调配能力,通过把集群内的多台检索服务器的资源进行统一规划,最大限度保证了集群整体的并发能力,使得检索速度得到极大的提高。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (11)

1、一种分布式索引文件的检索方法,其特征在于,包括:
对获取的检索串进行解析后生成由关键词组成的检索表达式;
将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;
集群中的检索服务器按照所述关键词命中文档的频率高低读取所述关键词的倒排表项;
集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果。
2、根据权利要求1所述的方法,其特征在于,所述关键词按照命中文档的频率高低分为由超高频关键词和中高频关键词组成的高频关键词以及低频关键词。
3、根据权利要求2所述的方法,其特征在于,所述倒排表项包括:包含所述关键词的文档标识、所述关键词在所述文档中的权值、及所述关键词在所述文档中的位置偏移。
4、根据权利要求3所述的方法,其特征在于,所述方法进一步包括:所述检索服务器将所述关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。
5、根据权利要求4所述的方法,其特征在于,所述关键词为超高频关键词和/或中高频关键词,所述集群中的检索服务器读取所述关键词的倒排表项具体为:
将所述关键词的倒排表项进行分割,集群中的每个检索服务器读取所述分割后的关键词的一部分倒排表项。
6、根据权利要求5所述的方法,其特征在于,所述集群中包含N台检索服务器,N为整数;
所述分割具体为:对所述高频关键词的倒排表项中的文档篇号进行取模,将相同模值的倒排表项作为一组,所述取模参数为N。
7、根据权利要求4所述的方法,其特征在于,所述关键词为低频关键词,所述集群中的检索服务器读取所述关键词的倒排表项具体为:集群中的某一检索服务器读取所述关键词的全部倒排表项。
8、根据权利要求7所述的方法,其特征在于,所述集群中的检索服务器对所述关键词的倒排表项进行逻辑操作后输出检索结果包括:
将所述某一检索服务器中低频关键词的倒排表项的文档篇号进行取模后发送到对应的检索服务器;
所述集群中的每个检索服务器对所述高频关键词和低频关键词的倒排表项进行逻辑操作;
对所述每个检索服务器的逻辑操作结果进行汇总后得到所述检索串的检索结果。
9、一种分布式索引文件的检索系统,其特征在于,包括:
缓存代理服务器,用于对获取的检索串进行解析后生成由关键词组成的检索表达式;
集群代理服务器,用于将所述关键词的检索请求及该关键词的倒排表项的预读请求发送至集群中的各个检索服务器;
检索服务器,用于按照所述关键词命中文档的频率高低读取所述关键词的倒排表项,并对所述关键词的倒排表项进行逻辑操作后输出检索结果。
10、一种分布式索引文件的检索服务器,其特征在于,包括:
检索解释模块,用于对获取的检索串进行解析后生成由关键词组成的检索表达式供上层服务器调用;
读取管理模块,用于接收所述关键词的检索请求及该关键词的倒排表项的预读请求;
关键词读取模块,用于按照所述关键词命中文档的频率高低读取高频关键词的一部分倒排表项,和/或低频关键词的全部倒排表项;
逻辑运算模块,用于对所述高频关键词的倒排表项和低频关键词的倒排表项进行逻辑操作后输出检索结果。
11、根据权利要求10所述的检索服务器,其特征在于,所述检索服务器进一步包括:
标识转换模块,用于将所述关键词倒排表项中的八字节的文档标识压缩为四字节的文档篇号。
CNB2007101124514A 2007-06-26 2007-06-26 分布式索引文件的检索方法、检索系统及检索服务器 Active CN100462979C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNB2007101124514A CN100462979C (zh) 2007-06-26 2007-06-26 分布式索引文件的检索方法、检索系统及检索服务器
PCT/CN2008/070598 WO2009000173A1 (fr) 2007-06-26 2008-03-27 Procédé, système et serveur de recherche

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007101124514A CN100462979C (zh) 2007-06-26 2007-06-26 分布式索引文件的检索方法、检索系统及检索服务器

Publications (2)

Publication Number Publication Date
CN101071442A true CN101071442A (zh) 2007-11-14
CN100462979C CN100462979C (zh) 2009-02-18

Family

ID=38898665

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101124514A Active CN100462979C (zh) 2007-06-26 2007-06-26 分布式索引文件的检索方法、检索系统及检索服务器

Country Status (2)

Country Link
CN (1) CN100462979C (zh)
WO (1) WO2009000173A1 (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000173A1 (fr) * 2007-06-26 2008-12-31 Tencent Technology (Shenzhen) Company Limited Procédé, système et serveur de recherche
CN102479207A (zh) * 2010-11-29 2012-05-30 阿里巴巴集团控股有限公司 一种信息搜索的方法、系统及信息搜索设备
CN103038738A (zh) * 2010-06-22 2013-04-10 微软公司 用于任务利用的个人助理
CN103069421A (zh) * 2010-08-23 2013-04-24 诺基亚公司 用于处理针对分区式索引的搜索请求的方法和装置
CN103064841A (zh) * 2011-10-20 2013-04-24 北京中搜网络技术股份有限公司 检索装置和检索方法
CN103455619A (zh) * 2013-09-12 2013-12-18 焦点科技股份有限公司 一种基于Lucene分片结构的打分处理方法及系统
CN103678697A (zh) * 2013-12-26 2014-03-26 乐视网信息技术(北京)股份有限公司 倒排索引存储方法及其系统
CN103810220A (zh) * 2012-11-15 2014-05-21 腾讯科技(深圳)有限公司 一种微博搜索方法及装置
CN104679778A (zh) * 2013-11-29 2015-06-03 腾讯科技(深圳)有限公司 一种搜索结果的生成方法及装置
CN104778200A (zh) * 2015-01-13 2015-07-15 东莞中山大学研究院 一种结合历史数据的异构处理大数据检索的方法
CN105335373A (zh) * 2014-06-17 2016-02-17 阿里巴巴集团控股有限公司 信息搜索方法及装置
CN105447162A (zh) * 2015-12-01 2016-03-30 腾讯科技(深圳)有限公司 群组文件搜索方法和装置
CN105608022A (zh) * 2014-11-25 2016-05-25 南方电网科学研究院有限责任公司 一种基于倒排技术的智能安全芯片的指令分发方法和系统
CN105653646A (zh) * 2015-12-28 2016-06-08 北京中电普华信息技术有限公司 一种并发查询条件下的动态查询系统及方法
CN106055622A (zh) * 2016-05-26 2016-10-26 浪潮软件集团有限公司 一种数据搜索方法及系统
WO2016173366A1 (zh) * 2015-04-28 2016-11-03 腾讯科技(深圳)有限公司 基于求交算法的搜索方法、搜索系统及存储介质
CN106156166A (zh) * 2015-04-16 2016-11-23 深圳市腾讯计算机系统有限公司 关系链查询系统、文档检索方法、索引建立方法及装置
CN107145603A (zh) * 2017-06-08 2017-09-08 上海德衡数据科技有限公司 一种针对关键词的网络文档搜索引擎框架
CN107436911A (zh) * 2017-05-24 2017-12-05 阿里巴巴集团控股有限公司 模糊查询方法、装置及查询系统
CN108520051A (zh) * 2018-04-04 2018-09-11 湖南蚁坊软件股份有限公司 一种提升Apache Lucene修饰符搜索性能的方法
US10192176B2 (en) 2011-10-11 2019-01-29 Microsoft Technology Licensing, Llc Motivation of task completion and personalization of tasks and lists
CN110532347A (zh) * 2019-09-02 2019-12-03 北京博睿宏远数据科技股份有限公司 一种日志数据处理方法、装置、设备和存储介质
CN112836008A (zh) * 2021-02-07 2021-05-25 中国科学院新疆理化技术研究所 基于去中心化存储数据的索引建立方法
CN113824804A (zh) * 2021-11-24 2021-12-21 飞狐信息技术(天津)有限公司 一种关键词检测的方法及相关装置
CN113923209A (zh) * 2021-09-29 2022-01-11 北京轻舟智航科技有限公司 一种基于LevelDB进行批量数据下载的处理方法
CN117851538A (zh) * 2024-03-07 2024-04-09 济南浪潮数据技术有限公司 一种分布式检索方法、系统、设备及介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105095209B (zh) * 2014-04-21 2019-05-10 珠海豹好玩科技有限公司 文档聚类方法及装置、网络设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8676830B2 (en) * 2004-03-04 2014-03-18 Yahoo! Inc. Keyword recommendation for internet search engines
US20080195595A1 (en) * 2004-11-05 2008-08-14 Intellectual Property Bank Corp. Keyword Extracting Device
CN1936887A (zh) * 2005-09-22 2007-03-28 国家计算机网络与信息安全管理中心 基于类别概念空间的自动文本分类方法
JP4172801B2 (ja) * 2005-12-02 2008-10-29 インターナショナル・ビジネス・マシーンズ・コーポレーション テキストからキーワードを検索する効率的なシステム、および、その方法
CN100462979C (zh) * 2007-06-26 2009-02-18 腾讯科技(深圳)有限公司 分布式索引文件的检索方法、检索系统及检索服务器

Cited By (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009000173A1 (fr) * 2007-06-26 2008-12-31 Tencent Technology (Shenzhen) Company Limited Procédé, système et serveur de recherche
CN103038738A (zh) * 2010-06-22 2013-04-10 微软公司 用于任务利用的个人助理
CN103069421A (zh) * 2010-08-23 2013-04-24 诺基亚公司 用于处理针对分区式索引的搜索请求的方法和装置
US9229946B2 (en) 2010-08-23 2016-01-05 Nokia Technologies Oy Method and apparatus for processing search request for a partitioned index
CN103069421B (zh) * 2010-08-23 2017-02-08 诺基亚技术有限公司 用于处理针对分区式索引的搜索请求的方法和装置
CN102479207A (zh) * 2010-11-29 2012-05-30 阿里巴巴集团控股有限公司 一种信息搜索的方法、系统及信息搜索设备
CN102479207B (zh) * 2010-11-29 2013-07-03 阿里巴巴集团控股有限公司 一种信息搜索的方法、系统及信息搜索设备
US10192176B2 (en) 2011-10-11 2019-01-29 Microsoft Technology Licensing, Llc Motivation of task completion and personalization of tasks and lists
CN103064841A (zh) * 2011-10-20 2013-04-24 北京中搜网络技术股份有限公司 检索装置和检索方法
CN103810220A (zh) * 2012-11-15 2014-05-21 腾讯科技(深圳)有限公司 一种微博搜索方法及装置
CN103810220B (zh) * 2012-11-15 2018-02-27 腾讯科技(深圳)有限公司 一种微博搜索方法及装置
CN103455619B (zh) * 2013-09-12 2016-09-07 焦点科技股份有限公司 一种基于Lucene分片结构的打分处理方法及系统
CN103455619A (zh) * 2013-09-12 2013-12-18 焦点科技股份有限公司 一种基于Lucene分片结构的打分处理方法及系统
US10452691B2 (en) 2013-11-29 2019-10-22 Tencent Technology (Shenzhen) Company Limited Method and apparatus for generating search results using inverted index
WO2015078273A1 (en) * 2013-11-29 2015-06-04 Tencent Technology (Shenzhen) Company Limited Method and apparatus for search
CN104679778B (zh) * 2013-11-29 2019-03-26 腾讯科技(深圳)有限公司 一种搜索结果的生成方法及装置
CN104679778A (zh) * 2013-11-29 2015-06-03 腾讯科技(深圳)有限公司 一种搜索结果的生成方法及装置
CN103678697A (zh) * 2013-12-26 2014-03-26 乐视网信息技术(北京)股份有限公司 倒排索引存储方法及其系统
CN105335373A (zh) * 2014-06-17 2016-02-17 阿里巴巴集团控股有限公司 信息搜索方法及装置
CN105608022A (zh) * 2014-11-25 2016-05-25 南方电网科学研究院有限责任公司 一种基于倒排技术的智能安全芯片的指令分发方法和系统
CN105608022B (zh) * 2014-11-25 2017-08-01 南方电网科学研究院有限责任公司 一种基于倒排技术的智能安全芯片的指令分发方法和系统
CN104778200A (zh) * 2015-01-13 2015-07-15 东莞中山大学研究院 一种结合历史数据的异构处理大数据检索的方法
CN106156166A (zh) * 2015-04-16 2016-11-23 深圳市腾讯计算机系统有限公司 关系链查询系统、文档检索方法、索引建立方法及装置
US10902036B2 (en) 2015-04-28 2021-01-26 Tencent Technology (Shenzhen) Company Limited Intersection algorithm-based search method and system, and storage medium
WO2016173366A1 (zh) * 2015-04-28 2016-11-03 腾讯科技(深圳)有限公司 基于求交算法的搜索方法、搜索系统及存储介质
CN105447162A (zh) * 2015-12-01 2016-03-30 腾讯科技(深圳)有限公司 群组文件搜索方法和装置
CN105653646B (zh) * 2015-12-28 2019-06-04 北京中电普华信息技术有限公司 一种并发查询条件下的动态查询系统及方法
CN105653646A (zh) * 2015-12-28 2016-06-08 北京中电普华信息技术有限公司 一种并发查询条件下的动态查询系统及方法
CN106055622A (zh) * 2016-05-26 2016-10-26 浪潮软件集团有限公司 一种数据搜索方法及系统
CN107436911A (zh) * 2017-05-24 2017-12-05 阿里巴巴集团控股有限公司 模糊查询方法、装置及查询系统
CN107145603A (zh) * 2017-06-08 2017-09-08 上海德衡数据科技有限公司 一种针对关键词的网络文档搜索引擎框架
CN108520051A (zh) * 2018-04-04 2018-09-11 湖南蚁坊软件股份有限公司 一种提升Apache Lucene修饰符搜索性能的方法
CN110532347A (zh) * 2019-09-02 2019-12-03 北京博睿宏远数据科技股份有限公司 一种日志数据处理方法、装置、设备和存储介质
CN110532347B (zh) * 2019-09-02 2023-12-22 北京博睿宏远数据科技股份有限公司 一种日志数据处理方法、装置、设备和存储介质
CN112836008A (zh) * 2021-02-07 2021-05-25 中国科学院新疆理化技术研究所 基于去中心化存储数据的索引建立方法
CN112836008B (zh) * 2021-02-07 2023-03-21 中国科学院新疆理化技术研究所 基于去中心化存储数据的索引建立方法
CN113923209A (zh) * 2021-09-29 2022-01-11 北京轻舟智航科技有限公司 一种基于LevelDB进行批量数据下载的处理方法
CN113923209B (zh) * 2021-09-29 2023-07-14 北京轻舟智航科技有限公司 一种基于LevelDB进行批量数据下载的处理方法
CN113824804A (zh) * 2021-11-24 2021-12-21 飞狐信息技术(天津)有限公司 一种关键词检测的方法及相关装置
CN117851538A (zh) * 2024-03-07 2024-04-09 济南浪潮数据技术有限公司 一种分布式检索方法、系统、设备及介质

Also Published As

Publication number Publication date
WO2009000173A1 (fr) 2008-12-31
CN100462979C (zh) 2009-02-18

Similar Documents

Publication Publication Date Title
CN100462979C (zh) 分布式索引文件的检索方法、检索系统及检索服务器
Cambazoglu et al. Scalability challenges in web search engines
CN103177027B (zh) 获取动态Feed索引的方法和系统
CN102122285B (zh) 一种数据缓存系统中的数据查询系统和数据查询方法
CN103412924B (zh) 日志多语言查询方法和系统
US8229916B2 (en) Method for massively parallel multi-core text indexing
CN102479207B (zh) 一种信息搜索的方法、系统及信息搜索设备
CN100458784C (zh) 在数字图书馆中所采用的检索系统和检索方法
Ribeiro-Neto et al. Efficient distributed algorithms to build inverted files
CN102971732A (zh) 键/值存储器的集成分级查询处理的系统结构
CN104239377A (zh) 跨平台的数据检索方法及装置
CN104111924A (zh) 一种数据库系统
US20120130984A1 (en) Dynamic query master agent for query execution
CN106484815B (zh) 一种基于海量数据类sql检索场景的自动识别优化方法
Arroyuelo et al. Distributed search based on self-indexed compressed text
Grandi et al. Frame-sliced partitioned parallel signature files
Moss Addressing large distributed collections of persistent objects: The Mneme project’s approach
CN102597969A (zh) 带属性的键值存储的数据库管理装置及其键值存储结构的高速缓存装置
CN108509585A (zh) 一种异构数据实时交互优化处理方法
Jonassen et al. A combined semi-pipelined query processing architecture for distributed full-text retrieval
CN112861495A (zh) 一种基于Excel模板文件生成ImpalaSQL语句的方法
CN113672583A (zh) 基于存储与计算分离的大数据多数据源分析方法及系统
Zhong et al. A Design of the Inverted Index Based on Web Document Comprehending.
Marin et al. High-performance priority queues for parallel crawlers
CN109241098A (zh) 一种分布式数据库的查询优化方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SHENZHEN SHIJI LIGHT SPEED INFORMATION TECHNOLOGY

Free format text: FORMER OWNER: TENGXUN SCI-TECH (SHENZHEN) CO., LTD.

Effective date: 20131024

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518044 SHENZHEN, GUANGDONG PROVINCE TO: 518057 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20131024

Address after: 518057 Tencent Building, 16, Nanshan District hi tech park, Guangdong, Shenzhen

Patentee after: Shenzhen Shiji Guangsu Information Technology Co., Ltd.

Address before: 2, 518044, East 410 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.