分布式搜索方法、体系结构、系统及软件的制作方法

文档序号:6487254阅读:196来源:国知局
专利名称:分布式搜索方法、体系结构、系统及软件的制作方法
技术领域
本发明的各种实施例涉及信息检索系统和知识管理系统,更具体地涉及这类系统中的分布式搜索功能。
背景现代计算机联机信息提供商通常需要搜索大量数据的能力。例如,美国法律体系以及全球的一些其它法律体系极大地依靠书面司法意见、法官的书面判决来表达或解释控制争端解决的法律。因此,我们的法律体系中的法官和律师一直在搜索不断扩充的大量过往意见或判例法,以便获取与新争端的解决或预防最相关的意见或判例法。找到的案例经过关联性研究,最终在文档中引述和论述,称作工作成果,例如,它为法庭诉讼辩护、对相似的法庭诉讼向客户进行建议或者在特定权限中关于法律状况指导客户和律师。
另外,知识管理系统、文档管理系统和其它联机数据提供商通常需要来自其大小可能从大到小变化的数据集的信息。太拉字节范围的数据集不再罕见。例如,一些系统可利用包含大约1.2太拉字节的唯一数据的公开记录以及包括大约20千兆字节(GB)的唯一数据的税务和会计(TA)数据。在先前系统中,由于系统通常仅可存储唯一公开记录数据的百分之五而出现问题。此外,系统对于唯一TA数据过大,它通常与其它数据提供商共享服务器空间。
数据集和系统大小的这类差异对搜索引擎性能、尤其对于与企业服务器实现相关的搜索引擎性能有影响(包括固有可用性问题)。例如,如果在系统的CPU中发生存储器故障,则系统在排除故障之前通常无法运行搜索服务,以及故障转移机制是有问题的。由于搜索服务通常是存储器密集的,并且没有束缚于CPU,因此,解决这些故障问题浪费资源。
此外,有时,如果数据页面在文件系统高速缓存中不可用,查询处理迫使搜索引擎访问盘以找到数据页面。虽然在一些情况下,如果数据集小到足以完全保存在RAM中,则通常可在文件系统高速缓存中找到数据,但情况往往是,数据集很大,使得查询处理往往在盘级而不是在文件系统高速缓存级发生。此外,当前体系结构通常没有确保同一个搜索引擎会一致地处理相同的数据,这消除了搜索引擎高速缓存的优势。
因此,本发明人已经认识到,需要提供联机传送平台中的搜索功能的更好的系统、工具及方法。

发明内容
为了满足这个和/或其它需求,本发明人设计了为律师事务所和其它企业中使用的联机传送平台提供分布式搜索功能的新颖系统、方法和软件。例如,系统、方法及软件的一个方面提供多个数据集。数据集可包含对其它数据集的索引。至少一个搜索引擎与各数据集关联。接收搜索请求的系统根据搜索请求中涉及的数据集来确定哪些搜索引擎被用来处理搜索请求。然后,搜索请求被转发给所识别的搜索引擎。
值得注意的是,示范实施例提供一种搜索功能,它分布在多个搜索引擎之中,其方式是,搜索数据很可能被高速缓存在可用RAM中,从而避免代价高的盘搜索。
附图概述

