專利名稱:分布式搜索方法、體系結(jié)構(gòu)、系統(tǒng)及軟件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的各種實(shí)施例涉及信息檢索系統(tǒng)和知識管理系統(tǒng),更具體地涉及 這類系統(tǒng)中的分布式搜索功能。
背景技術(shù):
現(xiàn)代計(jì)算機(jī)聯(lián)機(jī)信息提供商通常需要搜索大量數(shù)據(jù)的能力。例如,美國 法律體系以及全球的一些其它法律體系極大地依靠書面司法意見、法官的書
面判決來表達(dá)或解釋控制爭端解決的法律。因此,我們的法律體系中的法官 和律師一直在搜索不斷擴(kuò)充的大量過往意見或判例法,以便獲取與新爭端的
解決或預(yù)防最相關(guān)的意見或判例法。找到的案例經(jīng)過關(guān)聯(lián)性研究,最終在文 檔中引述和論述,稱作工作成果,例如,它為法庭訴訟辯護(hù)、對相似的法庭 訴訟向客戶進(jìn)行建議或者在特定權(quán)限中關(guān)于法律狀況指導(dǎo)客戶和律師。
另外,知識管理系統(tǒng)、文檔管理系統(tǒng)和其它聯(lián)機(jī)數(shù)據(jù)提供商通常需要來 變化的數(shù)據(jù)集的信息。太拉字節(jié)范圍的數(shù)據(jù)集不再罕
見。例如, 一些系統(tǒng)可利用包含大約1.2太拉字節(jié)的唯一數(shù)據(jù)的公開記錄以 及包括大約20千兆字節(jié)(GB)的唯一數(shù)據(jù)的稅務(wù)和會計(jì)(TA)數(shù)據(jù)。在先前系統(tǒng) 中,由于系統(tǒng)通常僅可存儲唯一公開記錄數(shù)據(jù)的百分之五而出現(xiàn)問題。此外, 系統(tǒng)對于唯一 TA數(shù)據(jù)過大,它通常與其它數(shù)據(jù)提供商共享服務(wù)器空間。 數(shù)據(jù)集和系統(tǒng)大小的這類差異對搜索引擎性能、尤其對于與企業(yè)服務(wù)器
實(shí)現(xiàn)相關(guān)的搜索引擎性能有影響(包括固有可用性問題)。例如,如果在系統(tǒng) 的CPU中發(fā)生存儲器故障,則系統(tǒng)在排除故障之前通常無法運(yùn)行搜索服務(wù), 以及故障轉(zhuǎn)移機(jī)制是有問題的。由于搜索服務(wù)通常是存儲器密集的,并且沒 有束縛于CPU,因此,解決這些故障問題浪費(fèi)資源。
此外,有時,如果數(shù)據(jù)頁面在文件系統(tǒng)高速緩存中不可用,查詢處理迫 使搜索引擎訪問盤以找到數(shù)據(jù)頁面。雖然在一些情況下,如果數(shù)據(jù)集小到足 以完全保存在RAM中,則通??稍谖募到y(tǒng)高速緩存中找到數(shù)據(jù),但情況 往往是,數(shù)據(jù)集很大,使得查詢處理往往在盤級而不是在文件系統(tǒng)高速緩存 級發(fā)生。此外,當(dāng)前體系結(jié)構(gòu)通常沒有確保同一個搜索引擎會一致地處理相 同的數(shù)據(jù),這消除了搜索引擎高速緩存的優(yōu)勢。
因此,本發(fā)明人已經(jīng)認(rèn)識到,需要提供聯(lián)機(jī)傳送平臺中的搜索功能的更 好的系統(tǒng)、工具及方法。
發(fā)明內(nèi)容
為了滿足這個和/或其它需求,本發(fā)明人設(shè)計(jì)了為律師事務(wù)所和其它企業(yè) 中使用的聯(lián)機(jī)傳送平臺提供分布式搜索功能的新穎系統(tǒng)、方法和軟件。例如, 系統(tǒng)、方法及軟件的一個方面提供多個數(shù)據(jù)集。數(shù)據(jù)集可包含對其它數(shù)據(jù)集 的索引。至少一個搜索引擎與各數(shù)據(jù)集關(guān)聯(lián)。接收搜索請求的系統(tǒng)根據(jù)搜索 請求中涉及的數(shù)據(jù)集來確定哪些搜索引擎被用來處理搜索請求。然后,搜索 請求被轉(zhuǎn)發(fā)給所識別的搜索引擎。
值得注意的是,示范實(shí)施例提供一種搜索功能,它分布在多個搜索引擎 之中,其方式是,搜索數(shù)據(jù)很可能被高速緩存在可用RAM中,從而避免代 價高的盤搜索。
圖1是與本發(fā)明的一個或多個實(shí)施例對應(yīng)的示范分布式搜索系統(tǒng)100的框圖。
圖2是框圖,提供對于與本發(fā)明的一個或多個實(shí)施例對應(yīng)的示范分布式 搜索系統(tǒng)200的更詳細(xì)i兌明。
圖3是與操作實(shí)施本發(fā)明的示范分布式搜索系統(tǒng)及關(guān)聯(lián)組件的一個或多 個示范方法對應(yīng)的流程圖。
具體實(shí)施例方式
以下結(jié)合附圖和所附權(quán)利要求的描述描述和/或說明 一個或多個發(fā)明的 一個或多個示范實(shí)施例。足夠詳細(xì)地表示和描述了這些實(shí)施例,以便使本領(lǐng) 域的技術(shù)人員能夠?qū)嵤┖褪褂帽景l(fā)明,提供這些實(shí)施例只是為了舉例說明和 講授本發(fā)明而非限定。因此,在需要避免使一個或多個發(fā)明難以理解的情況 下,描述可能省略相關(guān)領(lǐng)域的技術(shù)人員已知的某些信息。
示范信息系統(tǒng)
圖1說明結(jié)合本發(fā)明的一個或多個理論的示范分布式搜索系統(tǒng)100。系 統(tǒng)100包括搜索控制器102、消息交換機(jī)104、搜索引擎106、網(wǎng)絡(luò)連接存儲 器(NAS)llO以及可通信地把搜索引擎106耦合到NAS 110的網(wǎng)絡(luò)108。上述 組件可分布在一個或多個服務(wù)器計(jì)算機(jī)之中。在一些實(shí)施例中,服務(wù)器計(jì)算 機(jī)包括Sun Microsystems, Inc.制造的基于刀片的服務(wù)計(jì)算機(jī)。但是,在備選 實(shí)施例中,可采用基于Intel處理器體系結(jié)構(gòu)的服務(wù)器。
搜索控制器102 "收聽"搜索請求。利用"分割-合并"引擎,搜索控制 器接收請求,并將它們分為成分請求(由搜索引擎106提供服務(wù))。從搜索引 擎106接收到響應(yīng)時,搜索控制器合并響應(yīng),并將其發(fā)送給請求方。可對于 組成數(shù)據(jù)收集或收集集合或者從其中產(chǎn)生的各種數(shù)據(jù)集進(jìn)行在程序設(shè)計(jì)上稱 作"搜索引擎請求,,的分割請求。在一些實(shí)施例中,數(shù)據(jù)集包括對數(shù)據(jù)收集 或收集集合的索引的一部分(稱作"索引集")。
消息交換機(jī)104用于把消息從搜索控制器102路由到一個或多個搜索引 擎106。消息可包含將由一個或多個搜索引擎106執(zhí)行的搜索請求。在本發(fā) 明的一些實(shí)施例中,消息交換機(jī)104提供Java消息服務(wù)(JMS)接口。此外,
在一些實(shí)施例中,可采用諸如可向IBM Corp.購買的MQ消息傳輸系統(tǒng)之類 的消息排隊(duì)軟件來路由消息。但是,本發(fā)明沒有任何實(shí)施例浮皮認(rèn)為局限于特 定的消息路由系統(tǒng),在備選實(shí)施例中,可采用Sonic Software Corporation的 SonicMQ消息排隊(duì)軟件。
在一些實(shí)施例中,搜索引擎106包括Java "包裝機(jī)",它對于服務(wù)器搜 索和解決的數(shù)據(jù)進(jìn)行預(yù)處理和后處理。在一些實(shí)施例中,這個處理可通過Java 本地接口來執(zhí)行。搜索引擎106接收"搜索引擎請求"成分和特定"索引集", 并使得對于請求指定的"索引集"執(zhí)行搜索。
要搜索的數(shù)據(jù)集可能駐留于可通信地通過網(wǎng)絡(luò)108耦合到搜索引擎106 的網(wǎng)絡(luò)連接存儲器110。網(wǎng)絡(luò)連接存儲器可以是通過網(wǎng)絡(luò)可訪問的任何類型 的存儲裝置。這種網(wǎng)絡(luò)連接存儲器的實(shí)例是本領(lǐng)域已知的,并且包括文件服 務(wù)器、存儲服務(wù)器和其它網(wǎng)絡(luò)連接存儲^某體。
網(wǎng)絡(luò)108可以是能夠支持?jǐn)?shù)據(jù)通信的任何類型的有線或無線網(wǎng)絡(luò)。在本 發(fā)明的一些實(shí)施例中,網(wǎng)絡(luò)108包括專用千兆位以太網(wǎng)網(wǎng)絡(luò)。但是,本發(fā)明 沒有任何實(shí)施例^皮認(rèn)為局限于特定的網(wǎng)絡(luò)類型。
搜索引擎106可在安裝了 Linux OS的普通Intel系統(tǒng)中運(yùn)行。在一些實(shí) 施例中,可通過網(wǎng)絡(luò)文件系統(tǒng)(NFS)協(xié)議從網(wǎng)絡(luò)連接存儲器(NAS)服務(wù)器110 來訪問"索引集,,的數(shù)據(jù)。當(dāng)初始查詢進(jìn)入搜索引擎時,對搜索引擎提供滿 足搜索查詢所需的"索引集"名稱和文件名。
搜索引擎106可向NAS服務(wù)器110進(jìn)行NFS調(diào)用,并請求那些文件的 數(shù)據(jù)。這個數(shù)據(jù)通常是靜態(tài)的,并且被高速緩存在NFS客戶機(jī)系統(tǒng)中。隨后, 當(dāng)搜索引擎訪問它的已分配"索引集"的數(shù)據(jù)時,它可為文件信息向NFS服 務(wù)器進(jìn)行元目錄調(diào)用。搜索引擎1-6從本地RAM高速緩存中讀取數(shù)據(jù)頁面, 這允許查詢條件的RAM速度搜索。
圖2提供結(jié)合本發(fā)明的一個或多個理論的示范分布式搜索系統(tǒng)200的更 詳細(xì)說明。系統(tǒng)200包括以上參照圖1所述的組件,另外還包括產(chǎn)品/客戶機(jī) 202、資源管理器206和聯(lián)機(jī)傳送平臺代理208。
產(chǎn)品/客戶機(jī)202可以是任何客戶機(jī)軟件模塊,它采用根據(jù)本發(fā)明的實(shí)施 例的理論所提供的分布式搜索功能性。這類軟件包括瀏覽器、文檔管理系統(tǒng)、 知識管理系統(tǒng)、文檔檢索系統(tǒng)、判例法檢索系統(tǒng)等。產(chǎn)品/客戶機(jī)202向消息
交換機(jī)104發(fā)出一個或多個搜索請求,消息交換機(jī)104根據(jù)搜索請求中的數(shù) 據(jù)把請求路由到服務(wù)控制器。
聯(lián)機(jī)傳送平臺(ODP)代理進(jìn)程208在服務(wù)器、如搜索控制器102和搜索 引擎106中啟動進(jìn)程,并監(jiān)測和管理這些進(jìn)程。在一些實(shí)施例中,ODP代理 進(jìn)程208還跟蹤各個進(jìn)程,并向公告板數(shù)據(jù)庫才良告其處理狀態(tài)。此外,在一 些實(shí)施例中,ODP代理進(jìn)程208當(dāng)存在故障或者"長事務(wù)處理"條件時重新 啟動搜索控制器或搜索引擎。ODP代理208 4支看作是運(yùn)行ODP環(huán)境的宿主 代理進(jìn)程。
當(dāng)系統(tǒng)啟動時,服務(wù)器上的ODP代理208啟動和查詢把ODP代理208 分配給代理管理器(未示出)的引擎的(預(yù)先配置的)資源管理器206。代理管理 器包含有關(guān)域中的代理和搜索引擎的信息,并且可對查詢它的ODP代理208 動態(tài)分配工作負(fù)荷。在一些實(shí)施例中,代理管理器包括LDAP(輕型目錄訪問 協(xié)議)代理。在一些實(shí)施例中,對搜索引擎分配具有與搜索引擎106關(guān)聯(lián)的"索 引集"的名稱對應(yīng)的名稱的消息隊(duì)列。
在一些實(shí)施例中,如果搜索引擎106出故障,則其代理將檢測出故障引 擎并使它重新啟動。在搜索引擎出故障時所處理的查詢可能丟失,以及控制 器請求"出錯"。(一些實(shí)施例可能把出故障查詢的副本傳遞到對主題索引集 操作的另一個搜索引擎。)但是,出故障搜索引擎106可重新啟動,使得新的 查詢可無延遲地纟皮處理。
在一些實(shí)施例中,如果搜索引擎系統(tǒng)遇到CPU、 RAM或其它硬件故障, 則消息交換機(jī)代理檢測"索引集"隊(duì)列沒有為它提供服務(wù)的進(jìn)程。代理立即 警告代理管理器重新分配搜索引擎,以便為那個"索引集"隊(duì)列提供服務(wù)。
各種實(shí)施例的示范系統(tǒng)設(shè)計(jì)結(jié)合部署普通系統(tǒng)以及在引導(dǎo)過程期間"學(xué) 習(xí)"它在分布式搜索體系結(jié)構(gòu)中的角色的固定OS影像。系統(tǒng)的彈性包容進(jìn) 程或硬件故障,以及它的靈活性允許對出故障組件的附加資源的分配。
此外,在一些實(shí)施例中,為故障轉(zhuǎn)移分配的附加資源不是"空閑"(等待 故障轉(zhuǎn)移)。如果檢測到處理瓶頸,它們可作為"工作負(fù)荷處理機(jī)"來部署, 從而提供附加處理。這種工作負(fù)荷可通過消息交換機(jī)104或ODP代理208 來4企測,它可對每個"索引集"隊(duì)列的工作負(fù)荷沖莫式進(jìn)行4企測和才良告。
另外,各種實(shí)施例的示范體系結(jié)構(gòu)有助于"懶監(jiān)測"方案。組件故障不
需要立即被檢測及修復(fù)。當(dāng)災(zāi)難性事件發(fā)生時,可出現(xiàn)檢測和通知,但修復(fù) 組件可在任何時間發(fā)生,只要存在可用于承擔(dān)其工作負(fù)荷的附加資源。 示范操作方法
圖3說明操作信息管理系統(tǒng)、如系統(tǒng)100的一個或多個示范方法的流程 圖300。流程圖300包括框310-340,它們在示范實(shí)施例中以順次執(zhí)行序列來 排列及描述。但是,其它實(shí)施例可采用多個處理器或類似處理器的裝置或者 組織成兩個或兩個以上虛擬機(jī)或子處理器的單一處理器來并行執(zhí)行兩個或兩 個以上框。其它實(shí)施例還改變過程序列或者提供不同的功能劃分來得到類似 結(jié)果。此外,又一些實(shí)施例把這些框?qū)崿F(xiàn)為兩個或兩個以上互連的硬件模塊, 其中的相關(guān)控制和數(shù)據(jù)信號在模塊之間或者通過模塊傳遞。因此,示范過程 流適用于軟件、硬件和固件實(shí)現(xiàn)。
在框310,示范方法以提供一個或多個數(shù)據(jù)集開始。在一些實(shí)施例中, 數(shù)據(jù)集包括對數(shù)據(jù)收集或數(shù)據(jù)收集集合的索引的一些部分。索引可根據(jù)數(shù)據(jù) 庫索引的范圍來劃分,其中每個范圍包含一個數(shù)據(jù)集。然后,數(shù)據(jù)集存儲在 存儲裝置、如NAS 110中。
框320需要接收搜索請求。在框330,搜索請求經(jīng)過分析以確定要求哪 些數(shù)據(jù)集。
在框340,搜索請求則^皮轉(zhuǎn)發(fā)到與框330中識別的數(shù)據(jù)集對應(yīng)的搜索引 擎。在本發(fā)明的一些實(shí)施例中,搜索請求通過消息隊(duì)列轉(zhuǎn)發(fā)給搜索引擎。此 外,在一些實(shí)施例中,向與特定搜索引擎關(guān)聯(lián)的消息隊(duì)列提供與配置用于搜 索引擎的"索引集"相同的名稱。
結(jié)論
上述實(shí)施例只是用于說明和講授實(shí)施和使用本發(fā)明的一種或多種方式, 而不是限制其廣度或范圍。包舍實(shí)施或?qū)崿F(xiàn)本發(fā)明的理論的全部方式的本發(fā) 明的實(shí)際范圍僅由一個或多個已發(fā)布專利權(quán)利要求及其等效物來定義。
權(quán)利要求
1. 一種包括多個數(shù)據(jù)集和多個搜索引擎的聯(lián)機(jī)搜索系統(tǒng),其中,每個數(shù)據(jù)集具有分配給所述數(shù)據(jù)集的所述多個搜索引擎中的至少一個。
2. 如權(quán)利要求l所述的系統(tǒng),其特征在于,還包括多個服務(wù)器,其中,各月良務(wù)器容納所述搜索引擎中的至少 一個。
3. 如權(quán)利要求2所述的系統(tǒng),其特征在于,各服務(wù)器包括一個或多個處 理器以及關(guān)聯(lián)的Linux操作系統(tǒng)。
4. 如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括可用于向所述多個搜 索引擎分配搜索請求的多個搜索控制器。
5. 如權(quán)利要求4所述的系統(tǒng),其特征在于,還包括可用于在所述多個搜 索控制器與所述多個搜索引擎之間路由搜索請求的消息服務(wù)器。
6. 如權(quán)利要求5所述的系統(tǒng),其特征在于,所述消息服務(wù)包括JAVA消 息服務(wù)。
7. 如權(quán)利要求5所述的系統(tǒng),其特征在于,搜索請求^L路由到消息隊(duì)列。
8. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述消息隊(duì)列由IBM/MQ消 息隊(duì)列軟件的 一種版本來提供。
9. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述數(shù)據(jù)集中的每一個包含 對數(shù)據(jù)收集的索引的一部分。
10. —種用于執(zhí)行搜索的方法,包括 提供多個數(shù)據(jù)集; 接收搜索請求;響應(yīng)所述搜索請求而識別要搜索的所述多個數(shù)據(jù)集中的至少一個數(shù)據(jù) 集;以及把所述搜索請求發(fā)送給多個搜索引擎中的至少一個搜索引擎,所述搜索 引擎具有與所述至少一個數(shù)據(jù)集的關(guān)聯(lián)。
11. 如權(quán)利要求10所述的方法,其特征在于,所述數(shù)據(jù)集包^^對數(shù)據(jù)收 集的索引的一部分。
12. 如權(quán)利要求IO所述的方法,其特征在于,發(fā)送所述搜索請求包括把 所述搜索請求放入消息隊(duì)列。
13. 如權(quán)利要求12所述的方法,其特征在于,與所述消息隊(duì)列關(guān)聯(lián)的標(biāo) 識符和與所述數(shù)據(jù)集關(guān)聯(lián)的標(biāo)識符相同。
14. 如權(quán)利要求IO所述的方法,其特征在于,還包括分割所述搜索請求 以便發(fā)送給多個所述搜索引擎。
15. —種機(jī)器可讀媒體,其中具有用于運(yùn)行執(zhí)行搜索的方法的指令,所 述方法包括提供多個數(shù)據(jù)集; 接收搜索請求;響應(yīng)所述搜索請求而識別要搜索的所迷多個數(shù)據(jù)集中的至少一個數(shù)據(jù) 集;以及把所述搜索請求發(fā)送給多個搜索引擎中的至少一個搜索引擎,所述搜索 引擎具有與所述至少一個數(shù)據(jù)集的關(guān)聯(lián)。
16. 如權(quán)利要求15所述的機(jī)器可讀纟某體,其特征在于,所迷數(shù)據(jù)集包含 對數(shù)據(jù)收集的索引的一部分。
17. 如權(quán)利要求15所述的機(jī)器可讀纟某體,其特征在于,發(fā)送所述搜索請 求包括把所述搜索請求放入消息隊(duì)列。
18. 如權(quán)利要求17所述的機(jī)器可讀媒體,其特征在于,與所述消息隊(duì)列 關(guān)聯(lián)的標(biāo)識符和與所述數(shù)據(jù)集關(guān)聯(lián)的標(biāo)識符相同。
19. 如權(quán)利要求15所述的機(jī)器可讀媒體,其特征在于,還包括分割所述 搜索請求以便發(fā)送給多個所述搜索引擎。
20. —種用于執(zhí)行搜索的系統(tǒng),所述系統(tǒng)包括 用于提供多個數(shù)據(jù)集的部件; 用于接收搜索請求的部件;用于響應(yīng)所述搜索請求而識別要搜索的所述多個數(shù)據(jù)集中的至少一個 數(shù)據(jù)集的部件;以及用于把所述搜索請求發(fā)送給多個搜索引擎中的至少一個搜索引擎的部 件,所述搜索引擎具有與所述至少一個數(shù)據(jù)集的關(guān)聯(lián)。
21. 如權(quán)利要求20所述的系統(tǒng),其特征在于,所述數(shù)據(jù)集包含對數(shù)據(jù)收 集的索引的一部分。
22. 如權(quán)利要求20所述的系統(tǒng),其特征在于,用于發(fā)送所述搜索請求的部件包括把所述搜索請求放入消息隊(duì)列。
23. 如權(quán)利要求22所述的系統(tǒng),其特征在于,與所述消息隊(duì)列關(guān)聯(lián)的標(biāo) 識符和與所述數(shù)據(jù)集關(guān)聯(lián)的標(biāo)識符相同。
24. 如權(quán)利要求20所述的系統(tǒng),其特征在于,還包括用于分割所述搜索 請求以便發(fā)送給多個所述搜索引擎的部件。
全文摘要
描述了用于為律師事務(wù)所及其它企業(yè)中使用的聯(lián)機(jī)傳送平臺提供分布式搜索功能的系統(tǒng)、方法及軟件。例如,系統(tǒng)、方法及軟件的一個方面提供多個數(shù)據(jù)集。數(shù)據(jù)集可包含對其它數(shù)據(jù)集的索引。至少一個搜索引擎與各數(shù)據(jù)集關(guān)聯(lián)。接收搜索請求的系統(tǒng)根據(jù)搜索請求中涉及的數(shù)據(jù)集來確定哪些搜索引擎被用來處理搜索請求。然后,搜索請求被轉(zhuǎn)發(fā)給所識別的搜索引擎。
文檔編號G06F17/30GK101388031SQ200810149850
公開日2009年3月18日 申請日期2004年4月26日 優(yōu)先權(quán)日2003年4月25日
發(fā)明者M·布盧姆 申請人:湯姆森環(huán)球資源公司