具有二维线性可缩放并行结构的搜索引擎的制作方法

文档序号:6512796阅读:402来源:国知局
专利名称:具有二维线性可缩放并行结构的搜索引擎的制作方法
技术领域
本发明涉及具有二维线性可缩放并行结构的搜索引擎,该搜索引擎用来搜索文本文档集D,其中,文档可以分解成多个分割文档d1,d2,…dn,其中,文档集D在文本过滤系统中经预处理后可以获得预处理文档集Dp以及相应的预处理分割文档dp1,dp2…dpn,其中可以从文档集D生成索引I,也就为每个预处理分割文档dp1,dp2,…dpn生成相应的索引i1,i2,…in,其中对文档集D的分割文档d的搜索发生在分割文档相关的数据组dp.k,dp.k包含预处理分割文档dpk和相应的索引ik,1≤k≤n,其中搜索引擎包含数据处理单元,该数据处理单元形成联接在网络中的节点组。
现有的绝大多数搜索引擎技术需要处理大量的数据,它借助具有强大计算能力的计算机来实现搜索。而搜索问题是数据可分割处理问题,可利用这个特点把搜索问题分解成大量的细节查询,并把每个不同的查询交给并行联接在网络中的同量级的处理器同时处理。特定的搜索问题可以看作二进制数据分割处理问题。因此可用二进制树形网络建立一个多处理器结构,如已公开的美国专利No.4860201(Stolfo等人)和国际专利申请PCT/NO99/00308,该专利属于本申请人,在此一并引用。该专利申请者开发了用于搜索普通索引文本的专利技术。这些技术是在上述国际专利申请PCT/NO99/00308中论述的用于搜索的搜索系统和搜索方法中所没有的,这些技术属于本申请人,在此一并引用。按照本发明,搜索系统基于有效的核心搜索算法,该算法可用在搜索引擎中。
然而,搜索不断增大的数据容量、处理不断增加的通信负荷和不断增加的由搜索系统处理的每秒钟的查询数,变得越来越重要了。这就要求除了处理器本身能够同时处理大量的查询之外,还应该使搜索引擎具有二维可线性缩放的结构。即,既考虑数据容量和性能,又考虑每秒钟需处理大量查询的能力。纵观万维网(WWW)的发展,由于目前的因特网中文献资料和用户的数量以巨大的增长率增加,搜索引擎结构中的可缩放性变得尤为重要。
现有的解决因特网搜索问题的搜索引擎技术能够缩放到一定的水平,但是几乎所有的这种缩放总是需要付出高昂的成本来扩容搜索引擎系统,以增加数据容量和数据通信。通常,系统的成本与数据容量或流量的平方成比例,因而数据容量每提高一倍将导致系统成本提高四倍。而且,目前所有主要的因特网搜索引擎都基于非常昂贵的服务器技术,并常常伴有粗暴的计算机强行访问(brutecomputing force-approaches)和其他的如服务器缓慢处理、需要附加特定的具有容错能力的硬件等缺点。比如,系统成本能够用建立一个搜索引擎所需的硬件成本来计算或者以实际的系统总成本来计算。
因此本发明的主要目标是提供一个具有多级数据和并行处理功能的搜索引擎。它允许大量用户同时、快速搜索大量数据。
特别地,本发明的另一目标是提供用于建立一个具有多级数据和并行处理功能的搜索引擎的并行结构。
而本发明还有一个目标是提供一个并行结构,它是二维线性可缩放的,即数据容量和性能,即查询速度。
本发明的搜索引擎能够满足上述目标并具有其他特点和优点,其特点在于第一组节点包括a个发送节点,第二组节点包括b个搜索节点,第三组节点包括g个索引节点,以及可选的第四组节点包括了e个采集节点,发送节点联接在网络中的多级结构上。搜索节点按列分成组,这些列处于发送节点和索引节点之间,并行连接在网络中;发送节点用来处理搜索请求和搜索结果;搜索请求还要分配给所有搜索节点,如果没有采集节点,则搜索结果返回到发送节点并在此综合为最终的搜索结果,每个搜索节点都包含搜索软件;至少部分搜索节点还包含至少一个搜索处理器模块;索引节点用于生成搜索软件的索引i,并针对包括搜索处理器模块的搜索节点可选地生成分割文档相关的数据组dp.k,如果有采集节点,则这些节点类似于发送节点,连接在多级网络结构上,用于汇集搜索请求的结果并输出最终的查询结果,这样就可以分离该任务中的发送节点,它通过增加分割文档d的数量来缩放数据容量,通过复制一个或多个分割文档d来缩放性能,从而分别的进行二维线性缩放。
按照本发明,分层树结构用来实现发送节点的多级结构和可选采集节点网络。因而,可选采集节点的多级结构就可以作为发送节点的多级结构的镜像,分层树结构用来实现二进制树结构。
按照本发明,其优点是每个搜索节点包含一个搜索软件模块。
还有,按照本发明,至少部分搜索节点包含至少一个专用的搜索处理器模块,每个专用搜索处理器模块由一个或多个专用处理器芯片实现,这些芯片用来并行处理大量的搜索请求。在这方面,专用的搜索处理器芯片位于搜索处理器模块的y个处理器组中。每个处理器组有z个搜索处理器芯片,每个芯片与处理器组中的存储器相连并从存储器中接收数据。
按照本发明,可以通过增加搜索节点组或节点列来较好地增加数据容量缩放中的分割文档数目。在这方面,分割文档数目的增加相应伴随发送节点数的增加,以及如果有采集节点则伴随采集节点数的增加和伴随索引节点数的增加。
按照本发明,可以通过增加每个组或列中的搜索节点的数目来较好解决性能缩放中的一个或多个分割文档的复制。
最后,按照本发明的优点,每个独立节点组由一个或多个连接在数据通讯网络中的工作站来实现。
根据本发明,搜索引擎可以由非限制性典型实施方案和参考附图来加以说明,其中