图1是与本发明的一个或多个实施例对应的示范分布式搜索系统100的框图。
图2是框图,提供对于与本发明的一个或多个实施例对应的示范分布式搜索系统200的更详细说明。
图3是与操作实施本发明的示范分布式搜索系统及关联组件的一个或多个示范方法对应的流程图。
示范实施例的详细描述以下结合附图和所附权利要求的描述描述和/或说明一个或多个发明的一个或多个示范实施例。足够详细地表示和描述了这些实施例,以便使本领域的技术人员能够实施和使用本发明,提供这些实施例只是为了举例说明和讲授本发明而非限定。因此,在需要避免使一个或多个发明难以理解的情况下,描述可能省略相关领域的技术人员已知的某些信息。
示范信息系统图1说明结合本发明的一个或多个理论的示范分布式搜索系统100。系统100包括搜索控制器102、消息交换机104、搜索引擎106、网络连接存储器(NAS)110以及可通信地把搜索引擎106耦合到NAS110的网络108。上述组件可分布在一个或多个服务器计算机之中。在一些实施例中,服务器计算机包括Sun Microsystems,Inc.制造的基于刀片的服务计算机。但是,在备选实施例中,可采用基于Intel处理器体系结构的服务器。
搜索控制器102“收听”搜索请求。利用“分割-合并”引擎,搜索控制器接收请求,并将它们分为成分请求(由搜索引擎106提供服务)。从搜索引擎106接收到响应时,搜索控制器合并响应,并将其发送给请求方。可对于组成数据收集或收集集合或者从其中产生的各种数据集进行在程序设计上称作“搜索引擎请求”的分割请求。在一些实施例中,数据集包括对数据收集或收集集合的索引的一部分(称作“索引集”)。
消息交换机104用于把消息从搜索控制器102路由到一个或多个搜索引擎106。消息可包含将由一个或多个搜索引擎106执行的搜索请求。在本发明的一些实施例中,消息交换机104提供Java消息服务(JMS)接口。此外,在一些实施例中,可采用诸如可向IBM Corp.购买的MQ消息传输系统之类的消息排队软件来路由消息。但是,本发明没有任何实施例被认为局限于特定的消息路由系统,在备选实施例中,可采用Sonic Software Corporation的SonicMQ消息排队软件。
在一些实施例中,搜索引擎106包括Java“包装机”,它对于服务器搜索和解决的数据进行预处理和后处理。在一些实施例中,这个处理可通过Java本地接口来执行。搜索引擎106接收“搜索引擎请求”成分和特定“索引集”,并使得对于请求指定的“索引集”执行搜索。
要搜索的数据集可能驻留于可通信地通过网络108耦合到搜索引擎106的网络连接存储器110。网络连接存储器可以是通过网络可访问的任何类型的存储装置。这种网络连接存储器的实例是本领域已知的,并且包括文件服务器、存储服务器和其它网络连接存储媒体。
网络108可以是能够支持数据通信的任何类型的有线或无线网络。在本发明的一些实施例中,网络108包括专用千兆位以太网网络。但是,本发明没有任何实施例被认为局限于特定的网络类型。
搜索引擎106可在安装了Linux OS的普通Intel系统中运行。在一些实施例中,可通过网络文件系统(NFS)协议从网络连接存储器(NAS)服务器110来访问“索引集”的数据。当初始查询进入搜索引擎时,对搜索引擎提供满足搜索查询所需的“索引集”名称和文件名。
搜索引擎106可向NAS服务器110进行NFS调用,并请求那些文件的数据。这个数据通常是静态的,并且被高速缓存在NFS客户机系统中。随后,当搜索引擎访问它的已分配“索引集”的数据时,它可为文件信息向NFS服务器进行元目录调用。搜索引擎1-6从本地RAM高速缓存中读取数据页面,这允许查询条件的RAM速度搜索。
图2提供结合本发明的一个或多个理论的示范分布式搜索系统200的更详细说明。系统200包括以上参照图1所述的组件,另外还包括产品/客户机202、资源管理器206和联机传送平台代理208。
产品/客户机202可以是任何客户机软件模块,它采用根据本发明的实施例的理论所提供的分布式搜索功能性。这类软件包括浏览器、文档管理系统、知识管理系统、文档检索系统、判例法检索系统等。产品/客户机202向消息交换机104发出一个或多个搜索请求,消息交换机104根据搜索请求中的数据把请求路由到服务控制器。
联机传送平台(ODP)代理进程208在服务器、如搜索控制器102和搜索引擎106中启动进程,并监测和管理这些进程。在一些实施例中,ODP代理进程208还跟踪各个进程,并向公告板数据库报告其处理状态。此外,在一些实施例中,ODP代理进程208当存在故障或者“长事务处理”条件时重新启动搜索控制器或搜索引擎。ODP代理208被看作是运行ODP环境的宿主代理进程。
当系统启动时,服务器上的ODP代理208启动和查询把ODP代理208分配给代理管理器(未示出)的引擎的(预先配置的)资源管理器206。代理管理器包含有关域中的代理和搜索引擎的信息,并且可对查询它的ODP代理208动态分配工作负荷。在一些实施例中,代理管理器包括LDAP(轻型目录访问协议)代理。在一些实施例中,对搜索引擎分配具有与搜索引擎106关联的“索引集”的名称对应的名称的消息队列。
在一些实施例中,如果搜索引擎106出故障,则其代理将检测出故障引擎并使它重新启动。在搜索引擎出故障时所处理的查询可能丢失,以及控制器请求“出错”。(一些实施例可能把出故障查询的副本传递到对主题索引集操作的另一个搜索引擎。)但是,出故障搜索引擎106可重新启动,使得新的查询可无延迟地被处理。
在一些实施例中,如果搜索引擎系统遇到CPU、RAM或其它硬件故障,则消息交换机代理检测“索引集”队列没有为它提供服务的进程。代理立即警告代理管理器重新分配搜索引擎,以便为那个“索引集”队列提供服务。
各种实施例的示范系统设计结合部署普通系统以及在引导过程期间“学习”它在分布式搜索体系结构中的角色的固定OS影像。系统的弹性包容进程或硬件故障,以及它的灵活性允许对出故障组件的附加资源的分配。
此外,在一些实施例中,为故障转移分配的附加资源不是“空闲”(等待故障转移)。如果检测到处理瓶颈,它们可作为“工作负荷处理机”来部署,从而提供附加处理。这种工作负荷可通过消息交换机104或ODP代理208来检测,它可对每个“索引集”队列的工作负荷模式进行检测和报告。
另外,各种实施例的示范体系结构有助于“懒监测”方案。组件故障不需要立即被检测及修复。当灾难性事件发生时,可出现检测和通知,但修复组件可在任何时间发生,只要存在可用于承担其工作负荷的附加资源。
示范操作方法图3说明操作信息管理系统、如系统100的一个或多个示范方法的流程图300。流程图300包括框310-340,它们在示范实施例中以顺次执行序列来排列及描述。但是,其它实施例可采用多个处理器或类似处理器的装置或者组织成两个或两个以上虚拟机或子处理器的单一处理器来并行执行两个或两个以上框。其它实施例还改变过程序列或者提供不同的功能划分来得到类似结果。此外,又一些实施例把这些框实现为两个或两个以上互连的硬件模块,其中的相关控制和数据信号在模块之间或者通过模块传递。因此,示范过程流适用于软件、硬件和固件实现。
在框310,示范方法以提供一个或多个数据集开始。在一些实施例中,数据集包括对数据收集或数据收集集合的索引的一些部分。索引可根据数据库索引的范围来划分,其中每个范围包含一个数据集。然后,数据集存储在存储装置、如NAS 110中。
框320需要接收搜索请求。在框330,搜索请求经过分析以确定要求哪些数据集。
在框340,搜索请求则被转发到与框330中识别的数据集对应的搜索引擎。在本发明的一些实施例中,搜索请求通过消息队列转发给搜索引擎。此外,在一些实施例中,向与特定搜索引擎关联的消息队列提供与配置用于搜索引擎的“索引集”相同的名称。
结论上述实施例只是用于说明和讲授实施和使用本发明的一种或多种方式,而不是限制其广度或范围。包含实施或实现本发明的理论的全部方式的本发明的实际范围仅由一个或多个已发布专利权利要求及其等效物来定义。
权利要求
1.一种包括多个数据集和多个搜索引擎的联机搜索系统,其中,每个数据集具有分配给所述数据集的所述多个搜索引擎中的至少一个。
2.如权利要求1所述的系统,其特征在于,还包括多个服务器,其中,各服务器容纳所述搜索引擎中的至少一个。
3.如权利要求2所述的系统,其特征在于,各服务器包括一个或多个处理器以及关联的Linux操作系统。
4.如权利要求1所述的系统,其特征在于,还包括可用于向所述多个搜索引擎分配搜索请求的多个搜索控制器。
5.如权利要求4所述的系统,其特征在于,还包括可用于在所述多个搜索控制器与所述多个搜索引擎之间路由搜索请求的消息服务器。
6.如权利要求5所述的系统,其特征在于,所述消息服务包括JAVA消息服务。
7.如权利要求5所述的系统,其特征在于,搜索请求被路由到消息队列。
8.如权利要求7所述的系统,其特征在于,所述消息队列由IBM/MQ消息队列软件的一种版本来提供。
9.如权利要求1所述的系统,其特征在于,所述数据集中的每一个包含对数据收集的索引的一部分。
10.一种用于执行搜索的方法,包括提供多个数据集;接收搜索请求;响应所述搜索请求而识别要搜索的所述多个数据集中的至少一个数据集;以及把所述搜索请求发送给多个搜索引擎中的至少一个搜索引擎,所述搜索引擎具有与所述至少一个数据集的关联。
11.如权利要求10所述的方法,其特征在于,所述数据集包含对数据收集的索引的一部分。
12.如权利要求10所述的方法,其特征在于,发送所述搜索请求包括把所述搜索请求放入消息队列。
13.如权利要求12所述的方法,其特征在于,与所述消息队列关联的标识符和与所述数据集关联的标识符相同。
14.如权利要求10所述的方法,其特征在于,还包括分割所述搜索请求以便发送给多个所述搜索引擎。
15.一种机器可读媒体,其中具有用于运行执行搜索的方法的指令,所述方法包括提供多个数据集;接收搜索请求;响应所述搜索请求而识别要搜索的所述多个数据集中的至少一个数据集;以及把所述搜索请求发送给多个搜索引擎中的至少一个搜索引擎,所述搜索引擎具有与所述至少一个数据集的关联。
16.如权利要求15所述的机器可读媒体,其特征在于,所述数据集包含对数据收集的索引的一部分。
17.如权利要求15所述的机器可读媒体,其特征在于,发送所述搜索请求包括把所述搜索请求放入消息队列。
18.如权利要求17所述的机器可读媒体,其特征在于,与所述消息队列关联的标识符和与所述数据集关联的标识符相同。
19.如权利要求15所述的机器可读媒体,其特征在于,还包括分割所述搜索请求以便发送给多个所述搜索引擎。
20.一种用于执行搜索的系统,所述系统包括用于提供多个数据集的部件;用于接收搜索请求的部件;用于响应所述搜索请求而识别要搜索的所述多个数据集中的至少一个数据集的部件;以及用于把所述搜索请求发送给多个搜索引擎中的至少一个搜索引擎的部件,所述搜索引擎具有与所述至少一个数据集的关联。
21.如权利要求20所述的系统,其特征在于,所述数据集包含对数据收集的索引的一部分。
22.如权利要求20所述的系统,其特征在于,用于发送所述搜索请求的部件包括把所述搜索请求放入消息队列。
23.如权利要求22所述的系统,其特征在于,与所述消息队列关联的标识符和与所述数据集关联的标识符相同。
24.如权利要求20所述的系统,其特征在于,还包括用于分割所述搜索请求以便发送给多个所述搜索引擎的部件。
全文摘要
描述了用于为律师事务所及其它企业中使用的联机传送平台提供分布式搜索功能的系统、方法及软件。例如,系统、方法及软件的一个方面提供多个数据集。数据集可包含对其它数据集的索引。至少一个搜索引擎与各数据集关联。接收搜索请求的系统根据搜索请求中涉及的数据集来确定哪些搜索引擎被用来处理搜索请求。然后,搜索请求被转发给所识别的搜索引擎。
文档编号G06F17/30GK1839385SQ200480017052
公开日2006年9月27日 申请日期2004年4月26日 优先权日2003年4月25日
发明者M·布卢姆 申请人:汤姆森环球资源公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1