图1示出了按照本发明的搜索引擎的第1个实施方案中的结构的概要,图2示出了按照本发明的搜索引擎的第2个实施方案中的结构的概要,图3示出了一个包含搜索软件和专用搜索芯片硬件的搜索节点的示意图,图4示出了搜索芯片的单模块设计方案,图5示出了在专用搜索芯片中处理查询信息的示意图,图6示出了性能缩放原理的示意图,图7示出了基于二进制树结构的多级发送节点结构的示意8示出了基于本发明的搜索引擎的第1个实施方案中的结构的概要及其二维缩放原理,以及图9示出了按照本发明的搜索引擎的第2个实施方案中的结构的概要及其二维缩放原理。
搜索大型的独立文档集是一项高度并行的任务。按照本发明,搜索引擎采取不同等级的并行处理,在下文中展开详细论述。
按照本发明的搜索引擎搜索文档D的文档集。文档可以分解成n个分割文档d1,d2,…dn,每个文档集D或分割文档集的分割文档d能用硬件文本过滤系统进行预处理,比如,可由专用的硬件如所谓的模式匹配芯片(Pattern Matching Chip,PMC)来处理,该模式匹配芯片已经在国际专利申请No.PCT/NO99/00344中公开,在此一并引用。经预处理的文档集用Dp表示,而相应的经预处理的分割文档分别用dp1,dp2,…dpn表示。
基于软件的搜索系统要求从文档集中生成索引,用I表示,相应的文档集的分割文档d1,d2,…dn用i1,i2,…in表示。
搜索文档集D的分割文文档d所需的数据组叫做分割文档所需数据组或者分割文档相关数据组。在只含软件的系统(SW system)中数据组就是索引ik,而在具有硬件的系统(SW/HW system)中数据组还包括经预处理的相应索引为ik的分割文档dpk,其中1≤k≤n本质上,由软件实现的文档分割和预处理操作,其步骤如下所示*(D)→*(d1....dn)→*(dp1....dpn)→dpk,其中*(D)表示对输入文档集D的进行分割操作,*(d1....dn)代表过滤操作,比如给d1....dn添加索引,而dpk无疑就是分割文档相关的数据组。该数据组在只有软件的系统(SW)中就是索引ik,1≤k≤n。
搜索引擎用一组由高性能互联总线连接起来的工作站来实现。图中未显示的工作站组成了搜索服务器系统。工作站作为搜索服务器的节点。不通节点执行不同的搜索任务,按照本发明,在下文中进行陈述。
节点可以认为是分布在各个工作站上的虚拟节点,但是为实现基于硬件的搜索节点,具有硬件系统的搜索引擎,其专用的搜索处理硬件必须是放置在某些工作站上的物理实体。尽管部分具有硬件系统的搜索引擎中地搜索节点可能只含有软件,并任意分布在多个工作站上,但搜索节点软件仍然可以是分布式的。
·发送节点Nα1,…Nα.a处理输入的搜索请求并把搜索请求发送给所有的搜索节点。发送节点还可以设置成采集节点以便汇集搜索答案和搜索结果并返回给查询者。一旦接收到搜索答案,处于采集模式的发送节点把搜索答案综合为最终的搜索结果。
·搜索节点Nβ1,…Nβ.b拥有整个数据组dp的一部分。搜索节点包含专用的搜索软件和大量上文提到的用于硬件搜索的PMC模块。
·索引节点Nγ1,…Nγ.g负责为大量搜索节点上的专用搜索软件生成索引。对于PMC模块,索引节点Nγ还对原始数据进行过滤和预处理。
·采集节点Nδ1,…Nδ.e可以任选地用于汇集结果并把搜索结果综合为最终结果,这种情况无疑可以分离该任务中的发送节点。
按照本发明的第一个实施方案图示在图1中,其中搜索节点Nβ形成节点组或列S,搜索节点组或列S并行连接在发送节点Nα和索引节点Nγ之间。图中还图示了发送节点的排列原理图。而实际上,这些节点形成了多级分层结构。
按照本发明的第二个实施方案图示在图2中,其中采集节点Nδ的排列与发送节点的排列类似,这样就分离了该任务中的发送节点。
可以理解,单个工作站可能只作为某一特定类型的节点,或者多种其他类型的节点。换句话说不同类型的节点可能分布在工作站组中的各个工作站中。因此,图1和2所示的结构由整个组中的工作站来组成,而这些图中既不显示工作站也不显示互联总线。
接下来需要对节点进行更为详细的说明。根据本发明,处于起始位置的搜索节点是搜索引擎的关键节点。
搜索节点Nβ包含上文提到的整个数据组dp中的一部分。搜索节点具有软件搜索引擎(SW)和大量可选的PMC模块M,如图3所示。随后,在索引节点Nγ中生成搜索节点Nβ的数据组。
为能快速搜索,搜索节点可以配备x个PMC模块M,如图3所示。每个PMC模块M具有y组含有z个PMC模块的G,如图4所示,其中每组G从单个存储芯片RAM中接收数据。这些A模块M通常具有独立的电路板。每个PMC芯片能够同时处理q个查询,如图5所示。
模式匹配芯片PMC一秒钟能够处理tc字节的数据容量。若存储模块每秒钟能够向典型匹配芯片PMCs传送ty字节的数据,则PMC就能够在给定的时间内搜索Tc字节的数据容量,Tc=min{tc,ty}t。
如图4所示,典型匹配芯片组PMC置于模块M中,模块M含有y组G,每组G又含有z个PMC芯片。其中,每组G从单个存储芯片RAM中接收数据。存储芯片的容量是Tc。模块能够搜索的总的数据量为Ty,Ty=Tc乘以zq个不同查询。
若每个搜索节点Nβ含有x个模块M,由于没有任何PMC模块搜索相同的数据;同时查询数目仍是zq,则这些PMC模块M能够搜索相当于Tc的数据量,Tc=Ty*x=min{tc,ty}txy。
PMC模块在搜索节点上的总的搜索速度可表大为rHWzqTrmin{rc,ty}txy------(1)]]>其中Tr代表一个节点总的数据容量。接下来就可以计算搜索节点的性能。
给定的PMC模块M(或者任何硬件设备)具有rHW的查询速度,也就是说搜索节点Nβ上的搜索软件具有rHW的查询速度,则搜索节点Ns的总的查询速度可表示为r∑=rt.HW(1-SW)+rt.SWSW(2)其中SW代表在软件中执行的查询数q的百分比。SW的实际值在运行中动态变化。
发送节点Nα接收所有的查询,并把查询发送给所有的搜索节点Nβ。从不同搜索节点Nβ得到的结果进行综合,并且,如果发送节点具备采集节点的功能,就可返回一个完整的结果。
索引节点Nγ汇集文档并为不同搜索节点Nβ上的搜索软件建立预索引。因此索引节点Nγ能够与含有合适的索引软件的搜索节点Nβ合并。硬件是基于对全部原始数据的扫描,但是部分原始数据的预处理和过虑可由索引节点Nγ完成。
关于节点互联和数据通信,可以在下文中得到大体的了解。
不同类型的互联可以用于节点的连接。比如,在低端系统中,通常用100M字节带宽的快速以太网来处理通信。
互联节点中的通信可以分成两类·查询通信-发送节点Nα和搜索节点Nβ之间的通信,查询通信在整个搜索期内都在进行,查询通信的特点在于小到中等的数据容量和较高的通信频率。
·数据通信-索引节点Nγ和搜索节点Nβ之间的通信,数据通信的特点是较高的数据容量和较低的通信频率(一般每天一批)。
通常,查询从发送节点Nα向搜索节点Nβ传送一个查询字符串,然后搜索节点Nβ作出响应并用一系列文档与查询字符串相匹配。可选节点Nα也可以查询搜索节点,查询文档的URL字符串,但这不是本发明的关键内容。
按照本发明,搜索引擎的结构能够根据上述条件,很容易对数据容量和性能两个维独自进行二维缩放。
增加分割文档d的数据组来实现数据容量的缩放,换句话说,可以向搜索节点Nβ增加更多的节点组或列S。为处理更多的分割文档d的数据组,还可以增加索引节点Nγ和发送节点Nα。
性能缩放可以在搜索引擎结构中通过复制分割文档的数据组并相应增加搜索节点Nβ的数目来实现,即如图6所示增加Nβ数目。当采用复制分割文档的数据组来缩放性能时,每个搜索节点Nβ都是搜索节点组S的一部分。这样,就把搜索节点Nβ1…NβS连接到组Sβ1…Sβ.S中,其中 ,hs代表缩放因子。节点组Sβ.j包含搜索节点Nβ.j,Nβ.j+1,Nβ.j+2和Nβ.j+3,如图8所示。
数据容量的缩放可能引起搜索节点Nβ接收到的来自发送节点Nα的查询数的大量增加。本结构通过使用发送节点Nα的层数λ如图7所示来解决该问题。这个结构使发送节点Nα形成二进制数据分布树中的一部分节点。二进制数据分布树允许较容易地对其线性缩放。类似的二进制数据分布树已经在上述提到的国际专利申请PCT/NO99/00344中公开,该专利公开了一个典型匹配芯片PMC的实际实现方案的结构。规则二进制树中发送节点Nα的数目是第λ层为2λ-1个,λ=1,2,3…,发送节点中的根节点在树结构中的第一层,从顶层到λ层,树中全部的发送节点数是2λ-1。如果发送节点还作为采集节点使用,以及用于汇集从搜索节点返回的结果,则在发送节点上综合成搜索结果,并由发送节点中的根节点向查询用户输出最后的查询结果。然而,这并没有违背按照本发明的搜索引擎它建立的是独立的与搜索节点相连接的数据采集树,包含采集节点Nδ,这些采集节点从数据汇集树以及数据采集节点树的根节点上汇集和输出查询的最终结果。因而采集节点树可以作为发送节点的一个镜像。
图8中给出了按照本发明的一个可缩放搜索引擎结构的设计原理图,该引擎结构具有二维缩放原理的插图。可以看出,发送节点Nα组成了搜索引擎的前端结束部分,向搜索节点Nβ发送查询并从搜索节点接收查询结果,在搜索节点中对索引数据进行了实际的搜索。如果使用了专用采集节点Nδ,如图9所示,而其它部分跟图8相似,则搜索结果无疑将返回给这些专用采集节点。随着发送节点Nα加入到树形结构,如图9所示,作为搜索引擎的后端结束部分的采集节点网络形成一个发送节点网络的镜像。索引(蛛网状)节点Nγ组成了搜索引擎的后端结束部分,并从,如,因特网中汇集数据以及检索数据以生成一个可搜索目录。通过水平增加搜索节点Nβ或者搜索节点组S,可以线性缩放搜索引擎的数据容量。每个增加的搜索节点或搜索节点组容纳不同的数据。通常的搜索引擎容量参数可以从下文的一个非限制性例子中给出。通常一个搜索节点Nβ每天能够在5,000,000文档目录中处理8,000,000页示图。可缩放搜索引擎中,每个搜索节点Nβ通常能够容纳5,000,000不同的索引文档,一个具有40个搜索节点的节点行足够用于维护200,000,000个文档目录。性能缩放以及通信能力的增加需要增加更多行具有相同数据容量的搜索节点Nβ,它使每个搜索节点组或列S中的搜索节点能容纳相同数量的数据。因此一个具有10个Nβ搜索节点的节点组或列S每天能够处理80,000,000页示图,则40个这样的节点列S每天能处理3,200,000,000页示图。
按照本发明的具有可缩放结构的搜索引擎的另一个重要优点是查询响应时间跟目录的大小完全无关,因为每个查询是在所有搜索节点Nβ中并行处理的,而且该结构具有固有的容错能力,它确保了个别节点中的错误不会导致系统的崩溃,而只是暂时的在错误纠正之前减低了性能。
而且,按照本发明的数据容量和通行容量的无限线性缩放原理,可以应用于搜索引擎中。与现有的搜索引擎技术相比,后者的搜索成本通常随数据或通信容量的增加成指数增加,并且现有的搜索引擎技术的最大容量通常只能达到较低到中等水平。而按照本发明的搜索引擎,其成本随容量的增加最多成线性增加,事实上它只决定于容量的增加是否仅仅通过增加SW搜索节点还是通过另增SW/HW搜索节点来实现。最后,按照本发明的搜索引擎还具有以下优点,即实际中的每个节点可以由标准的低成本的商用PCs来实现,当然也可以由更昂贵的基于UNIX的服务器比如现有的Sun或Alpha计算机来实现。
权利要求
1.一种具有二维线性可缩放并行结构的搜索引擎,用于搜索文本文档集D,其中,文档可以分解成大量的分割文档d1,d2,…dn,其中,文档集D在文本过滤系统中经预处理后可以获得预处理文档集Dp以及相应的预处理分割文档dp1,dp2,…dpn,其中从文档集D中可以生成索引I,这就为每个预处理分割文档dp1,dp2,…dpn生成对应的索引i1,i2,…in,其中对文档集D的分割文档d的搜索发生在分割文档相关的数据组dp.k中,它包含预处理分割文档dpk和相应的索引ik,l≤k≤n,其中搜索引擎包含形成联接在网络中的节点组(N)的数据处理单元,其特征在于第一组节点,包含a个发送节点(Nα1…Nαa),第二组节点,包含b个搜索节点(Nβ1…Nβ.b),第三组节点,包含g个索引节点(Nγ1…Nγg),以及一个可选的第四组节点,包含e个采集节点(Nδ1…Nδ.e),发送节点(Nα),联接在网络的多级结构中,搜索节点(Nβ),按列(S)分成组,这些列处于发送节点Nα和索引节点Nγ之间,并行连接在网络中,发送节点(Nα)用来处理搜索查询和搜索结果,搜索查询被发送给所有的搜索节点(Nβ),如果没有采集节点(Nδ),搜索结果就返回给发送节点(Nα)并在此综合成最终的搜索结果,每个搜索节点(Nβ)用来存放搜索软件,至少部分搜索节点(Nβ)还包含至少一个搜索处理器模块(M),索引节点(Nγ)通常用来为搜索软件生成索引i以及为包含一个搜索处理器的搜索节点(Nβ)可选地生成分割文档相关的数据组dp.k,如果有采集节点(Nδ),这些节点联接在网络的多级结构中,与发送节点(Nα)类似,用来为搜索查询汇集查询答案并输出一个最终搜索结果,这样发送节点就不再进行该项任务,以及通过增加分割文档d的数目来实现数据容量的缩放以及通过复制一个或多个分割文档d来实现性能缩放,从而分别的进行二维线性缩放。
2.按照权利要求1的搜索引擎,其特征在于网络中发送节点(Nα)和可选采集节点(Nδ)的多级结构由分层树结构提供。
3.按照权利要求2的搜索引擎,其特征在于可选采集节点(Nδ)的多级结构是发送节点(Nα)的多级结构的一个镜像。
4.按照权利要求2的搜索引擎,其特征在于分层数结构是二进制树结构。
5.按照权利要求1的搜索引擎,其特征在于每个搜索节点包含一个搜索软件模块(SM)。
6.按照权利要求5的搜索引擎,其特征在于至少部分搜索节点(Nβ)包含至少一个专用搜索处理器模块(M),每个专用搜索处理器模块(M)由一个或多个专用搜索处理器芯片(PMC)实现,每个芯片用于并行处理多个q搜索查询。
7.按照权利要求6的搜索引擎,其特征在于专用搜索处理器芯片(PMC)由具有y组处理器组(G)的处理器模块(M)提供,每组处理器含有z个搜索处理器芯片(PMC),它与分配给处理器组的存储器(RAM)相连,并从中接收数据。
8.按照权利要求1的搜索引擎,其特征在于数据容量缩放中的分割文档d的数目的增加是通过增加搜索节点组或列(S)来实现的。
9.按照权利要求8的搜索引擎,其特征在于数据容量缩放中的分割文档d的数目的增加伴随着发送节点(Nα)以及采集节点(Nδ)和可选的索引节点(Nγ)数目的增加。
10.按照权利要求1的搜索引擎,其特征在于性能缩放中的一个或多个分割文档d的复制是通过增加每个组或列(S)中的搜索节点的数目来实现的。
11.按照权利要求1的搜索引擎,其特征在于每个节点组(Nα,Nβ,Nγ,Nδ)由一个或多个联接在数据通信网络中的工作站来实现。
全文摘要
用具有二维线性可缩放并行结构的搜索引擎搜索文档集(D),搜索引擎包含用于形成连接在网络中的节点(N)组的数据处理单元,第一组节点包含发送节点(N
文档编号G06F17/30GK1360701SQ00810124
公开日2002年7月24日 申请日期2000年5月10日 优先权日1999年5月10日
发明者B·斯文根, K·M·里斯维克, A·哈拉尔斯, T·埃格 申请人:快速检索及传递公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1