本發(fā)明總體上涉及內(nèi)存數(shù)據(jù)庫(kù),更具體地涉及內(nèi)存數(shù)據(jù)庫(kù)內(nèi)的分面搜索(facetedsearching)和搜索建議。本發(fā)明總體上涉及數(shù)據(jù)庫(kù),更具體地涉及內(nèi)存數(shù)據(jù)庫(kù)。本發(fā)明總體上涉及內(nèi)存數(shù)據(jù)庫(kù),更具體地涉及內(nèi)存數(shù)據(jù)庫(kù)中所使用的硬件配置。本發(fā)明總體上涉及數(shù)據(jù)庫(kù)架構(gòu),更具體地涉及容錯(cuò)系統(tǒng)架構(gòu)。本發(fā)明總體上涉及數(shù)據(jù)庫(kù),更具體地涉及一種可以用于內(nèi)存數(shù)據(jù)庫(kù)的依賴管理器(dependencymanager)。本發(fā)明總體上涉及內(nèi)存數(shù)據(jù)庫(kù),更具體地涉及可插拔內(nèi)存分析模塊。本發(fā)明總體上涉及內(nèi)存數(shù)據(jù)庫(kù),更具體地涉及內(nèi)存數(shù)據(jù)庫(kù)內(nèi)的非排他性搜索。本發(fā)明總體上涉及數(shù)據(jù)壓縮和數(shù)據(jù)庫(kù),更具體地涉及用于內(nèi)存數(shù)據(jù)庫(kù)以及文檔數(shù)據(jù)庫(kù)的壓縮方法。
背景技術(shù):
:分面搜索為用戶提供了增量搜索和瀏覽體驗(yàn),使得用戶從關(guān)鍵字搜索開(kāi)始并且以有組織且簡(jiǎn)單的方式查閱搜索結(jié)果。分面搜索在許多場(chǎng)合用于提供搜索結(jié)果的映射,該映像可以提供對(duì)這些搜索結(jié)果的組織和內(nèi)容的有用的見(jiàn)解。分面導(dǎo)航還使得用戶能夠以相當(dāng)簡(jiǎn)單的方式系統(tǒng)地縮小搜索結(jié)果。由于其具有許多優(yōu)勢(shì),分面搜索和導(dǎo)航在各種各樣的環(huán)境和平臺(tái)上被快速地部署。然而,分面引擎工作的方式非常緩慢并且非常占內(nèi)存,這阻礙了這些類(lèi)型的搜索引擎更好地運(yùn)行和擴(kuò)展。因此,仍然需要準(zhǔn)確、快速且可擴(kuò)展的分面搜索引擎。計(jì)算機(jī)是具有存儲(chǔ)大量信息并且提供對(duì)這些信息的訪問(wèn)的用途的強(qiáng)有力工具,而數(shù)據(jù)庫(kù)是用于將信息存儲(chǔ)在計(jì)算機(jī)系統(tǒng)中并且為用戶提供簡(jiǎn)易的訪問(wèn)的常見(jiàn)機(jī)制。通常,數(shù)據(jù)庫(kù)是信息的有組織集合,該信息被存儲(chǔ)為具有“字段”信息的“記錄”(例如,餐館數(shù)據(jù)庫(kù)可以具有某個(gè)區(qū)域內(nèi)的每個(gè)餐館的記錄,其中,每個(gè)記錄包括用于描述餐館的特性的字段,諸如,名稱(chēng)、地址、烹飪風(fēng)格等)。數(shù)據(jù)庫(kù)管理系統(tǒng)在操作過(guò)程中需要頻繁地從存儲(chǔ)設(shè)備(諸如,磁盤(pán))檢索數(shù)據(jù)或者將數(shù)據(jù)保存至存儲(chǔ)設(shè)備(諸如,磁盤(pán))。不利地是,對(duì)這樣的存儲(chǔ)設(shè)備的訪問(wèn)可能會(huì)有些緩慢。為了加快對(duì)數(shù)據(jù)的訪問(wèn),數(shù)據(jù)庫(kù)通常采用“緩存”或“高速緩存”,“緩存”或“高速緩存”為被分配以存儲(chǔ)最近所使用的數(shù)據(jù)對(duì)象的一部分相對(duì)快速存儲(chǔ)器(例如,隨機(jī)訪問(wèn)存儲(chǔ)器(RAM))。存儲(chǔ)器通常設(shè)置在半導(dǎo)體或其他電子存儲(chǔ)介質(zhì)上并且經(jīng)由快速數(shù)據(jù)總線耦接至CPU(中央處理器),該快速數(shù)據(jù)總線使得存儲(chǔ)器內(nèi)所保存的數(shù)據(jù)相對(duì)于磁盤(pán)上所存儲(chǔ)的數(shù)據(jù)而言能夠被更快速地訪問(wèn)。當(dāng)試圖解決這個(gè)問(wèn)題時(shí),可以采取的一種方法為將數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)都存儲(chǔ)在存儲(chǔ)器中,然而,由于計(jì)算機(jī)上所提供的存儲(chǔ)器的大小是有限的,因此在試圖處理大規(guī)模數(shù)據(jù)庫(kù)時(shí),必然要面臨大量的障礙。因此,仍然需要對(duì)數(shù)據(jù)進(jìn)行高速大規(guī)模地存儲(chǔ)和檢索的改進(jìn)的方法。計(jì)算機(jī)是具有存儲(chǔ)大量信息并且提供對(duì)這些信息的訪問(wèn)的用途的強(qiáng)有力工具,而數(shù)據(jù)庫(kù)是用于將信息存儲(chǔ)在計(jì)算機(jī)系統(tǒng)中并且為用戶提供簡(jiǎn)易的訪問(wèn)的常見(jiàn)機(jī)制。通常,數(shù)據(jù)庫(kù)是信息的有組織集合,該信息被存儲(chǔ)為具有“字段”信息的“記錄”。(例如,餐館數(shù)據(jù)庫(kù)可以具有某個(gè)區(qū)域內(nèi)的每個(gè)餐館的記錄,并且每個(gè)記錄包括用于描述餐館的特性的字段,諸如,名稱(chēng)、地址、烹飪風(fēng)格等。)數(shù)據(jù)庫(kù)管理系統(tǒng)在操作過(guò)程中需要頻繁地從存儲(chǔ)設(shè)備(諸如,磁盤(pán))檢索數(shù)據(jù)或者將數(shù)據(jù)保存至存儲(chǔ)設(shè)備(諸如,磁盤(pán))。為了加快對(duì)數(shù)據(jù)的訪問(wèn),數(shù)據(jù)庫(kù)通常采用“緩存”或“高速緩存”,“緩存”或“高速緩存”為被分配以存儲(chǔ)最近所使用的數(shù)據(jù)對(duì)象的一部分相對(duì)快速存儲(chǔ)器(例如,隨機(jī)訪問(wèn)存儲(chǔ)器(RAM))。存儲(chǔ)器通常設(shè)置在半導(dǎo)體或其他電子存儲(chǔ)介質(zhì)上并且經(jīng)由快速數(shù)據(jù)總線耦接至CPU(中央處理器),該快速數(shù)據(jù)總線使得存儲(chǔ)器內(nèi)所保存的數(shù)據(jù)相對(duì)于磁盤(pán)上所存儲(chǔ)的數(shù)據(jù)而言能夠被更快速地訪問(wèn)。當(dāng)試圖解決這個(gè)問(wèn)題時(shí),可以采取的一種方法為將數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)都存儲(chǔ)在存儲(chǔ)器中,然而,由于計(jì)算機(jī)上所提供的存儲(chǔ)器的大小是有限的,因此在試圖處理大規(guī)模數(shù)據(jù)庫(kù)時(shí),必然要面臨大量的障礙。這些障礙的某些可以包括:確定操作數(shù)據(jù)庫(kù)所需要的技術(shù),包括所需要的網(wǎng)絡(luò)、不同節(jié)點(diǎn)所需要的硬件等。因此,仍然需要對(duì)數(shù)據(jù)進(jìn)行高速大規(guī)模地存儲(chǔ)和檢索的改進(jìn)的方法。計(jì)算機(jī)是具有存儲(chǔ)并提供對(duì)大規(guī)模信息的訪問(wèn)的用途的強(qiáng)有力工具。數(shù)據(jù)庫(kù)是用于存儲(chǔ)計(jì)算機(jī)系統(tǒng)上的信息同時(shí)為用戶提供輕松訪問(wèn)的常見(jiàn)機(jī)制。通常,數(shù)據(jù)庫(kù)是信息的有組織集合,該信息被存儲(chǔ)為具有“字段”信息的“記錄”。(例如,餐館數(shù)據(jù)庫(kù)可以具有某個(gè)區(qū)域內(nèi)的每個(gè)餐館的記錄,并且每個(gè)記錄包括用于描述餐館的特性的字段,諸如,名稱(chēng)、地址、烹飪風(fēng)格等。)通常,數(shù)據(jù)庫(kù)可以利用計(jì)算機(jī)群集以便能夠存儲(chǔ)并訪問(wèn)大量數(shù)據(jù)。這可能需要對(duì)計(jì)算機(jī)群集的狀態(tài)進(jìn)行管理。當(dāng)試圖解決該問(wèn)題時(shí),可以采取的一種方法是雇傭一個(gè)專(zhuān)業(yè)團(tuán)隊(duì),該專(zhuān)業(yè)團(tuán)隊(duì)能夠訪問(wèn)現(xiàn)場(chǎng)或遠(yuǎn)程維護(hù)系統(tǒng)所需要的工具。然而,當(dāng)試圖在大規(guī)模數(shù)據(jù)庫(kù)的情況下使用該方法時(shí),還存在必須面對(duì)的大量障礙。因此,仍然需要在大規(guī)模數(shù)據(jù)庫(kù)下具有良好的容錯(cuò)性和高可用性的改進(jìn)的方法。包管理系統(tǒng)(packagemanagementsystem)可以被設(shè)計(jì)成通過(guò)遠(yuǎn)程管理和軟件分布(softwaredistribution)技術(shù)來(lái)節(jié)省組織時(shí)間和金錢(qián),所述技術(shù)可以消除對(duì)系統(tǒng)或進(jìn)程的任意合適的部件(諸如,軟件,操作系統(tǒng)部件、應(yīng)用程序、支持庫(kù)、應(yīng)用程序數(shù)據(jù)、通用文檔以及其他數(shù)據(jù))進(jìn)行手動(dòng)安裝和更新?,F(xiàn)有技術(shù)中涉及包管理系統(tǒng)的一種傳統(tǒng)方法可以是紅帽包管理器(RPM)。包管理器可以具有一種統(tǒng)一的方式來(lái)安裝和/或更新軟件程序和相關(guān)聯(lián)的部件。為了安裝一組軟件或數(shù)據(jù)包(softwareordatapackages),包管理器可以以拓?fù)漤樞驅(qū)捌湟蕾嚢趫D形上進(jìn)行排序。因此,包管理器可以采集圖形底部的包并且首先安裝這些包。最后,包管理器可以將該圖形向上移動(dòng)并且安裝下一組包。然而,現(xiàn)有技術(shù)中涉及數(shù)據(jù)庫(kù)管理系統(tǒng)的傳統(tǒng)方法是指:一些包管理器可能僅保持系統(tǒng)中的軟件配置,而可能不能支持元數(shù)據(jù)或原始數(shù)據(jù)收集依賴。在數(shù)據(jù)庫(kù)中,特別是在內(nèi)存數(shù)據(jù)庫(kù)或其他分布式存儲(chǔ)架構(gòu)中,集中于數(shù)據(jù)的部署與集中于軟件的部署一樣多,并且因此對(duì)數(shù)據(jù)部署所需要的依賴樹(shù)(dependencytree)進(jìn)行維護(hù)是必不可少的。傳統(tǒng)技術(shù)可以在整個(gè)傳統(tǒng)分布式計(jì)算架構(gòu)中的一個(gè)或更多個(gè)計(jì)算機(jī)群集上對(duì)軟件部件和依賴關(guān)系進(jìn)行自動(dòng)部署、安裝以及配置。所需要的解決方案是在分布式計(jì)算架構(gòu)(諸如,內(nèi)存數(shù)據(jù)庫(kù)或其他分布式數(shù)據(jù)平臺(tái))中使分布式數(shù)據(jù)庫(kù)中的原始數(shù)據(jù)存儲(chǔ)庫(kù)(primarydatastore)中的數(shù)據(jù)、元數(shù)據(jù)以及軟件的部署、安裝以及配置自動(dòng)化。此外,由于傳統(tǒng)技術(shù)方案集中在對(duì)一組靜態(tài)的服務(wù)和數(shù)據(jù)進(jìn)行部署,因此傳統(tǒng)系統(tǒng)不具有如下能力:檢測(cè)服務(wù)或數(shù)據(jù)故障,然后通過(guò)將數(shù)據(jù)、元數(shù)據(jù)以及軟件的包移動(dòng)至分布式系統(tǒng)中的其他可用節(jié)點(diǎn)來(lái)自動(dòng)地從這些故障中恢復(fù)。出于上述理由,需要一種改進(jìn)的包管理應(yīng)用程序以保證/保持系統(tǒng)配置的成功執(zhí)行以及對(duì)數(shù)據(jù)管理系統(tǒng)的依賴性。傳統(tǒng)數(shù)據(jù)庫(kù)使得用戶能夠找到與實(shí)體相關(guān)的多條信息,然而,在不存在正式外鍵關(guān)系的情況下,用于描述該實(shí)體的數(shù)百萬(wàn)或數(shù)十億的記錄通常沒(méi)有被鏈接在一起。存在具有非正式、不可靠或不存在外鍵關(guān)系的記錄的大的集合。因此,將與單個(gè)實(shí)體相關(guān)的所有記錄匯集到一起是極具挑戰(zhàn)性的。傳統(tǒng)的方法是將這樣的集合中的所有數(shù)據(jù)預(yù)鏈接,使得找到一個(gè)記錄將直接通向記錄的集合。這種傳統(tǒng)方法具有兩個(gè)明顯的問(wèn)題。首先,將大的記錄集合預(yù)鏈接是一個(gè)相當(dāng)耗時(shí)的密集型過(guò)程(intensiveprocess)。這使可用來(lái)將新記錄集成到所鏈接的集合中所耗費(fèi)的時(shí)間產(chǎn)生了明顯的滯后,從而不利地影響了集合中的數(shù)據(jù)的及時(shí)性。其次,按照定義對(duì)數(shù)據(jù)進(jìn)行預(yù)鏈接受到被用于執(zhí)行預(yù)鏈接的模型的限制,從而大大降低了該系統(tǒng)的用戶改變記錄被連接的強(qiáng)弱程度的參數(shù)的能力。預(yù)鏈接還受到在預(yù)鏈接步驟時(shí)可用數(shù)據(jù)的限制。另一種方法是避免對(duì)數(shù)據(jù)進(jìn)行任何預(yù)鏈接,而是,響應(yīng)于用戶查詢,進(jìn)行實(shí)時(shí)鏈接,或者“即時(shí)鏈接”。該方法使得新記錄能夠立即加入到集合中,從而避免了任何及時(shí)性問(wèn)題。這種方法還使得各種模型能夠被應(yīng)用以在鏈接過(guò)程中使用不同的算法和參數(shù)來(lái)執(zhí)行鏈接。這種方法的傳統(tǒng)缺點(diǎn)是不能執(zhí)行數(shù)據(jù)密集型查詢和不能達(dá)到可接受的交互響應(yīng)時(shí)間。這可以通過(guò)使內(nèi)存數(shù)據(jù)庫(kù)中的集合具備嵌入式分析來(lái)克服。因此,本領(lǐng)域需要一種靈活的數(shù)據(jù)庫(kù)架構(gòu),該數(shù)據(jù)庫(kù)架構(gòu)能夠支持多種定制分析模塊,被設(shè)計(jì)成實(shí)時(shí)處理數(shù)據(jù),而無(wú)需對(duì)數(shù)據(jù)在系統(tǒng)中管理、準(zhǔn)備以及存儲(chǔ)的方式進(jìn)行改變。相對(duì)于非結(jié)構(gòu)化數(shù)據(jù)而言,對(duì)結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)進(jìn)行數(shù)據(jù)訪問(wèn)會(huì)更簡(jiǎn)單、更準(zhǔn)確以及更快速。當(dāng)使用結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)通過(guò)指示關(guān)鍵數(shù)據(jù)字段來(lái)執(zhí)行搜索時(shí),能夠在非常短的時(shí)間內(nèi)獲得非常準(zhǔn)確的結(jié)果,但也有可能將與查詢相關(guān)的許多記錄從結(jié)果列表中排除。之所以會(huì)出現(xiàn)這種情況,是因?yàn)檫@些記錄可以被存儲(chǔ)在具有不同模式(schemata)的集合中,或者因?yàn)檫@些記錄可能具有與查詢中所指定的字段中的某些相對(duì)應(yīng)的一些丟失的字段或者空字段。因此,需要具有改進(jìn)的查全率能力的搜索方法,從而使得能夠混合和匹配具有不同模式的記錄。計(jì)算機(jī)是具有存儲(chǔ)大量信息并且提供對(duì)這些信息的訪問(wèn)的用途的強(qiáng)有力工具,而數(shù)據(jù)庫(kù)是用于將信息存儲(chǔ)在計(jì)算機(jī)系統(tǒng)中并且為用戶提供簡(jiǎn)易的訪問(wèn)的常見(jiàn)機(jī)制。通常,數(shù)據(jù)庫(kù)是信息的有組織集合,該信息被存儲(chǔ)為具有“字段”信息的“記錄”(例如,餐館數(shù)據(jù)庫(kù)可以具有某個(gè)區(qū)域內(nèi)的每個(gè)餐館的記錄,并且每個(gè)記錄包括用于描述餐館的特性的字段,諸如,名稱(chēng)、地址、烹飪風(fēng)格等)。通常,數(shù)據(jù)庫(kù)可以利用計(jì)算機(jī)群集以便能夠存儲(chǔ)并訪問(wèn)大量數(shù)據(jù)。這可能需要大量的信息存儲(chǔ)空間。通常,可以使用壓縮技術(shù)來(lái)降低寄存所述信息所必要的存儲(chǔ)空間的量,但是這有可能會(huì)顯著增加計(jì)算負(fù)載。因?yàn)樵S多常見(jiàn)的壓縮方法需要在每次對(duì)整個(gè)記錄或許多記錄進(jìn)行訪問(wèn)時(shí)對(duì)該整個(gè)記錄或許多記錄進(jìn)行解壓縮。因此,仍然需要對(duì)數(shù)據(jù)進(jìn)行高速大規(guī)模存儲(chǔ)和檢索的改進(jìn)的方法。技術(shù)實(shí)現(xiàn)要素:本文公開(kāi)了一種寄存內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng)架構(gòu),該系統(tǒng)架構(gòu)可以包括計(jì)算設(shè)備和軟件模塊的任意合適的組合以用于對(duì)系統(tǒng)的分布式計(jì)算架構(gòu)內(nèi)寄存的內(nèi)存數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄進(jìn)行存儲(chǔ)、操縱以及檢索。系統(tǒng)的計(jì)算硬件所執(zhí)行的軟件模塊可以包括系統(tǒng)界面、搜索管理器、分析代理、搜索引導(dǎo)器、分區(qū)器、數(shù)據(jù)的集合、監(jiān)管器、依賴管理器;這些軟件模塊的任意合適的組合可以在寄存內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng)架構(gòu)中找到。執(zhí)行軟件模塊的節(jié)點(diǎn)可以壓縮記錄中所存儲(chǔ)的數(shù)據(jù)以使得能夠?qū)Υ笠?guī)模數(shù)據(jù)集進(jìn)行內(nèi)存存儲(chǔ)、查詢和檢索??梢栽跀?shù)據(jù)庫(kù)的幾乎任意級(jí)別(例如,數(shù)據(jù)庫(kù)級(jí)別、集合級(jí)別、記錄級(jí)別、字段級(jí)別)上進(jìn)行壓縮和解壓縮。執(zhí)行軟件模塊的節(jié)點(diǎn)可以支持存儲(chǔ)分布式內(nèi)存數(shù)據(jù)庫(kù)中的復(fù)雜數(shù)據(jù)結(jié)構(gòu),諸如,JavaScript對(duì)象標(biāo)記(JSON)。由于系統(tǒng)部件的分布式架構(gòu)以及能夠監(jiān)視和恢復(fù)故障服務(wù)的各種系統(tǒng)硬件和軟件模塊,內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)施例可以是容錯(cuò)的。容錯(cuò)可以包括系統(tǒng)部件冗余和系統(tǒng)部件的自動(dòng)恢復(fù)過(guò)程等技術(shù)。內(nèi)存數(shù)據(jù)可以使用評(píng)分方法通過(guò)對(duì)數(shù)據(jù)評(píng)分來(lái)有效且高效地查詢數(shù)據(jù)。根據(jù)用于對(duì)數(shù)據(jù)評(píng)分的評(píng)分方法可以對(duì)搜索結(jié)果進(jìn)行排名,從而使得執(zhí)行查詢的用戶和/或節(jié)點(diǎn)能夠以更為定制并且從一個(gè)查詢到下一個(gè)查詢上下文相關(guān)的方式利用數(shù)據(jù)。執(zhí)行分析代理的節(jié)點(diǎn)可以對(duì)數(shù)據(jù)的內(nèi)存數(shù)據(jù)庫(kù)映像中存儲(chǔ)的記錄執(zhí)行多個(gè)高級(jí)分析。在某些情況下,可以對(duì)通過(guò)搜索引導(dǎo)器從一組搜索查詢結(jié)果中檢索出的記錄執(zhí)行分析。在一個(gè)實(shí)施例中,一種寄存內(nèi)存數(shù)據(jù)庫(kù)的計(jì)算系統(tǒng),包括:包括處理器的分區(qū)器節(jié)點(diǎn),該處理器被配置成:響應(yīng)于接收到數(shù)據(jù)庫(kù)的一個(gè)或更多個(gè)記錄的集合,基于與所述集合相關(guān)聯(lián)的機(jī)器可讀模式文件來(lái)確定是否壓縮所述集合;根據(jù)所述模式文件在邏輯上將所述集合劃分成一個(gè)或更多個(gè)分區(qū);以及根據(jù)所述模式文件將所述一個(gè)或更多個(gè)分區(qū)分配至一個(gè)或更多個(gè)存儲(chǔ)節(jié)點(diǎn);存儲(chǔ)節(jié)點(diǎn),包括用于存儲(chǔ)從與所述存儲(chǔ)節(jié)點(diǎn)相關(guān)聯(lián)的分區(qū)器所接收的分區(qū)的非易失性機(jī)器可讀主存儲(chǔ)器;包括處理器的搜索管理器節(jié)點(diǎn),該處理器用于從系統(tǒng)的客戶端設(shè)備接收搜索查詢;并且響應(yīng)于從所述客戶端設(shè)備接收到所述搜索查詢,將所述搜索查詢作為搜索引導(dǎo)器查詢發(fā)送至一個(gè)或更多個(gè)搜索引導(dǎo)器,其中,所述搜索查詢是機(jī)器可讀計(jì)算機(jī)文件,所述機(jī)器可讀計(jì)算機(jī)文件包含與滿足所述搜索查詢的一個(gè)或更多個(gè)記錄相關(guān)聯(lián)的參數(shù);搜索引導(dǎo)器節(jié)點(diǎn),所述搜索引導(dǎo)器節(jié)點(diǎn)與一個(gè)或更多個(gè)分區(qū)器相關(guān)聯(lián)并且包括處理器,該處理器被配置成:響應(yīng)于從所述搜索管理器節(jié)點(diǎn)接收到搜索引導(dǎo)器查詢,查詢由所述搜索引導(dǎo)器查詢所指示的一組一個(gè)或更多個(gè)分區(qū);識(shí)別該組查詢到的分區(qū)中所存儲(chǔ)的一個(gè)或更多個(gè)候選記錄;使用評(píng)分算法針對(duì)每個(gè)相應(yīng)的候選記錄計(jì)算第一得分;以及將包含有滿足閾值的一個(gè)或更多個(gè)候選記錄的一組一個(gè)或更多個(gè)查詢結(jié)果發(fā)送至所述搜索管理器;以及包括處理器的分析代理節(jié)點(diǎn),該處理器被配置成:響應(yīng)于從接收自所述搜索管理器節(jié)點(diǎn)的該組查詢結(jié)果中識(shí)別出將兩個(gè)或更多個(gè)記錄關(guān)聯(lián)的數(shù)據(jù)鏈接,自動(dòng)地生成包含有針對(duì)該組查詢結(jié)果的一組一個(gè)或更多個(gè)數(shù)據(jù)鏈接,其中,該數(shù)據(jù)鏈接將第一記錄中包含的數(shù)據(jù)與第二記錄中包含的數(shù)據(jù)關(guān)聯(lián)。在另一實(shí)施例中,一種計(jì)算機(jī)執(zhí)行的方法包括:寄存內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng)的搜索管理器計(jì)算機(jī)接收表示搜索查詢的二進(jìn)制數(shù)據(jù),所述搜索查詢包含對(duì)所述數(shù)據(jù)庫(kù)進(jìn)行查詢的參數(shù),其中,所述系統(tǒng)包括一個(gè)或更多個(gè)存儲(chǔ)節(jié)點(diǎn),所述一個(gè)或更多個(gè)存儲(chǔ)節(jié)點(diǎn)包括用于存儲(chǔ)所述數(shù)據(jù)庫(kù)中的一個(gè)或更多個(gè)集合的主存儲(chǔ)器,其中,每個(gè)集合包括一個(gè)或更多個(gè)記錄;所述計(jì)算機(jī)根據(jù)所述搜索查詢將所述搜索查詢發(fā)送至一個(gè)或更多個(gè)搜索引導(dǎo)器節(jié)點(diǎn),其中,所述搜索查詢指示一組一個(gè)或更多個(gè)待查詢的集合;響應(yīng)于從所述一個(gè)或更多個(gè)搜索引導(dǎo)器接收到包含滿足所述搜索查詢的一個(gè)或更多個(gè)記錄的一組搜索結(jié)果,所述計(jì)算機(jī)基于所述搜索查詢將該組搜索結(jié)果發(fā)送至一個(gè)或更多個(gè)分析代理節(jié)點(diǎn),其中,該組搜索結(jié)果中的每個(gè)相應(yīng)的記錄與基于所述搜索查詢中的評(píng)分算法的得分相關(guān)聯(lián);以及響應(yīng)于所述計(jì)算機(jī)從所述一個(gè)或更多個(gè)分析代理節(jié)點(diǎn)接收到包含一組一個(gè)或更多個(gè)數(shù)據(jù)鏈接的計(jì)算機(jī)文件:計(jì)算機(jī)根據(jù)從所述分析代理節(jié)點(diǎn)所接收的該組一個(gè)或更多個(gè)數(shù)據(jù)鏈接對(duì)所述搜索結(jié)果中的所述一個(gè)或更多個(gè)記錄進(jìn)行更新。在另一實(shí)施例中,一種計(jì)算機(jī)執(zhí)行的方法包括:計(jì)算機(jī)根據(jù)計(jì)算機(jī)可讀模式文件從搜索引導(dǎo)器接收一個(gè)或更多個(gè)集合,其中,所述集合中的每一個(gè)包括具有一個(gè)或更多個(gè)字段的一組一個(gè)或更多個(gè)記錄;所述計(jì)算機(jī)根據(jù)所述模式對(duì)每個(gè)集合進(jìn)行分區(qū);所述計(jì)算機(jī)根據(jù)所述模式對(duì)分區(qū)中的記錄進(jìn)行壓縮;以及所述計(jì)算機(jī)將所述分區(qū)中的每一個(gè)分配至一個(gè)或更多個(gè)相關(guān)聯(lián)的搜索引導(dǎo)器以將所述分區(qū)中的每一個(gè)包括在與所述搜索引導(dǎo)器相關(guān)聯(lián)的分區(qū)器所對(duì)應(yīng)的每個(gè)集合中。公開(kāi)了用于在內(nèi)存數(shù)據(jù)庫(kù)內(nèi)進(jìn)行分面搜索的方法。在一些實(shí)施例中,所公開(kāi)的分面搜索方法和搜索引擎可以用于生成搜索建議。分面搜索引擎能夠使用字面或非字面的關(guān)鍵字構(gòu)建算法來(lái)進(jìn)行部分前綴模糊匹配。所公開(kāi)的搜索引擎能夠?qū)崟r(shí)處理大量的非結(jié)構(gòu)化數(shù)據(jù)以生成搜索建議??梢灾С炙_(kāi)的分面搜索引擎的內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng)架構(gòu)可以包括模塊和群集的任意合適的組合;包括下列項(xiàng)中的一個(gè)或更多個(gè):系統(tǒng)結(jié)構(gòu)、搜索管理器、分析代理、搜索引導(dǎo)器、分區(qū)器、集合、監(jiān)管器、依賴管理器或任意合適的組合。在一些實(shí)施例中,當(dāng)用戶開(kāi)始在合適的搜索窗口中打字時(shí),系統(tǒng)可以自動(dòng)地生成一個(gè)或更多個(gè)建議,所述建議是根據(jù)對(duì)用于在搜索框上打出的文字進(jìn)行的模糊匹配推導(dǎo)出的。系統(tǒng)可以針對(duì)一個(gè)或更多個(gè)記錄對(duì)查詢?cè)u(píng)分,其中,系統(tǒng)可以對(duì)記錄的一個(gè)或更多個(gè)字段的匹配進(jìn)行評(píng)分并且于是可以確定對(duì)于記錄對(duì)查詢的所有匹配的得分。系統(tǒng)可以確定該得分是否大于預(yù)定接受閾值,其中該閾值可以是在搜索查詢中定義的或者可以是默認(rèn)值。在處理過(guò)程中,可以對(duì)具有不同特異性級(jí)別的分面進(jìn)行如下處理:從文檔中提取出來(lái);消除歧義;規(guī)范化;按照話題進(jìn)行分組;以及索引并臨時(shí)地添加至知識(shí)庫(kù)中。在一些實(shí)施例中,所提取出來(lái)的分面可以用于映射搜索結(jié)果。在另一些實(shí)施例中,模糊匹配算法可以將臨時(shí)存儲(chǔ)于集合中的分面與系統(tǒng)和下拉窗口生成的一個(gè)或更多個(gè)查詢進(jìn)行比較,所述一個(gè)或更多個(gè)查詢可以包括最相關(guān)級(jí)別的一類(lèi)分面,可以作為用戶的搜索建議;用戶可以被運(yùn)行選擇不同級(jí)別的分面來(lái)縮小搜索查詢。在一個(gè)實(shí)施例中,計(jì)算機(jī)可實(shí)現(xiàn)方法包括:通過(guò)計(jì)算機(jī)從包括表示基于文本的信息的數(shù)據(jù)的語(yǔ)料庫(kù)中提取一個(gè)或更多個(gè)分面;使用計(jì)算機(jī)來(lái)對(duì)從語(yǔ)料庫(kù)提取的一個(gè)或更多個(gè)分面中的每個(gè)分面進(jìn)行消歧義;使用計(jì)算機(jī)生成與一個(gè)或更多個(gè)分面相對(duì)應(yīng)的一個(gè)或更多個(gè)索引;通過(guò)計(jì)算機(jī)從包括數(shù)據(jù)庫(kù)的一個(gè)或更多個(gè)記錄的分區(qū)的記錄中檢索出基于相關(guān)聯(lián)的索引的每個(gè)分面,其中,數(shù)據(jù)庫(kù)的集合包括一個(gè)或更多個(gè)分區(qū),以及其中,每個(gè)相應(yīng)的分面表示與數(shù)據(jù)的一個(gè)或更多個(gè)記錄有關(guān)的數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)的層次關(guān)系;以及計(jì)算機(jī)基于每個(gè)分面生成建議的搜索查詢。公文公開(kāi)了寄存內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng)中的節(jié)點(diǎn)的鏈接配置,這些節(jié)點(diǎn)具有多種連接帶寬和延遲層,其中,第一帶寬層可以相對(duì)于第二帶寬層具有更大的帶寬,第二帶寬層可以相對(duì)于第三帶寬層具有更大的帶寬,第三帶寬層可以相對(duì)于第四帶寬層具有更大的帶寬,以及第一帶寬層可以相對(duì)于第二帶寬層具有較低的延遲。本文公開(kāi)了一種具有多種網(wǎng)絡(luò)分段的分布式計(jì)算系統(tǒng),其中,每個(gè)網(wǎng)絡(luò)分段都具有應(yīng)用于內(nèi)存數(shù)據(jù)平臺(tái)的帶寬和延遲層。系統(tǒng)包括具有合適數(shù)量的網(wǎng)絡(luò)段的連接配置,其中,網(wǎng)絡(luò)段可以連接孩子系統(tǒng)內(nèi)部和外部的若干服務(wù)器,并且連接至系統(tǒng)中的服務(wù)器群集。系統(tǒng)的服務(wù)器可以包括軟件模塊,諸如,搜索管理器、分析代理、搜索引導(dǎo)器、依賴管理器、監(jiān)管器以及分區(qū)器等。服務(wù)器和模塊可以連接至所期望的網(wǎng)絡(luò)段以達(dá)到所期望的帶寬和延遲需求。服務(wù)器和模塊可以連接至所期望的網(wǎng)絡(luò)段以將不同類(lèi)型的網(wǎng)絡(luò)業(yè)務(wù)區(qū)分開(kāi),從而防止同種類(lèi)型的業(yè)務(wù)相互干擾。在一個(gè)實(shí)施例中,提供了包括寄存內(nèi)存數(shù)據(jù)庫(kù)的一個(gè)或更多個(gè)節(jié)點(diǎn)的系統(tǒng),該系統(tǒng)包括多個(gè)存儲(chǔ)節(jié)點(diǎn),所述多個(gè)存儲(chǔ)節(jié)點(diǎn)包括用于存儲(chǔ)集合的一個(gè)或更多個(gè)分區(qū)的非易失性機(jī)器可讀存儲(chǔ)解釋?zhuān)渲?,每個(gè)相應(yīng)的存儲(chǔ)節(jié)點(diǎn)所存儲(chǔ)的集合包括數(shù)據(jù)庫(kù)的一個(gè)或更多個(gè)記錄,并且其中,每個(gè)相應(yīng)的存儲(chǔ)節(jié)點(diǎn)的存儲(chǔ)介質(zhì)包括主存儲(chǔ)器;搜索管理器節(jié)點(diǎn)包括處理器,該處理器用于:使用從用戶節(jié)點(diǎn)接收的搜索查詢生成一個(gè)或更多個(gè)搜索引導(dǎo)器查詢,根據(jù)搜索查詢將所述一個(gè)或更多個(gè)搜索引導(dǎo)器查詢發(fā)送至一個(gè)或更多個(gè)搜索查詢引導(dǎo)器,以及響應(yīng)于接收到一組或更多個(gè)組搜索結(jié)果根據(jù)搜索查詢將所述一組或更多組搜索結(jié)果轉(zhuǎn)發(fā)至一個(gè)或更多個(gè)分析代理節(jié)點(diǎn);分析代理節(jié)點(diǎn)包括處理器,該處理器用于:響應(yīng)于從搜索管理器節(jié)點(diǎn)接收到一組搜索結(jié)果執(zhí)行一個(gè)或更多個(gè)分析算法;搜索引導(dǎo)器節(jié)點(diǎn)包括處理器,該處理器用于:響應(yīng)于從搜索管理器接收到搜索引導(dǎo)器查詢根據(jù)該搜索引導(dǎo)器查詢查詢存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)庫(kù)記錄的集合,并且響應(yīng)于對(duì)一組或更多組搜索結(jié)果的識(shí)別將一組或更多組搜索結(jié)果發(fā)送至搜索管理器節(jié)點(diǎn),其中,每個(gè)相應(yīng)的搜索結(jié)果與包括滿足搜索引導(dǎo)器查詢的數(shù)據(jù)的數(shù)據(jù)庫(kù)記錄相對(duì)應(yīng);多個(gè)網(wǎng)絡(luò)分段包括通過(guò)每個(gè)相應(yīng)的網(wǎng)絡(luò)分段進(jìn)行通信的一個(gè)或更多個(gè)節(jié)點(diǎn)之間的一個(gè)或更多個(gè)連接,其中,第一網(wǎng)絡(luò)分段包括搜索管理器、搜索引導(dǎo)器以及分析代理。本文公開(kāi)了一種適用于任意分布式計(jì)算系統(tǒng)的容錯(cuò)架構(gòu)。容錯(cuò)體系結(jié)構(gòu)可以包括任意合適數(shù)量的監(jiān)管器、依賴管理器、節(jié)點(diǎn)管理器以及分布在整個(gè)任意合適數(shù)量節(jié)點(diǎn)上的其他模塊,從而能夠維持所期望的系統(tǒng)功能、冗余性以及當(dāng)系統(tǒng)的子部件發(fā)生故障時(shí)的系統(tǒng)可靠性。本發(fā)明描述了一種適用于任意分布式計(jì)算系統(tǒng)的容錯(cuò)架構(gòu)。分布式計(jì)算系統(tǒng)的示例可以是內(nèi)存數(shù)據(jù)庫(kù),但是其他分布式計(jì)算系統(tǒng)可以實(shí)現(xiàn)本文所描述的特征。本文所公開(kāi)的系統(tǒng)和方法通過(guò)以下方式為分布式計(jì)算系統(tǒng)提供了容錯(cuò)特征:自動(dòng)地檢測(cè)出故障,并且通過(guò)將處理模塊以及與這些模塊中的每個(gè)模塊相關(guān)聯(lián)的依賴(軟件、數(shù)據(jù)、元數(shù)據(jù)等)移動(dòng)到分布式系統(tǒng)中的能夠寄存所述處理模塊和/或所述依賴的其他計(jì)算機(jī)節(jié)點(diǎn)中來(lái)從所檢測(cè)到的故障中恢復(fù)過(guò)來(lái)。在一個(gè)實(shí)施例中,一種計(jì)算機(jī)實(shí)現(xiàn)的方法包括:由包括有執(zhí)行監(jiān)管器模塊的處理器的計(jì)算機(jī)來(lái)監(jiān)視用于監(jiān)視節(jié)點(diǎn)上存儲(chǔ)的一個(gè)或更多個(gè)軟件模塊的節(jié)點(diǎn)管理器所生成的心跳信號(hào),其中,該心跳信號(hào)包括表示由節(jié)點(diǎn)管理器所監(jiān)視的每個(gè)相應(yīng)的軟件模塊的狀態(tài)的二進(jìn)制數(shù)據(jù);計(jì)算機(jī)基于從接收自節(jié)點(diǎn)的節(jié)點(diǎn)管理器的心跳信號(hào)對(duì)節(jié)點(diǎn)的一個(gè)或更多個(gè)軟件模塊中的失效軟件模塊進(jìn)行探測(cè);響應(yīng)于探測(cè)到失效的軟件模塊,計(jì)算機(jī)自動(dòng)地向節(jié)點(diǎn)的節(jié)點(diǎn)管理器發(fā)送用于指令節(jié)點(diǎn)修復(fù)該失效的軟件模塊的命令;以及計(jì)算機(jī)基于接收自節(jié)點(diǎn)管理器的心跳信號(hào)確定節(jié)點(diǎn)管理器是否成功地修復(fù)了模塊。在另一實(shí)施例中,一種計(jì)算機(jī)實(shí)現(xiàn)的方法包括:計(jì)算機(jī)持續(xù)地向監(jiān)管器節(jié)點(diǎn)發(fā)送心跳信號(hào);當(dāng)接收到修復(fù)命令時(shí),計(jì)算機(jī)對(duì)失效模塊進(jìn)行修復(fù);以及當(dāng)計(jì)算機(jī)探測(cè)到模塊已經(jīng)被修復(fù)時(shí),向監(jiān)管器節(jié)點(diǎn)發(fā)送已修復(fù)狀態(tài)信號(hào)。在另一實(shí)施例中,一種容錯(cuò)分布式計(jì)算系統(tǒng)包括:一個(gè)或更多個(gè)包括處理器的節(jié)點(diǎn),該處理器用于向監(jiān)管器節(jié)點(diǎn)發(fā)送心跳信號(hào)并且對(duì)安裝在節(jié)點(diǎn)上的一個(gè)或更多個(gè)軟件模塊的執(zhí)行進(jìn)行監(jiān)視;以及一個(gè)或更多個(gè)包括處理器的監(jiān)管器節(jié)點(diǎn),該處理器用于對(duì)接收自一個(gè)或更多個(gè)節(jié)點(diǎn)的一個(gè)或更多個(gè)心跳信號(hào)進(jìn)行監(jiān)視以及基于每個(gè)相應(yīng)的心跳信號(hào)確定每個(gè)相應(yīng)的節(jié)點(diǎn)的狀態(tài)。本文公開(kāi)了系統(tǒng)及方法,用于對(duì)針對(duì)任意合適的數(shù)據(jù)庫(kù)或搜索引擎進(jìn)行安裝、升級(jí)以及配置不同軟件、數(shù)據(jù)或元數(shù)據(jù)包(software,dataormetadatapackages)的過(guò)程期間的依賴進(jìn)行處理。這些系統(tǒng)及方法可以使得如下過(guò)程自動(dòng)化:對(duì)分布式計(jì)算系統(tǒng)(諸如,寄存內(nèi)存數(shù)據(jù)庫(kù)的分布式系統(tǒng)或其他類(lèi)型的分布式數(shù)據(jù)平臺(tái))的原始數(shù)據(jù)存儲(chǔ)庫(kù)中存儲(chǔ)的多種數(shù)據(jù)、元數(shù)據(jù)以及軟件進(jìn)行部署、安裝以及配置。示例性實(shí)施例可以描述這些系統(tǒng)及方法,其中,依賴管理器(配置管理)可以直接地鏈接至監(jiān)管器(系統(tǒng)管理),其中,監(jiān)管器可以以功能齊全的方式維護(hù)系統(tǒng),并且可以接收配置請(qǐng)求以對(duì)系統(tǒng)進(jìn)行變更。在一個(gè)實(shí)施例中,一種計(jì)算機(jī)實(shí)現(xiàn)的方法包括:具有分布式計(jì)算系統(tǒng)的計(jì)算機(jī)將對(duì)于與系統(tǒng)的目標(biāo)節(jié)點(diǎn)相關(guān)聯(lián)的機(jī)器可讀可部署包文件的請(qǐng)求發(fā)送至依賴管理器節(jié)點(diǎn),該依賴性管理器節(jié)點(diǎn)包括非易失性機(jī)器可讀存儲(chǔ)介質(zhì),該非易失性機(jī)器可讀存儲(chǔ)介質(zhì)用于根據(jù)依賴樹(shù)存儲(chǔ)與系統(tǒng)的一個(gè)或更多個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的一個(gè)或更多個(gè)可部署包文件;響應(yīng)于從依賴節(jié)點(diǎn)接收到可部署包文件,計(jì)算機(jī)將該可部署包文件發(fā)送至目標(biāo)節(jié)點(diǎn),其中,與目標(biāo)節(jié)點(diǎn)相關(guān)聯(lián)的可部署包文件包括基于依賴樹(shù)的一組一個(gè)或更多個(gè)依賴文件;以及計(jì)算機(jī)指令目標(biāo)節(jié)點(diǎn)將可部署包中的一組依賴安裝至目標(biāo)節(jié)點(diǎn)。在另一實(shí)施例中,一種計(jì)算機(jī)實(shí)現(xiàn)的方法包括:響應(yīng)于從監(jiān)管器節(jié)點(diǎn)接收到配置目標(biāo)節(jié)點(diǎn)的請(qǐng)求,計(jì)算機(jī)使用與目標(biāo)節(jié)點(diǎn)相關(guān)聯(lián)的依賴樹(shù)來(lái)確定待被安裝到目標(biāo)節(jié)點(diǎn)的一組一個(gè)或更多個(gè)依賴文件;計(jì)算機(jī)從包括用于存儲(chǔ)一個(gè)或更多個(gè)依賴文件的非易失性機(jī)器可讀存儲(chǔ)介質(zhì)的至少一個(gè)數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)中獲取一組一個(gè)或更多個(gè)依賴文件中的每個(gè)依賴文件;計(jì)算機(jī)生成包括一組一個(gè)或更多個(gè)依賴文件的可部署包文件;以及計(jì)算機(jī)將所述可部署包文件發(fā)送至監(jiān)管器節(jié)點(diǎn)。在另一實(shí)施例中,一種數(shù)據(jù)庫(kù)管理系統(tǒng)包括:一個(gè)或更多個(gè)節(jié)點(diǎn),所述一個(gè)或更多個(gè)節(jié)點(diǎn)包括用于存儲(chǔ)一個(gè)或更多個(gè)依賴文件的非易失性存機(jī)器可讀存儲(chǔ)器以及用于監(jiān)視一個(gè)或更多個(gè)依賴文件的狀態(tài)的處理器,其中,每個(gè)相應(yīng)的依賴文件是節(jié)點(diǎn)的部件,該部件與安裝在第二節(jié)點(diǎn)上的相應(yīng)的部件具有比較關(guān)系;一個(gè)或更多個(gè)監(jiān)管器節(jié)點(diǎn),所述一個(gè)或更多個(gè)監(jiān)管器節(jié)點(diǎn)包括處理器,該處理器用于監(jiān)視一個(gè)或更多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)的狀態(tài)并且被配置成基于每個(gè)相應(yīng)的節(jié)點(diǎn)的狀態(tài)將包括一組依賴文件的可部署包發(fā)送至每個(gè)節(jié)點(diǎn);以及一個(gè)或更多個(gè)依賴管理器節(jié)點(diǎn),所述一個(gè)或更多個(gè)依賴管理器節(jié)點(diǎn)包括:非易失性機(jī)器可讀存儲(chǔ)介質(zhì)和處理器,其中,非易失性機(jī)器可讀存儲(chǔ)介質(zhì)用于存儲(chǔ)與一個(gè)或更多個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的一個(gè)或更多個(gè)依賴樹(shù)文件,以及處理器被配置成根據(jù)與節(jié)點(diǎn)相關(guān)聯(lián)的依賴樹(shù)來(lái)編譯可部署包文件,其中,可部署包文件包括被存儲(chǔ)在至少一個(gè)數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)上的一組一個(gè)或更多個(gè)依賴文件,以及依賴管理器節(jié)點(diǎn)基于目的在于接收可部署包的節(jié)點(diǎn)相關(guān)聯(lián)的依賴樹(shù)確定依賴從而包括在可部署包中。本文公開(kāi)了一種寄存內(nèi)存數(shù)據(jù)庫(kù)的分布式計(jì)算機(jī)系統(tǒng)架構(gòu),其可以包括模塊和群集的任意合適的組合;包括下列項(xiàng)中的一個(gè)或更多個(gè):系統(tǒng)結(jié)構(gòu)、搜索管理器、分析代理、搜索引導(dǎo)器、分區(qū)器、集合、監(jiān)管器、依賴管理器或任意合適的組合。系統(tǒng)的實(shí)施例可以具有節(jié)點(diǎn)和軟件模塊的可插拔架構(gòu),這些可插拔架構(gòu)可以便于安裝、嵌入,或者包括其他即時(shí)(即,無(wú)需中斷或者干擾系統(tǒng)的操作現(xiàn)狀)部件(例如,節(jié)點(diǎn)、模塊、數(shù)據(jù)庫(kù)實(shí)例)。系統(tǒng)的實(shí)施例可以接受后來(lái)開(kāi)發(fā)的或者外部的、第三方定制分析模塊用于包含在內(nèi)存數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)查詢可以為中間查詢結(jié)果指定應(yīng)該即時(shí)應(yīng)用哪些分析模塊和參數(shù),而無(wú)需分析模塊和參數(shù)可以指定應(yīng)用動(dòng)態(tài)中間查詢結(jié)果,而無(wú)需首先從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù)。本文所描述的系統(tǒng)及方法使得定制分析模塊能夠獨(dú)立于內(nèi)存數(shù)據(jù)庫(kù)進(jìn)行開(kāi)發(fā),并且定制分析模塊還可以在寄存有數(shù)據(jù)庫(kù)的系統(tǒng)內(nèi)進(jìn)行部署以得到使用內(nèi)存數(shù)據(jù)庫(kù)執(zhí)行分析的性能優(yōu)勢(shì)。已公開(kāi)和可獲得的API可以被用于與獨(dú)立創(chuàng)建的分析模塊傳送數(shù)據(jù),這是因?yàn)锳PI可以無(wú)縫地插入或者集成到內(nèi)存數(shù)據(jù)庫(kù)中。數(shù)據(jù)的驗(yàn)證可用于確定新模塊是否符合API的預(yù)期。在一個(gè)實(shí)施例中,內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)包括:一個(gè)或更多個(gè)存儲(chǔ)器節(jié)點(diǎn),所述一個(gè)或更多個(gè)存儲(chǔ)節(jié)點(diǎn)包括用于存儲(chǔ)數(shù)據(jù)庫(kù)的一個(gè)或更多個(gè)記錄的非易失性機(jī)器可讀存儲(chǔ)介質(zhì),其中,各個(gè)所述存儲(chǔ)器節(jié)點(diǎn)中的存儲(chǔ)介質(zhì)是各個(gè)所述存儲(chǔ)器節(jié)點(diǎn)的主存儲(chǔ)器;分析代理節(jié)點(diǎn),所述分析代理節(jié)點(diǎn)包括處理器,該處理器:響應(yīng)于接收到指示所述分析模塊的分析的請(qǐng)求,使用作為輸入?yún)?shù)的一組查詢結(jié)果執(zhí)行分析模塊,其中,所述一組查詢結(jié)果包括表示一個(gè)或更多個(gè)記錄的二進(jìn)制數(shù)據(jù),所述一個(gè)或更多個(gè)記錄是從用于存儲(chǔ)所述一個(gè)或更多個(gè)記錄的所述一個(gè)或更多個(gè)存儲(chǔ)器節(jié)點(diǎn)中檢索出的;以及分析模塊數(shù)據(jù)存儲(chǔ)庫(kù),所述分析模塊數(shù)據(jù)存儲(chǔ)庫(kù)包括:用于存儲(chǔ)一個(gè)或更多個(gè)分析模塊的非易失性機(jī)器可讀存儲(chǔ)介質(zhì),以及處理器,所述處理器被配置成將新分析模塊發(fā)送至一個(gè)或更多個(gè)分析代理節(jié)點(diǎn)。本文描述了用于提供搜索模式的系統(tǒng)及方法,該搜索模式可以針對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng),諸如,內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)來(lái)實(shí)現(xiàn),為用戶提供了指定查詢算法和詳細(xì)的評(píng)分和排名算法的能力,使得可以根據(jù)搜索查詢的獨(dú)立方面中的每一個(gè)確定不同的算法。然后,引導(dǎo)搜索查詢的節(jié)點(diǎn)可以使用每個(gè)指定的算法來(lái)找到每個(gè)可能的候選記錄(即時(shí),一些字段在特定的模式中為空或者沒(méi)有被定義),然后使用指定的評(píng)分和排名算法對(duì)候選記錄進(jìn)行評(píng)分和排名。傳統(tǒng)的系統(tǒng)不能在單個(gè)搜索查詢內(nèi)提供獨(dú)立的查詢和評(píng)分算法,因此每個(gè)評(píng)分算法只能在完全獨(dú)立的一組字段上運(yùn)行。本文所描述的系統(tǒng)及方法提供這樣的方法來(lái)減小數(shù)據(jù)準(zhǔn)備的負(fù)擔(dān)并且能夠在數(shù)據(jù)被加載時(shí)出于并非最初的目的來(lái)重復(fù)使用數(shù)據(jù)。本文所描述的系統(tǒng)及方法提供了在群集的內(nèi)存數(shù)據(jù)庫(kù)中進(jìn)行非排他性搜索。非排他性搜索方法可以能夠在如下情況下執(zhí)行搜索:結(jié)果可以包括這樣的記錄,查詢中所指定的該記錄的字段沒(méi)有被填充或定義。所公開(kāi)的方法包括模糊索引、模糊匹配以及評(píng)分算法的應(yīng)用,這使得系統(tǒng)能夠使用不同的模式對(duì)記錄進(jìn)行搜索、評(píng)分以及比較。這顯著地提高了相關(guān)記錄的查全率。可以支持所公開(kāi)的非排他性搜索方法的內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng)架構(gòu)可以包括模塊和群集的任意合適的組合;包括下列項(xiàng)中的一個(gè)或更多個(gè):系統(tǒng)結(jié)構(gòu)、搜索管理器、分析代理、搜索引導(dǎo)器、分區(qū)器、集合、監(jiān)管器、依賴管理器或任意合適的組合。系統(tǒng)可以針對(duì)一個(gè)或更多個(gè)查詢對(duì)記錄評(píng)分,其中,系統(tǒng)可以對(duì)記錄的一個(gè)或更多個(gè)可獲得字段的匹配進(jìn)行評(píng)分并且于是可以確定記錄的總體匹配得分。如果一些字段缺失,則罰分或較低的得分會(huì)被賦給這些記錄而不將記錄排除。系統(tǒng)可以確定該得分是否大于預(yù)定接受閾值,其中該閾值可以是在搜索查詢中定義的或者可以是默認(rèn)值。在其他實(shí)施例中,模糊匹配算法可以將臨時(shí)地存儲(chǔ)在集合中的記錄與系統(tǒng)正生成的一個(gè)或更多個(gè)查詢進(jìn)行比較。本文公開(kāi)了用于壓縮結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)的方法,然而,應(yīng)當(dāng)理解的是,可以使用各種合適的壓縮算法(即,并不需要特定的壓縮算法)。本文所描述的系統(tǒng)及方法可以可以對(duì)數(shù)據(jù)庫(kù)的每個(gè)字段執(zhí)行合適的數(shù)據(jù)壓縮處理的組合,使得被壓縮的數(shù)據(jù)庫(kù)記錄可以達(dá)到商業(yè)上可接受的比例的壓縮率,同時(shí)仍然使得能夠僅對(duì)感興趣的記錄和字段進(jìn)行字段的解壓縮(即,僅對(duì)滿足數(shù)據(jù)庫(kù)搜索查詢的數(shù)據(jù)記錄或字段進(jìn)行解壓縮)。便于對(duì)記錄或字段進(jìn)行選擇性的解壓縮的壓縮技術(shù)的實(shí)現(xiàn)不僅允許對(duì)被壓縮的數(shù)據(jù)進(jìn)行水平的基于記錄的存儲(chǔ),而且允許對(duì)解壓縮的數(shù)據(jù)的字段進(jìn)行柱狀或垂直訪問(wèn)。這提供了壓縮的減小存儲(chǔ)的益處,同時(shí)避免了當(dāng)僅對(duì)特定字段進(jìn)行解壓縮時(shí)所造成的與解壓縮相關(guān)聯(lián)的大量的計(jì)算能力和延遲。本文所描述的系統(tǒng)及方法還可以實(shí)現(xiàn)N-gram壓縮技術(shù)。傳統(tǒng)地,N-gram僅限于僅對(duì)一個(gè)字母鏈(來(lái)字符串的連續(xù)字符)或者文字鏈(文本中的連續(xù)字符串)進(jìn)行壓縮。傳統(tǒng)的N-gram壓縮不能在這樣的壓縮技術(shù)的單個(gè)實(shí)現(xiàn)內(nèi)對(duì)字母鏈、單個(gè)文字和/或文字鏈進(jìn)行壓縮。本文描述了在記錄存儲(chǔ)期間針對(duì)柱狀壓縮使用相關(guān)的N-gram壓縮,從而使得能夠進(jìn)行良好的整體壓縮,同時(shí)作為搜索查詢的響應(yīng),仍然能夠提供對(duì)單個(gè)記錄或記錄內(nèi)的單個(gè)字段進(jìn)行低延遲的訪問(wèn)。本文所描述的系統(tǒng)及方法描述了應(yīng)用于內(nèi)存數(shù)據(jù)庫(kù)和文檔數(shù)據(jù)庫(kù)的壓縮技術(shù)的實(shí)施例。然而,應(yīng)當(dāng)理解的是,系統(tǒng)及方法的這樣的技術(shù)和其他方面也可以應(yīng)用于更通用的數(shù)據(jù)壓縮。在一個(gè)實(shí)施例中,計(jì)算機(jī)執(zhí)行的方法包括:計(jì)算機(jī)確定壓縮技術(shù)以應(yīng)用于一組數(shù)據(jù)元素中的一個(gè)或更多個(gè)數(shù)據(jù)元素,其中,所述計(jì)算機(jī)基于各個(gè)數(shù)據(jù)元素的數(shù)據(jù)類(lèi)型使用模式來(lái)確定所述壓縮技術(shù)以應(yīng)用于各個(gè)數(shù)據(jù)元素;所述計(jì)算機(jī)使用所述模式定義的壓縮技術(shù)來(lái)壓縮數(shù)據(jù)元素,其中,所述壓縮技術(shù)壓縮所述數(shù)據(jù)元素使得當(dāng)作為搜索查詢的響應(yīng),所述數(shù)據(jù)元素被返回時(shí),所述數(shù)據(jù)元素分別被解壓縮;所述計(jì)算機(jī)將每個(gè)被壓縮的數(shù)據(jù)元素存儲(chǔ)在記錄的字段中,所述記錄的字段用于存儲(chǔ)所述數(shù)據(jù)元素的數(shù)據(jù)類(lèi)型的數(shù)據(jù);所述計(jì)算機(jī)根據(jù)模式為每個(gè)字段關(guān)聯(lián)參考表中的字段標(biāo)記,其中,表示性的該標(biāo)記對(duì)字段的數(shù)據(jù)類(lèi)型進(jìn)行標(biāo)識(shí);所述計(jì)算機(jī)向數(shù)據(jù)庫(kù)查詢滿足接收自搜索引導(dǎo)器的搜索查詢的一組一個(gè)或更多個(gè)數(shù)據(jù)元素;以及響應(yīng)于識(shí)別出滿足所述搜索查詢的一組一個(gè)或更多個(gè)數(shù)據(jù)元素,所述計(jì)算機(jī)使用所述壓縮技術(shù)對(duì)滿足所述搜索查詢的一組一個(gè)或更多個(gè)數(shù)據(jù)元素中的一個(gè)或更多個(gè)數(shù)據(jù)元素中的每個(gè)元素進(jìn)行解壓縮,其中,不滿足所述搜索查詢的每個(gè)數(shù)據(jù)元素仍然是被壓縮的。在另一實(shí)施例中,計(jì)算系統(tǒng)包括:用于存儲(chǔ)一個(gè)或更多個(gè)集合的一個(gè)或更多個(gè)節(jié)點(diǎn),所述集合包括一組一個(gè)或更多個(gè)記錄,每個(gè)所述記錄包括用于存儲(chǔ)數(shù)據(jù)的一組字段;以及壓縮處理器,所述壓縮處理器用于根據(jù)與集合相關(guān)聯(lián)的模式對(duì)一個(gè)或更多個(gè)字段進(jìn)行壓縮。根據(jù)下面的詳細(xì)說(shuō)明,本發(fā)明的個(gè)各個(gè)其他方面、特征將變得明顯。下面的說(shuō)明書(shū)中闡明了實(shí)施例的其他特征和優(yōu)點(diǎn),并且部分特征和優(yōu)點(diǎn)根據(jù)說(shuō)明書(shū)將變得明顯。本發(fā)明的目的和其它的優(yōu)點(diǎn)通過(guò)在書(shū)面說(shuō)明書(shū)、權(quán)利要求書(shū)以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)并達(dá)到。附圖說(shuō)明通過(guò)參考附圖會(huì)更好地理解本發(fā)明。這些附圖中的部件并不一定是按比例繪制的,而重點(diǎn)在于對(duì)本發(fā)明的原理進(jìn)行說(shuō)明。在這些附圖中的不同視圖中,附圖標(biāo)記表示相應(yīng)的部件。圖1示出了根據(jù)一種示例性實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)架構(gòu)。圖2是根據(jù)一種示例性實(shí)施例的用于分面搜索的方法的流程圖。圖3是根據(jù)一種示例性實(shí)施例的使用分面搜索來(lái)生成搜索建議的方法的流程圖。圖4示出了根據(jù)一種示例性實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)架構(gòu)。圖5示出了一種示例性實(shí)施例的節(jié)點(diǎn)配置。圖6是根據(jù)一種示例性實(shí)施例的用于建立節(jié)點(diǎn)的流程圖。圖7是根據(jù)一種示例性實(shí)施例的用于描繪在節(jié)點(diǎn)中的模塊建立的流程圖。圖8是根據(jù)一種示例性實(shí)施例的描述搜索管理器的功能的流程圖。圖9是根據(jù)一種示例性實(shí)施例的描述搜索引導(dǎo)器的功能的流程圖。圖10是根據(jù)一種示例性實(shí)施例的描述分區(qū)器的功能的流程圖。圖11是根據(jù)一種示例性實(shí)施例的描述在搜索引導(dǎo)器中建立分區(qū)的過(guò)程的流程圖。圖12A示出了根據(jù)一種示例性實(shí)施例的集合、該集合的分區(qū)版本以及與該集合相關(guān)聯(lián)的分區(qū)。圖12B示出了根據(jù)一種示例性實(shí)施例的與搜索管理器連接的、包括第一集合的第一和第二搜索節(jié)點(diǎn)。圖12C示出了根據(jù)一種示例性實(shí)施例的、與搜索管理器斷開(kāi)的、包括第一集合的第一搜索節(jié)點(diǎn),以與搜索管理器連接的、包括第一集合的第二搜索節(jié)點(diǎn)。圖12D示出了根據(jù)一種示例性實(shí)施例的、加載了更新的集合的第一搜索節(jié)點(diǎn),以及與搜索管理器連接的第二搜索節(jié)點(diǎn)。圖12E示出了根據(jù)一種示例性實(shí)施例的、與搜索管理器連接的包括更新集合的第一搜索節(jié)點(diǎn),以及與搜索管理器斷開(kāi)的包括第一集合的第二搜索節(jié)點(diǎn)。圖12F示出了根據(jù)一種示例性實(shí)施例的、加載更新的集合的第二搜索節(jié)點(diǎn)以及與搜索管理器連接的第一搜索節(jié)點(diǎn)。圖12G示出了根據(jù)一種示例性實(shí)施例的、與搜索管理器連接的、包括更新的集合的第一和第二搜索節(jié)點(diǎn)。圖13示出了根據(jù)一種示例性實(shí)施例的包括兩個(gè)集合的分區(qū)的搜索節(jié)點(diǎn)的群集。圖14是寄存有內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)的計(jì)算系統(tǒng)的連接圖示,其中,節(jié)點(diǎn)在邏輯上被群集。圖15示出了根據(jù)一種示例性系統(tǒng)實(shí)施例的分布式系統(tǒng)管理架構(gòu)的部件。圖16示出了一種示例性系統(tǒng)實(shí)施例中的節(jié)點(diǎn)的示例性節(jié)點(diǎn)配置。圖17是示出了根據(jù)一種示例性方法實(shí)施例的、由分布式計(jì)算系統(tǒng)進(jìn)行的故障處理的流程圖。圖18示出了根據(jù)一個(gè)實(shí)施例的監(jiān)管器與依賴管理器之間的連接的框圖。圖19是根據(jù)一個(gè)實(shí)施例的配置過(guò)程的流程圖。圖20示出了根據(jù)一個(gè)實(shí)施例的用于系統(tǒng)的配置的依賴性的框圖。圖21示出了根據(jù)一種示例性實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)架構(gòu)。圖22是根據(jù)一個(gè)實(shí)施例的用于將新模塊添加至內(nèi)存數(shù)據(jù)庫(kù)的方法的流程圖。圖23示出了根據(jù)一種示例性實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)架構(gòu)。圖24是描述了根據(jù)一種示例性實(shí)施例的用于非排他性搜索的方法的流程圖。圖25示出了一種示例性實(shí)施例的數(shù)據(jù)壓縮設(shè)備。圖26示出了一種示例性實(shí)施例的結(jié)構(gòu)化數(shù)據(jù)表。圖27示出了一種示例性實(shí)施例的令牌表。圖28示出了一種示例性實(shí)施例的n-gram表。圖29示出了一種示例性實(shí)施例的用于描述經(jīng)壓縮記錄的表。定義本文所使用的下列術(shù)語(yǔ)可以具有如下定義:“實(shí)體提取”是指用于提取諸如名稱(chēng)、地點(diǎn)以及組織的信息的信息處理方法?!罢Z(yǔ)料庫(kù)”是指一個(gè)或更多個(gè)文檔的集合?!疤卣鳌笔侵辽俨糠值貜奈臋n中推導(dǎo)出的任意信息?!笆录拍顜?kù)”是指事件模板模型的數(shù)據(jù)庫(kù)?!笆录笔侵钢辽儆善渥陨淼膶?shí)時(shí)出現(xiàn)進(jìn)行表征的一個(gè)或更多個(gè)特征?!笆录P汀笔侵笖?shù)據(jù)的集合,該數(shù)據(jù)的集合可以用于與特定類(lèi)型的事件進(jìn)行比較并且用于標(biāo)識(shí)特定類(lèi)型的事件?!澳K”是指適用于執(zhí)行至少一個(gè)或更多個(gè)任務(wù)的計(jì)算機(jī)或軟件部件?!皵?shù)據(jù)庫(kù)”是指包括用于存儲(chǔ)一個(gè)或更多個(gè)集合并且適用于處理一個(gè)或更多個(gè)查詢的群集和模塊的任意組合的任意系統(tǒng)。“查詢”是指從一個(gè)或更多個(gè)合適的數(shù)據(jù)庫(kù)中檢索信息的請(qǐng)求。“存儲(chǔ)器”是指適用于以足夠高的速度存儲(chǔ)信息并且檢索所述信息的任意硬件部件?!肮?jié)點(diǎn)”是指適用于運(yùn)行一個(gè)或更多個(gè)模塊的計(jì)算機(jī)硬件配置?!叭杭笔侵敢唤M一個(gè)或更多個(gè)節(jié)點(diǎn)?!凹稀笔侵鸽x散的一組記錄。“記錄”是指可以被處理為一個(gè)單元的一條或更多個(gè)條信息。“分區(qū)”是指集合的記錄的任意分隔部分?!八阉鞴芾砥鳌被颉癝.M.”是指被配置成至少接收一個(gè)或更多個(gè)查詢并且返回一個(gè)或更多個(gè)搜索結(jié)果的模塊?!胺治龃怼薄ⅰ胺治瞿K”、“A.A.”或“A.M.”是指一種模塊,該模塊被配置成至少接收一個(gè)或更多個(gè)記錄、處理所述一個(gè)或更多個(gè)記錄并且返回所產(chǎn)生的一個(gè)或更多個(gè)經(jīng)處理的記錄?!八阉饕龑?dǎo)器”或“S.C.”是指一種模塊,該模塊被配置成至少在分區(qū)上運(yùn)行一個(gè)或更多個(gè)搜索查詢并且將搜索結(jié)果返回至一個(gè)或更多個(gè)搜索管理器?!肮?jié)點(diǎn)管理器”或“N.M.”是指一種模塊,該模塊被配置成至少對(duì)節(jié)點(diǎn)執(zhí)行一個(gè)或更多個(gè)命令并且與一個(gè)或更多個(gè)監(jiān)管器通信?!氨O(jiān)管器”是指一種模塊,該模塊被配置成至少與系統(tǒng)的一個(gè)或更多個(gè)部件通信并且確定一個(gè)或更多個(gè)狀態(tài)。“心跳”或“HB”是指向一個(gè)或更多個(gè)監(jiān)管器傳送一個(gè)或更多個(gè)狀態(tài)的信號(hào)?!胺謪^(qū)器”是指一種模塊,該模塊被配置成至少將一個(gè)或更多個(gè)集合劃分為一個(gè)或更多個(gè)分區(qū)。“依賴管理器”或“D.M.”是指一種模塊,該模塊被配置成:至少包括一個(gè)或更多個(gè)依賴樹(shù),這些依賴樹(shù)與系統(tǒng)中的一個(gè)或更多個(gè)模塊、分區(qū)或合適的組合相關(guān)聯(lián);至少接收與所述一個(gè)或更多個(gè)依賴樹(shù)的任意一個(gè)或更多個(gè)合適的部分相關(guān)的信息的請(qǐng)求;以及至少返回從所述部分得到的一個(gè)或更多個(gè)配置?!拔臋n”是指具有開(kāi)頭和結(jié)尾的信息的離散電子表示。“現(xiàn)場(chǎng)語(yǔ)料庫(kù)”是指隨著新文檔被上載至網(wǎng)絡(luò),而被不斷地饋送的語(yǔ)料庫(kù)?!疤卣鳌笔侵钢辽俨糠值貜奈臋n中推導(dǎo)出的任意信息。“特征屬性”是指與特征相關(guān)聯(lián)的元數(shù)據(jù),例如,特征在文檔中的位置、置信度(confidencescore)等。“事實(shí)”是指特征之間的客觀關(guān)系?!爸R(shí)庫(kù)”是指包括消除了歧義的特征或分面的庫(kù)。“即時(shí)鏈接模塊”是指在向系統(tǒng)請(qǐng)求數(shù)據(jù)時(shí)而不是將數(shù)據(jù)添加至系統(tǒng)時(shí)執(zhí)行數(shù)據(jù)鏈接的任意鏈接模塊?!翱捶?Sentiment)”是指與文檔、部分文檔或特征相關(guān)聯(lián)的主觀評(píng)估。“話題”是指至少部分地從語(yǔ)料庫(kù)中推導(dǎo)出的一組專(zhuān)題信息。“前綴”是指長(zhǎng)度為p的字符串,該字符串包括節(jié)點(diǎn)的所有子樹(shù)所共享的關(guān)鍵字字符中的最長(zhǎng)字符串以及用于存儲(chǔ)數(shù)據(jù)記錄的參考的數(shù)據(jù)記錄字段?!胺置妗笔侵割?lèi)、特定主題、話題或特征的被明確定義、相互排斥并且完全窮盡的方面、屬性或特性?!白侄巍笔侵赣涗泝?nèi)的一個(gè)數(shù)據(jù)元素?!澳J健笔侵赣糜诿枋鲆粋€(gè)或更多個(gè)記錄的一個(gè)或更多個(gè)特性的數(shù)據(jù)?!胺侄巍笔侵笇⒂涗浄殖奢^小的記錄直到達(dá)到所期望的粒度級(jí)別。“資源”是指節(jié)點(diǎn)中被配置成存儲(chǔ)或處理數(shù)據(jù)的硬件。在一種或更多種實(shí)施例中,“資源”可以包括RAM、硬盤(pán)存儲(chǔ)器以及計(jì)算能力等?!耙蕾嚇?shù)”是指一種類(lèi)型的數(shù)據(jù)結(jié)構(gòu),其可以示出分區(qū)、模塊、文件或數(shù)據(jù)等之間的關(guān)系?!翱刹渴鸢笔侵敢唤M信息,這組信息可以用于對(duì)分區(qū)、模塊、文件或數(shù)據(jù)等進(jìn)行配置?!胺治龇椒ā笔侵缚梢员粦?yīng)用于對(duì)搜索結(jié)果進(jìn)行聚集的任意操作。“分析參數(shù)”是指一種參數(shù),該參數(shù)用于描述分析模塊為了獲得特定結(jié)果必須執(zhí)行的操作?!皯?yīng)用程序編程接口”或“API”使得用戶所開(kāi)發(fā)的不同軟件模塊能夠與分布式計(jì)算系統(tǒng)中的部件(例如,軟件模塊、節(jié)點(diǎn))兼容?!白值洹笔侵感畔⒌闹醒雰?chǔ)存庫(kù),該中央儲(chǔ)存庫(kù)包括關(guān)于MEMDB中的字段的詳情,例如,意思、與其他數(shù)據(jù)的關(guān)系、來(lái)源、用途以及格式?!拔炊x”指代字段并不是特定模式的一部分?!拔刺畛洹笔侵缸侄问悄J降囊徊糠值菦](méi)有被指定的值。“對(duì)象”是指數(shù)據(jù)記錄內(nèi)的字段的邏輯集合?!皵?shù)組”是指記錄內(nèi)的數(shù)據(jù)值的有序列表?!皦嚎s”是指將表示值所需要的電子數(shù)據(jù)的量減小。“令牌表”是指一種為一個(gè)或更多個(gè)其他更復(fù)雜的值定義一個(gè)或更多個(gè)簡(jiǎn)化的值的表。“n-gram”是指N個(gè)連續(xù)的整體單元的數(shù)據(jù),其可以是字符、詞、一組詞,其中,N大于或等于1。即,在句子“Thequickbrownfoxjumpedoverthelazydog.”中,“the”、“e”、“he”以及“brownfox”都是是有效的N-GRAM?!癗-GRAM表”是指一種為一個(gè)或更多個(gè)其他更復(fù)雜的值定義一個(gè)或更多個(gè)簡(jiǎn)化的值的表?!癑SON”是指JavaScript對(duì)象標(biāo)記,是一種數(shù)據(jù)交換格式。“BSON”是指二進(jìn)制JSON,是一種數(shù)據(jù)交換格式?!癥AML”是指編碼語(yǔ)言“YAML不是一種標(biāo)記語(yǔ)言”,是一種數(shù)據(jù)交換格式。“文檔數(shù)據(jù)庫(kù)”是指面向文檔的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)被設(shè)計(jì)來(lái)對(duì)面向文檔的信息進(jìn)行存儲(chǔ)、檢索并管理。具體實(shí)施方式現(xiàn)在將詳細(xì)參考優(yōu)選實(shí)施例,這些實(shí)施例中的示例在附圖中進(jìn)行了說(shuō)明。上述實(shí)施例是示例性的。本領(lǐng)域的技術(shù)人員認(rèn)為:多個(gè)可替代部件和實(shí)施例可以用于代替本文所描述的特定示例并且仍然屬于本發(fā)明的保護(hù)范圍。在不偏離于本發(fā)明的主旨或范圍的情況下,可以使用其他實(shí)施和/或做出其他改變。在詳盡的說(shuō)明書(shū)中所描述的示意性實(shí)施例并非意在對(duì)這里所提出的主題進(jìn)行限定。然而,應(yīng)當(dāng)理解的是,由此目的并非在于對(duì)本發(fā)明的范圍進(jìn)行限制。這里所說(shuō)明的創(chuàng)造性特征的變更和進(jìn)一步的修改以及這里所描述的本發(fā)明的原理的其他應(yīng)用(這些變更、修改和應(yīng)用可以由相關(guān)領(lǐng)域中并且獲得本發(fā)明的技術(shù)人員實(shí)現(xiàn)),被認(rèn)為是在本發(fā)明的范圍內(nèi)。本發(fā)明描述了一種用于對(duì)多個(gè)源中的事件進(jìn)行檢測(cè)、提取并驗(yàn)證。源可以包括新聞源、社交媒體網(wǎng)站和/或包括與可以包括與事件有關(guān)的數(shù)據(jù)的任何源。本文所公開(kāi)的系統(tǒng)與方法的各個(gè)實(shí)施例從不同的源采集數(shù)據(jù)以便于識(shí)別獨(dú)立的事件。圖1示出了根據(jù)一種示例性實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)100的系統(tǒng)架構(gòu)。MEMDB100的系統(tǒng)架構(gòu)可以包括系統(tǒng)界面102、第一搜索管理器104、第n搜索管理器106、第一分析代理108、第n搜索代理110、第一搜索引導(dǎo)器112、第n搜索引導(dǎo)器114、分區(qū)器116、第一集合118、第n集合120、監(jiān)管器122以及依賴管理器124。在一種或更多種實(shí)施例中,系統(tǒng)界面102可以被配置成將MEMDB100的系統(tǒng)架構(gòu)外部所生成的一個(gè)或更多個(gè)查詢饋送至第一群集中的一個(gè)或更多個(gè)搜索管理器110、112,并且第一群集至少包括:第一搜索管理器104到第n搜索管理器106。在該第一群集中的所述一個(gè)或更多個(gè)搜索管理器可以與第二群集中的一個(gè)或更多個(gè)分析代理鏈接,以及第二群集至少包括第一分析代理108到第n分析代理110。在該第一群集中的搜索管理器可以與第三群集中的一個(gè)或更多個(gè)搜索引導(dǎo)器鏈接,以及第二群集至少包括第一搜索引導(dǎo)器112到第n搜索引導(dǎo)器114。第三群集中的搜索引導(dǎo)器可以被鏈接至一個(gè)或更多個(gè)分區(qū)器126,其中,可以在一個(gè)或更多個(gè)時(shí)刻即時(shí)地將與至少第一集合118至第n集合120相對(duì)應(yīng)的分區(qū)保存。MEMDB100中所包括的群集中所包括的一個(gè)或更多個(gè)節(jié)點(diǎn)、模塊或上述項(xiàng)的合適的組合可以被鏈接至一個(gè)或更多個(gè)監(jiān)管器122,其中,在所述群集中的一個(gè)或更多個(gè)節(jié)點(diǎn)、模塊或合適的結(jié)合可以被配置成將至少一個(gè)心跳發(fā)送至一個(gè)或更多個(gè)監(jiān)管器122。監(jiān)管器122可以被鏈接至一個(gè)或更多個(gè)依賴管理器124,其中,所述一個(gè)或更多個(gè)依賴管理器124可以包括對(duì)于一個(gè)或更多個(gè)模塊、分區(qū)或上述項(xiàng)的合適的組合的一個(gè)或更多個(gè)依賴樹(shù)。監(jiān)管器122可以附加地鏈接至一個(gè)或更多個(gè)其他監(jiān)管器122,其中,附加的監(jiān)管器122可以被鏈接至MEMDB100的系統(tǒng)架構(gòu)中所包括的群集。圖2是根據(jù)示例性實(shí)施例的描述用于分面搜索200的方法的流程圖。使用分面對(duì)文檔進(jìn)行分離或分組可以有效地縮小搜索結(jié)果。當(dāng)執(zhí)行分面搜索時(shí),每個(gè)面可以被認(rèn)為文檔在多維空間中的維度,并且通過(guò)選擇特定的文檔面可以顯著地改善找到相關(guān)搜索結(jié)果的可能性,同時(shí)可以大大地縮短執(zhí)行搜索所需要的時(shí)間。該過(guò)程可以使用搜索管理器202所接收的查詢來(lái)開(kāi)始,其中,由外部源所生成的一個(gè)或更多個(gè)查詢可以通過(guò)一個(gè)或更多個(gè)搜索管理器來(lái)接收。在一些實(shí)施例中,作為與用戶之間的交互,這些查詢可以由系統(tǒng)接口102自動(dòng)地生成。在一種或更多種實(shí)施例中,這些查詢可以通過(guò)標(biāo)記語(yǔ)言(包括XML和HTML)來(lái)表示。在一個(gè)或更多個(gè)其他實(shí)施例中,這些查詢可以通過(guò)一種結(jié)構(gòu)來(lái)表示,其中,包括通過(guò)JSON表示查詢的實(shí)施例。在一些實(shí)施例中,可以通過(guò)緊湊或二進(jìn)制格式來(lái)表示查詢。然后,所接收的查詢可以通過(guò)搜索管理器204進(jìn)行解析。這個(gè)過(guò)程使得系統(tǒng)能夠確定是否需要進(jìn)行字段處理206。在一種或更多種實(shí)施例中,系統(tǒng)可以利用查詢中包括的信息確定是否需要進(jìn)行處理。在一個(gè)或更多而過(guò)其他實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以自動(dòng)地確定查詢的一個(gè)或更多個(gè)字段中的哪個(gè)字段需要進(jìn)行所期待的處理。如果系統(tǒng)確定需要對(duì)一個(gè)或更多個(gè)字段進(jìn)行字段處理,則一個(gè)或更多個(gè)搜索管理器可以在搜索管理器處理字段208期間,將一個(gè)或更多個(gè)合適的處理技術(shù)應(yīng)用于一個(gè)或更多個(gè)所期望的字段。在一種或更多種實(shí)施例中,合適的處理技術(shù)可以包括地址標(biāo)準(zhǔn)化、接近邊界以及昵稱(chēng)解釋等。在一些實(shí)施例中,合適的處理技術(shù)可以包括從字符串中提取前綴并且生成非字面的關(guān)鍵字,該非字面的關(guān)鍵字之后可以用于執(zhí)行模糊模糊匹配技術(shù)。然后,當(dāng)S.M.構(gòu)建搜索查詢210時(shí),一個(gè)或更多個(gè)搜索管理器可以構(gòu)建與一個(gè)或更多個(gè)查詢相關(guān)聯(lián)的一個(gè)或更多個(gè)搜索查詢。在一種或更多種實(shí)施例中,可以構(gòu)建搜索查詢以便于作為基于堆棧的搜索進(jìn)行處理。隨后,S.M.可以向S.C.發(fā)送搜索查詢212。在一些實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以向一個(gè)或更多個(gè)搜索引導(dǎo)器發(fā)送一個(gè)或更多個(gè)搜索查詢,其中,所述一個(gè)或更多個(gè)搜索引導(dǎo)器可以與一個(gè)或更多個(gè)搜索查詢中指定的集合相關(guān)聯(lián)。一個(gè)或更多個(gè)搜索引導(dǎo)器可以針對(duì)一個(gè)或更多個(gè)查詢對(duì)記錄評(píng)分,其中,搜索引導(dǎo)器可以對(duì)記錄的一個(gè)或更多個(gè)字段的匹配進(jìn)行評(píng)分并且于是可以確定對(duì)于記錄的所有匹配的得分。系統(tǒng)可以確定該得分是否大于預(yù)定接受閾值,其中該閾值可以是在搜索查詢中定義的或者可以是默認(rèn)值。在一種或更多種實(shí)施例中,可以根據(jù)待評(píng)分的一個(gè)或更多個(gè)字段來(lái)改變默認(rèn)的得分閾值。如果搜索引導(dǎo)器確定得分超過(guò)所期望的閾值,則可以將記錄添加至搜索結(jié)果。搜索引導(dǎo)器可以不斷地對(duì)記錄進(jìn)行評(píng)分,直到確定該記錄為分區(qū)中的最后一個(gè)記錄為止。如果搜索引導(dǎo)器確定已經(jīng)對(duì)分區(qū)中的最后一個(gè)記錄進(jìn)行了處理,則搜索引導(dǎo)器可以對(duì)所得到的結(jié)果列表進(jìn)行排序。然后,搜索引導(dǎo)器可以將結(jié)果列表返回至搜索管理器。當(dāng)S.M.接收并整理來(lái)自S.C.的結(jié)果214時(shí),一個(gè)或更多個(gè)搜索引導(dǎo)器將一個(gè)或更多個(gè)搜索結(jié)果返回至一個(gè)或更多個(gè)搜索管理器,其中,在一種或更多種實(shí)施例中,可以以異步方式將所述一個(gè)或更多個(gè)搜索結(jié)果返回。然后,一個(gè)或更多個(gè)搜索管理器可以將來(lái)自一個(gè)或更多個(gè)搜索引導(dǎo)器的結(jié)果編譯成一個(gè)或更多個(gè)結(jié)果列表。系統(tǒng)可以確定由一個(gè)或更多個(gè)搜索管理器所編譯的搜索結(jié)果是否需要進(jìn)行分析處理216。在一種或更多種實(shí)施例中,系統(tǒng)利用查詢中包括的信息確定處理是否是必要的。在一個(gè)或更多而過(guò)其他實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以自動(dòng)地確定查詢的一個(gè)或更多個(gè)字段中的哪個(gè)字段需要進(jìn)行所期待的處理。如果系統(tǒng)確定需要進(jìn)行聚集的分析處理,則一個(gè)或更多個(gè)分析代理可以通過(guò)一個(gè)或更多個(gè)合適的處理技術(shù)將結(jié)果218處理成一個(gè)或更多個(gè)結(jié)果列表。在一種或更多種實(shí)施例中,合適的技術(shù)包括:將多個(gè)記錄累積為更完整的記錄中;對(duì)結(jié)果執(zhí)行一個(gè)或更多個(gè)分析,并且確定關(guān)于相鄰記錄的信息等。在一些實(shí)施例中,分析模塊可以包括:消歧模塊、鏈接模塊、即時(shí)(on-the-fly)鏈接模塊、或者任意其它合適的模塊和算法。在處理過(guò)程中,可以對(duì)具有不同特異性級(jí)別的分面進(jìn)行如下處理:從文檔中提取出來(lái);消除歧義;規(guī)范化;按照話題進(jìn)行分組;以及索引??梢愿鶕?jù)層次結(jié)構(gòu)對(duì)分面進(jìn)行索引,其中,該層次結(jié)構(gòu)可以被預(yù)定義或者由系統(tǒng)即時(shí)定義。在一種或更多種實(shí)施例中,級(jí)別為1的分面可以是最寬的面,并且可以通遞減的相關(guān)性或更高程度的特異性來(lái)推導(dǎo)出后續(xù)的等級(jí)。結(jié)果列表的分面可以被存儲(chǔ)在集合中。在一些實(shí)施例中,每種類(lèi)型的面可以被存儲(chǔ)在不同的集合中或者一組集合中。在根據(jù)一些實(shí)施例的處理之后,一個(gè)或更多個(gè)分析代理可以將一個(gè)或更多個(gè)經(jīng)處理的結(jié)果列表返回至一個(gè)或更多個(gè)搜索管理器。搜索管理器可以返回搜索結(jié)果220。在一些實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以對(duì)一個(gè)或更多個(gè)結(jié)果列表解壓縮并且發(fā)送至發(fā)起查詢的系統(tǒng)。任選地,根據(jù)一些實(shí)施例,搜索結(jié)構(gòu)可以被臨時(shí)地存儲(chǔ)在知識(shí)庫(kù)中222并且被返回至用戶接口224。該知識(shí)庫(kù)可以被用來(lái)存儲(chǔ)相關(guān)消除了歧義的分面的群集以及他們相關(guān)的特征。當(dāng)可以將新文檔下載到MEMDB中時(shí),可以將新的消除了歧義的一組分面與現(xiàn)有的知識(shí)庫(kù)進(jìn)行比較,以便于確定分面之間的關(guān)系并且確定新的分面與先前所提取的分面是否存在匹配。如果所比較的分面是匹配的,則可以對(duì)知識(shí)庫(kù)進(jìn)行更新并且可以將相匹配的ID返回。如果所比較的分面與任意已經(jīng)提取的分面都不匹配,則將唯一的ID被指定給消除了歧義的實(shí)體或分面,并且該ID與定義特征的群集相關(guān)聯(lián)并且被存儲(chǔ)在MEMDB的知識(shí)庫(kù)中。圖3是根據(jù)一種示例性實(shí)施例的使用分面搜索來(lái)生成搜索建議的方法的流程圖。用于生成搜索建議的方法300可以開(kāi)始于查詢生成302。在一些實(shí)施例中,當(dāng)用戶開(kāi)始在合適的搜索窗口中打字時(shí),系統(tǒng)可以自動(dòng)地生成建議,所述建議是根據(jù)對(duì)用于在搜索框上打出的文字進(jìn)行的前綴推導(dǎo)出的。甚至使用在搜索窗鍵入的最小數(shù)量的字符(3個(gè)或4個(gè))并且在用戶已經(jīng)完成了在搜索窗口鍵入字符串之前,可以生成這些搜索。一旦合適的搜索被生成,則可以應(yīng)用用于分面搜索的方法200。該方法的應(yīng)用可以包括使用可以允許部分前綴匹配的文字或非文字的關(guān)鍵字算法。為了生成搜索建議304,模糊匹配算法可以將臨時(shí)地存儲(chǔ)在集合中的分面與系統(tǒng)正生成的一個(gè)或更多個(gè)查詢進(jìn)行比較。通過(guò)這種方式,關(guān)于當(dāng)前的一個(gè)或更多個(gè)查詢的點(diǎn)擊數(shù)(countsofhits)可以被指定給具有不同層次結(jié)構(gòu)等級(jí)的分面,這些分面可以在集合的不同分區(qū)中。然后,可以給級(jí)別為1的分面分配累積點(diǎn)擊數(shù)并且根據(jù)累積點(diǎn)擊數(shù)進(jìn)行排序。然后,可以將搜索建議呈現(xiàn)給用戶303。在一些實(shí)施例中,這可以以下拉窗的形式實(shí)現(xiàn),該下拉窗可以包括一個(gè)最相關(guān)的一級(jí)分面,每個(gè)分面具有與其相關(guān)聯(lián)的點(diǎn)擊數(shù)并且用戶可以被允許選擇不同級(jí)別的分面以縮小搜索查詢或者開(kāi)始新的查詢。根據(jù)一些實(shí)施例,在用戶完成在搜索窗口鍵入字符串之前,該過(guò)程可以生成并供應(yīng)分面搜索建議,當(dāng)搜索窗口中的字符開(kāi)始形成文字時(shí),該過(guò)程會(huì)多次發(fā)生。圖4示出了系統(tǒng)架構(gòu)400,該系統(tǒng)架構(gòu)100具有:系統(tǒng)界面402,、第一搜索管理器410、第n搜索管理器412、第一分析代理420、第n搜索代理422、第一搜索引導(dǎo)器430、第n搜索引導(dǎo)器432、分區(qū)數(shù)據(jù)440、分區(qū)器450、第一集合460、第n集合462、監(jiān)管器470以及依賴管理器480。在一種或更多種實(shí)施例中,系統(tǒng)界面402可以將外部系統(tǒng)架構(gòu)400所生成的一個(gè)或更多個(gè)查詢饋送至第一群集中的一個(gè)或更多個(gè)搜索管理器410、412,并且第一群集至少包括:包括第一搜索管理器410的一個(gè)節(jié)點(diǎn)到包括第n搜索管理器412的n個(gè)節(jié)點(diǎn)。在該第一群集中的一個(gè)或更多個(gè)搜索管理器410、412可以與第二群集中的一個(gè)或更多個(gè)分析代理420、422鏈接,以及第二群集至少包括第一分析代理420到第n分析代理422。第一群集中的搜索管理器410、412可以鏈接至第三群集中的一個(gè)或更多個(gè)搜索引導(dǎo)器430、432。第三群集可以至少包括第一搜索引導(dǎo)器430至第n搜索引導(dǎo)器432。每個(gè)搜索節(jié)點(diǎn)(及,執(zhí)行搜索管理器410、412的節(jié)點(diǎn))可以包括任意適合數(shù)量的搜索引導(dǎo)器430、432。第三群集中的搜索引導(dǎo)器430、432可以鏈接至用于存儲(chǔ)分區(qū)數(shù)據(jù)440的一個(gè)或更多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)。分區(qū)數(shù)據(jù)440可以包括通過(guò)節(jié)點(diǎn)執(zhí)行一個(gè)或更多個(gè)分區(qū)器450所產(chǎn)生的一個(gè)或更多個(gè)分區(qū)(即,從離散的記錄集合中分區(qū)出來(lái)的任意分隔部分的記錄),分區(qū)器150可以是被配置成至少將一個(gè)或更多個(gè)集合劃分為一個(gè)或更多個(gè)分區(qū)的模塊。每個(gè)分區(qū)對(duì)應(yīng)于至少第一集合460并且至多第n集合462。集合460、462還可以通過(guò)一個(gè)或更多個(gè)模式文件進(jìn)行描述,所述一個(gè)或更多個(gè)模式文件可以對(duì)集合460、462中的數(shù)據(jù)進(jìn)行定義。該一個(gè)或更多個(gè)模式可以包括如下信息:分區(qū)的記錄中的字段名稱(chēng)、是否這些字段被索引、使用了什么壓縮方法以及對(duì)于字段而言哪個(gè)評(píng)分算法是默認(rèn)的等。當(dāng)分區(qū)器450對(duì)第一集合460至第n集合462進(jìn)行分區(qū)時(shí),可以使用所述模式,并且當(dāng)?shù)谝凰阉鞴芾砥?10至第n搜索管理器412對(duì)集合執(zhí)行一個(gè)或更多個(gè)查詢時(shí)也可以使用所述模式。一個(gè)或更多個(gè)節(jié)點(diǎn)可以執(zhí)行監(jiān)管器470軟件模塊,該軟件模塊接收系統(tǒng)400的其他節(jié)點(diǎn)所傳送的心跳信號(hào)。監(jiān)管器470可以被配置成從系統(tǒng)400的、執(zhí)行一個(gè)或更多個(gè)依賴管理器480軟件模塊的節(jié)點(diǎn)接收數(shù)據(jù)。依賴管理器480節(jié)點(diǎn)可以存儲(chǔ)、更新和引用與一個(gè)或更多個(gè)模塊、分區(qū)或尚書(shū)巷的合適的組合相關(guān)聯(lián)的依賴樹(shù),依賴樹(shù)可以表示基于相對(duì)關(guān)系的對(duì)于節(jié)點(diǎn)、模塊和分區(qū)的配置依賴。監(jiān)管器470還可以鏈接至系統(tǒng)400中的執(zhí)行一個(gè)或更多個(gè)其他監(jiān)管器470的其他節(jié)點(diǎn)。在某些情況下,到其他監(jiān)管器470的鏈路可以在系統(tǒng)架構(gòu)400的群集之間跨越。執(zhí)行分析代理420、422的節(jié)點(diǎn)可以執(zhí)行一個(gè)或更多個(gè)合適的分析模塊,所述分析模塊符合所指定的應(yīng)用編程接口(API),該API有利于系統(tǒng)的部件(例如,軟件模塊、節(jié)點(diǎn))之間的互操作性和數(shù)據(jù)傳輸。分析代理420、422可以被配置成對(duì)搜索引導(dǎo)器430、432所返回的聚集查詢結(jié)構(gòu)進(jìn)行處理。例如,搜索管理器410可以接收搜索查詢?nèi)缓笊伤阉饕龑?dǎo)器查詢,搜索管理器410將該搜索引導(dǎo)器查詢發(fā)送至一個(gè)或更多個(gè)搜索引導(dǎo)器430、432。在搜索引導(dǎo)器430、432執(zhí)行了各自被指定的搜索引導(dǎo)器查詢之后,搜索管理器410將從所述一個(gè)或更多個(gè)搜索引導(dǎo)器430、432接收所聚集的查詢結(jié)果的集合。如果根據(jù)搜索查詢的參數(shù)需要對(duì)搜索查詢結(jié)果進(jìn)行進(jìn)一步處理,則搜索管理器410可以將這些搜索查詢結(jié)果轉(zhuǎn)發(fā)至分析代理420以進(jìn)行進(jìn)一步處理。在一些實(shí)施方式中,在搜索管理器410確定搜索查詢已經(jīng)向分析代理420請(qǐng)求對(duì)從搜索引導(dǎo)器430、432接收的一組或多組聚集的結(jié)果進(jìn)行處理,則搜索管理器410可以向分析代理420、422發(fā)送數(shù)據(jù)庫(kù)模式文件和/或一個(gè)或更多個(gè)分析參數(shù)。在一些情況下,搜索詢問(wèn)可以請(qǐng)求執(zhí)行特定的分析算法,搜索管理器410可以使用該分析算法來(lái)識(shí)別哪個(gè)分析代理420會(huì)接收到所聚集的分析結(jié)果。在一些情況下,一組或更多個(gè)組所聚集的結(jié)果可以以經(jīng)壓縮記錄的形式傳送至分析代理420、422,這些經(jīng)壓縮記錄包括根據(jù)壓縮算法所壓縮的數(shù)據(jù)。在一些情況下,可以按照記錄的字段來(lái)壓縮記錄的數(shù)據(jù),以及,在一些情況下,可以對(duì)整個(gè)記錄進(jìn)行壓縮。執(zhí)行分析代理420、422的節(jié)點(diǎn)具有多個(gè)分析模塊。分析模塊的非限制性示例可以包括:消歧模塊、鏈接模塊、和即時(shí)(on-the-fly)鏈接模塊、以及其它合適的模塊和算法。如后面所詳述地,鏈接模塊和即時(shí)鏈接模塊可以對(duì)先前在數(shù)據(jù)庫(kù)的記錄中所存儲(chǔ)的數(shù)據(jù)鏈接的元數(shù)據(jù)進(jìn)行識(shí)別、生成和/或存儲(chǔ)。合適的模塊可以包括用于處理任意類(lèi)型數(shù)據(jù)的分析方法的任意軟件實(shí)現(xiàn)。在一些實(shí)施例中,特定的分析模塊或分析代理420、422僅可被內(nèi)存數(shù)據(jù)庫(kù)中所預(yù)定的實(shí)例、群集、分區(qū)和/或?qū)嵗瘜?duì)象。圖5是根據(jù)一個(gè)實(shí)施例的示出了節(jié)點(diǎn)500的配置的圖示。圖5中的節(jié)點(diǎn)500可以包括處理器執(zhí)行節(jié)點(diǎn)管理器502軟件模塊和任意數(shù)量的附加軟件模塊510、512,這些軟件模塊可以包括第一軟件模塊510至第n軟件模塊512。根據(jù)圖5中的示例性配置,節(jié)點(diǎn)500可以經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)通信地耦接至執(zhí)行監(jiān)管器模塊的第二節(jié)點(diǎn),或監(jiān)管器節(jié)點(diǎn)。通過(guò)節(jié)點(diǎn)500安裝和執(zhí)行的節(jié)點(diǎn)管理器502也可以被配置成與監(jiān)管器節(jié)點(diǎn)通信,并且還可以被配置成對(duì)節(jié)點(diǎn)上安裝的軟件模塊510、512(包括第一模塊510至第n模塊512)進(jìn)行監(jiān)視。節(jié)點(diǎn)管理器501可以執(zhí)行從監(jiān)管器接收的任意合適的命令,并且還可以報(bào)告下列項(xiàng)的一個(gè)或更多個(gè)的狀態(tài):節(jié)點(diǎn)500、節(jié)點(diǎn)管理器502以及第一模塊510至第n模塊512。第一模塊510可以鏈接至一個(gè)或更多個(gè)監(jiān)管器并且可以連接至節(jié)點(diǎn)中的一個(gè)或更多個(gè)模塊,其中,節(jié)點(diǎn)中的其他模塊的類(lèi)型可以不同于第一模塊510的類(lèi)型或者與第一模塊510的類(lèi)型相同。此外,第一模塊510可以鏈接至系統(tǒng)中的一個(gè)或更多個(gè)其他模塊、節(jié)點(diǎn)或群集。圖6是描述節(jié)點(diǎn)建立600的流程圖,包括步驟602、604和606。在步驟602中,將適用于節(jié)點(diǎn)的操作系統(tǒng)(OS)加載至節(jié)點(diǎn)。在一種或更多中實(shí)施例中,該OS可以由節(jié)點(diǎn)的制造商自動(dòng)地加載。在一個(gè)或更多個(gè)其他實(shí)施例中,該OS可以由一個(gè)或更多個(gè)操作員加載到節(jié)點(diǎn)上。在步驟604中,一個(gè)或更多個(gè)操作員手動(dòng)地安裝適用于節(jié)點(diǎn)上所加載的OS的節(jié)點(diǎn)管理器,其中,該安裝可以確定除了節(jié)點(diǎn)管理器之外,哪一個(gè)或多個(gè)理想的模塊將被安裝在節(jié)點(diǎn)上。在步驟606中,節(jié)點(diǎn)管理器向監(jiān)管器發(fā)送心跳,其中,該心跳可以包括對(duì)于監(jiān)管器而言足以確定節(jié)點(diǎn)已經(jīng)準(zhǔn)備好接收安裝一個(gè)或更多個(gè)模塊的質(zhì)量的信息。圖7是描述模塊建立700的流程圖,包括步驟702、704、706、708、710、712以及714。在步驟702中,監(jiān)管器基于系統(tǒng)所定義的數(shù)據(jù)集合的需要確定一個(gè)或更多個(gè)模塊待被安裝到一個(gè)或更多個(gè)節(jié)點(diǎn)上。然后,監(jiān)管器向一個(gè)更多個(gè)節(jié)點(diǎn)上的一個(gè)或更多個(gè)節(jié)點(diǎn)管理器發(fā)送安裝準(zhǔn)備指令。在一些實(shí)施例中,監(jiān)管器可以跟蹤數(shù)據(jù)集合(包括,數(shù)據(jù)碎片或部分?jǐn)?shù)據(jù))和與各個(gè)集合相關(guān)聯(lián)的配置設(shè)置。監(jiān)管器還可以知道所有可獲得的節(jié)點(diǎn)和這些節(jié)點(diǎn)的資源(節(jié)點(diǎn)管理器所報(bào)告的)。監(jiān)管器可以將系統(tǒng)需求映射(即,關(guān)聯(lián))至可獲得的節(jié)點(diǎn)資源以確定哪些數(shù)據(jù)碎片或數(shù)據(jù)部分或者哪些系統(tǒng)服務(wù)或資源應(yīng)該運(yùn)行在每個(gè)對(duì)應(yīng)的節(jié)點(diǎn)上。于是,監(jiān)管器可以將包括任意所定義的依賴關(guān)系的請(qǐng)求部署/安裝至合適的節(jié)點(diǎn)管理器以指令節(jié)點(diǎn)管理器在客戶端上執(zhí)行安裝。在步驟704中,節(jié)點(diǎn)管理器分配節(jié)點(diǎn)的資源(諸如,計(jì)算機(jī)存儲(chǔ)器、磁盤(pán)存儲(chǔ)器和/或CPU容量的部分)用于所述一個(gè)或更多個(gè)所期望的模塊。在一種或更多種實(shí)施例中,在監(jiān)管器不在繼續(xù)執(zhí)行該過(guò)程一段時(shí)間之后,可以中止分配資源。資源的非限制性實(shí)施例可以包括計(jì)算機(jī)存儲(chǔ)器、磁盤(pán)存儲(chǔ)器和/或CPU容量的一部分??梢允褂帽O(jiān)管器向給定的節(jié)點(diǎn)分配的數(shù)據(jù)和/或服務(wù)確定所需要的資源。所需要的資源的詳情可以在定義軟件和數(shù)據(jù)依賴性關(guān)系的包中指定,該包存儲(chǔ)在依賴管理器中。在步驟706中,監(jiān)管器向依賴管理器發(fā)送請(qǐng)求,請(qǐng)求得到與待安裝到節(jié)點(diǎn)上的一個(gè)或更多個(gè)模塊相關(guān)聯(lián)的一個(gè)或更多個(gè)配置包。在步驟708中,然后,監(jiān)管器可以將配置包發(fā)送至待被部署、安裝和啟動(dòng)的節(jié)點(diǎn)管理器。包括所有的數(shù)據(jù)、軟件和元數(shù)據(jù)依賴關(guān)系的配置包由系統(tǒng)管理員進(jìn)行定義并且被存儲(chǔ)在依賴管理器中。在步驟710中,節(jié)點(diǎn)管理器讀取所需要的任意軟件和數(shù)據(jù)以對(duì)來(lái)自合適的服務(wù)器的一個(gè)或更多個(gè)模塊進(jìn)行運(yùn)行。合適的軟件和數(shù)據(jù)可以包括:適合于對(duì)一個(gè)或更多個(gè)記錄進(jìn)行索引、壓縮、解壓縮、評(píng)分、切片、聯(lián)合或處理的軟件、數(shù)據(jù)和元數(shù)據(jù),以及適合于與系統(tǒng)中的一個(gè)或更多個(gè)其他部件進(jìn)行通信、協(xié)作、監(jiān)視或交互的軟件和數(shù)據(jù)。在步驟712中,節(jié)點(diǎn)管理器對(duì)步驟710中獲取的所需要的軟件進(jìn)行安裝。在步驟714中,節(jié)點(diǎn)管理器執(zhí)行步驟712中所安裝的軟件。圖8是描述查詢處理800的流程圖,包括步驟802、804、808、810、812、814、818以及820,并且包括核查806和816。在步驟802中,一個(gè)或更多個(gè)搜索管理器接收外部資源(諸如,系統(tǒng)所主機(jī)的基于瀏覽器的圖形用戶界面(GUI)或客戶端計(jì)算機(jī)的本機(jī)GUI)所生成的數(shù)據(jù)庫(kù)查詢。這些查詢可以包括表示任意合適的軟件源代碼的二進(jìn)制數(shù)據(jù),該軟件源代碼可以包括用于所提交的搜索參數(shù)或程序自動(dòng)生成的搜索參數(shù)。用于搜索查詢的源代碼語(yǔ)言可以是能夠處理復(fù)雜數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)串行化語(yǔ)言,諸如,對(duì)象或類(lèi)。數(shù)據(jù)串行化語(yǔ)言可以用于將復(fù)雜的數(shù)據(jù)對(duì)象或結(jié)構(gòu)轉(zhuǎn)化為數(shù)字位的序列,并且可以以任意大多數(shù)設(shè)備可以管理的格式提供復(fù)雜對(duì)象的數(shù)據(jù)。在一些實(shí)施例中,查詢可以通過(guò)標(biāo)記語(yǔ)言,諸如,XML和HTML來(lái)表示,該標(biāo)記語(yǔ)言可以根據(jù)模式文件(例如,XSD)進(jìn)行驗(yàn)證和理解。在一些實(shí)施例中,查詢可以表示為或者表達(dá)為復(fù)雜的數(shù)據(jù)結(jié)構(gòu),諸如JSON,該數(shù)據(jù)結(jié)構(gòu)可以根據(jù)模式文件進(jìn)行驗(yàn)證和理解。查詢可以包括適合于搜索數(shù)據(jù)庫(kù)以獲得所期待的滿足查詢的參數(shù)的記錄的指令;以及,在一些實(shí)施例中,合適的指令可以包括用于搜索的有一個(gè)或更多個(gè)集合的列表。在步驟804中,可以通過(guò)一個(gè)或更多個(gè)搜索管理器根據(jù)相關(guān)聯(lián)的查詢語(yǔ)言(例如,SQL)對(duì)從外部資源接收的查詢進(jìn)行解析,從而生成機(jī)器可讀查詢以被合適的節(jié)點(diǎn)(例如,搜索引導(dǎo)器、分析代理)執(zhí)行。在一些情況下,與查詢的軟件語(yǔ)言相關(guān)聯(lián)的模式文件可以設(shè)置有查詢,該查詢由生成查詢和所接受的標(biāo)準(zhǔn)的代碼生成或者該查詢是搜索管理器本地的。模式文件可以指令搜索管理器對(duì)搜索查詢進(jìn)行恰當(dāng)?shù)亟馕?。例如,如果通過(guò)一個(gè)或更多個(gè)標(biāo)記語(yǔ)言(例如,XML)準(zhǔn)備了搜索查詢,或者搜索查詢包括數(shù)據(jù)結(jié)構(gòu)(例如,JSON),然后模式文件(諸如,基于XSD的模式文件)可與與搜索查詢代碼或數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)以對(duì)XML代碼或JSON代碼中的每個(gè)標(biāo)記標(biāo)簽內(nèi)的數(shù)據(jù)進(jìn)行識(shí)別和/或驗(yàn)證。在核查806中,基于用戶所提供的查詢或應(yīng)用程序所生成的查詢搜索管理器可以確定是否應(yīng)該執(zhí)行對(duì)數(shù)據(jù)庫(kù)和/或查詢的一個(gè)或更多個(gè)字段進(jìn)行處理。字段處理的非限制性示例可以包括:地址標(biāo)準(zhǔn)化、確定鄰近邊界和同義詞的解釋等。在一些實(shí)施例中,系統(tǒng)的自動(dòng)或手動(dòng)過(guò)程可以確定并識(shí)別與搜索過(guò)程800相關(guān)聯(lián)的任意其他處理需要使用查詢的字段中包括的信息。在一些實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以自動(dòng)地確定并識(shí)別查詢的一個(gè)或更多個(gè)字段中的哪個(gè)字段需要進(jìn)行所期待的處理。在步驟808中,在核查806中系統(tǒng)確定了期待對(duì)一個(gè)或更多個(gè)字段進(jìn)行字段處理之后,相應(yīng)地搜索處理器可以將一個(gè)或更多個(gè)合適的字段處理技術(shù)應(yīng)用于所期待的字段。在步驟810中,搜索管理器可以構(gòu)建與搜索查詢相關(guān)聯(lián)的搜索引導(dǎo)器查詢。在一些實(shí)施例中,可以構(gòu)建搜索引導(dǎo)器查詢以便于系統(tǒng)的多個(gè)節(jié)點(diǎn)(例如,搜索管理器、搜索引導(dǎo)器、存儲(chǔ)節(jié)點(diǎn))根據(jù)任意合適的搜索查詢執(zhí)行計(jì)劃,諸如,基于堆棧的搜索對(duì)搜索引導(dǎo)器查詢進(jìn)行處理。應(yīng)當(dāng)理解的是,可以使用合適的二進(jìn)制格式或其他機(jī)器可讀緊湊格式對(duì)搜索查詢進(jìn)行編碼。在步驟812中,一個(gè)或更多個(gè)搜索管理器向一個(gè)或更多個(gè)搜索引導(dǎo)器發(fā)送一個(gè)或更多個(gè)搜索引導(dǎo)器查詢。在一些實(shí)施例中,搜索管理器可以自動(dòng)地確定哪些搜索引導(dǎo)器應(yīng)該接收搜索引導(dǎo)器查詢?nèi)缓髮⑦@些搜索引導(dǎo)器查詢發(fā)送至所識(shí)別的搜索引導(dǎo)器子集。在這樣的實(shí)施例中,搜索引導(dǎo)器可以被與某些數(shù)據(jù)集合預(yù)相關(guān)聯(lián),并且從系統(tǒng)界面接收的搜索查詢可以指定待被查詢的集合。因此,搜索管理器將搜索引導(dǎo)器查詢發(fā)送至與一個(gè)或更多個(gè)搜索查詢中指定的集合相關(guān)聯(lián)的搜索引導(dǎo)器。在步驟814中,搜索引導(dǎo)器將搜索結(jié)果返回至相應(yīng)的搜索管理器。在一些實(shí)施例中,搜索結(jié)果可以同步地被返回;以及,在一些實(shí)施例中,搜索結(jié)果可以異步地被返回。同步可以表示這樣的實(shí)施例:搜索管理器可以阻止結(jié)果或停止操作,而等待來(lái)自特定搜索引導(dǎo)器的搜索引導(dǎo)器結(jié)果。異步可以表示這樣的實(shí)施例:搜索管理器可以同時(shí),即,以并行方式接收來(lái)自多個(gè)搜索引導(dǎo)器的結(jié)果,而不需要阻止其他結(jié)果或停止其他操作。在接收到來(lái)自搜索引導(dǎo)器的搜索結(jié)果后,搜索管理器可以基于搜索引導(dǎo)器所返回的記錄得分將從各個(gè)搜索引導(dǎo)器接收到的結(jié)果整理成一個(gè)或更多個(gè)結(jié)果列表。在核查816中,搜索管理器可以基于搜索查詢中的指示確定是否應(yīng)該執(zhí)行搜索管理器所編譯的搜索結(jié)果的其他分析處理。在一些情況下,該指示可以包括在用戶的搜索查詢中。在一些實(shí)施例中,系統(tǒng)利用搜索查詢中包括的信息確定分析處理是否是必要的。在一些實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以自動(dòng)地確定需要進(jìn)行所期望的分析處理的字段。搜索查詢可以在能夠?qū)⒅甘竞团c搜索查詢相關(guān)的一起傳送的軟件可編程語(yǔ)言中進(jìn)行構(gòu)建。一些編程語(yǔ)言,諸如,標(biāo)記語(yǔ)言,可以使用被嵌入到代碼中的元數(shù)據(jù)來(lái)識(shí)別多種類(lèi)型的數(shù)據(jù),諸如,表示是否應(yīng)該執(zhí)行分析的布爾值的字段,或者表示執(zhí)行待執(zhí)行的特定分析模塊和/或寄存特定分析模塊的分析代理模塊的更復(fù)雜的用戶定義字段。一些編程語(yǔ)言,諸如,javascript或PHP,可以引用所存儲(chǔ)的、包含有用于識(shí)別是否執(zhí)行分析的代碼的計(jì)算機(jī)文件,該編程語(yǔ)言可以是待執(zhí)行的特定分析模塊和/或寄存特定分析模塊的分析代理模塊的更復(fù)雜的用戶定義字段。在步驟818中,如果在核查816中系統(tǒng)確定了需要進(jìn)行處理,則一個(gè)或更多個(gè)分析代理將一個(gè)或更多個(gè)合適的處理技術(shù)應(yīng)用于一個(gè)或更多個(gè)結(jié)果列表。在一種或更多種實(shí)施例中,合適的技術(shù)包括:將幾個(gè)記錄卷到更復(fù)雜的記錄中;對(duì)結(jié)果執(zhí)行一個(gè)或更多個(gè)分析,和/或確定關(guān)于記錄之間的關(guān)系的信息等。分析代理然后將一個(gè)或更多個(gè)經(jīng)處理的結(jié)果列表返回至一個(gè)或更多個(gè)搜索管理器。在步驟820中,一個(gè)或更多個(gè)搜索管理器可以對(duì)一個(gè)或更多個(gè)結(jié)果列表解壓縮并且發(fā)送至發(fā)起查詢的系統(tǒng)。圖9是描述搜索引導(dǎo)器功能900的流程圖,包括步驟902、904、908、910和912以及核查906。在步驟902中,搜索管理器向一個(gè)或更多個(gè)搜索引導(dǎo)器發(fā)送查詢。在步驟904,搜索引導(dǎo)器針對(duì)其加載的分區(qū)執(zhí)行查詢,生成候選結(jié)果集合。在一種或更多種實(shí)施例中,步驟904可以包括一個(gè)或更多個(gè)索引搜索。在一種或更多種實(shí)施例中,搜索引導(dǎo)器使用一個(gè)或更多個(gè)模式中的信息來(lái)執(zhí)行查詢。在核查906中,搜索引導(dǎo)器基于所指定的查詢確定搜索引導(dǎo)器查詢中是否已經(jīng)請(qǐng)求了評(píng)分。評(píng)分可以在搜索管理器所接收的搜索查詢中表示。如果請(qǐng)求了評(píng)分,則在步驟908中,搜索引導(dǎo)器對(duì)候選結(jié)果進(jìn)行評(píng)分。默認(rèn)的評(píng)分預(yù)支可以在模式中進(jìn)行定義,或者可以包括在步驟902中搜索管理器所發(fā)送的搜索引導(dǎo)器查詢中。在一種或更多種實(shí)施例中,搜索引導(dǎo)器可以使用特定的評(píng)分算法進(jìn)行字段級(jí)別的初始評(píng)分,所述特定的評(píng)分算法中的默認(rèn)值可以通過(guò)一個(gè)或更多個(gè)其他評(píng)分算法進(jìn)行覆寫(xiě)??梢栽谒阉鞑樵兒?或搜索引導(dǎo)器查詢中定義或識(shí)別出評(píng)分算法,并且可以相應(yīng)地由搜索引導(dǎo)器執(zhí)行該評(píng)分算法。搜索引導(dǎo)器可以基于這些字段評(píng)分給出記錄的綜合得分。在一些實(shí)施例中,搜索引導(dǎo)器可以應(yīng)用一個(gè)或更多個(gè)聚集的評(píng)分方法,這些聚集的評(píng)分方法可以通過(guò)將一個(gè)或更多個(gè)字段得分或其他聚集的得分聚集起來(lái)以計(jì)算得分。在步驟910中,然后搜索引導(dǎo)器使用所述得分對(duì)候選結(jié)果集中的任意剩余的記錄進(jìn)行排序。在步驟912中,搜索引導(dǎo)器將候選結(jié)果集返回至搜索管理器,其中,所返回的結(jié)果的數(shù)量受到步驟902中搜索管理器所發(fā)送的查詢中所請(qǐng)求的大小的限制。圖10是描述集合分區(qū)1000的流程圖,包括步驟1002、1004、1006、1010和1012以及執(zhí)行核查1008。在步驟1002中,將一個(gè)或更多個(gè)集合饋送到一個(gè)或更多個(gè)分區(qū)器中。所述集合結(jié)合一個(gè)或更多個(gè)模式進(jìn)行饋送使得一個(gè)或更多個(gè)分區(qū)器可以了解如何操作一個(gè)或更多個(gè)集合中的記錄。在步驟1004中,對(duì)一個(gè)或更多個(gè)集合中的記錄進(jìn)行分段。在核查1008中,系統(tǒng)針對(duì)所給定的數(shù)據(jù)集合核查模式并且確定是否分區(qū)中的每一個(gè)字段被分區(qū)器所索引。索引可以是任意公知數(shù)據(jù)庫(kù)中所使用的字段的任意合適的索引示例,諸如,日期索引或模糊索引(例如,語(yǔ)音的)。在步驟1010中,如果在核查1008中系統(tǒng)確定分區(qū)器索引了分區(qū)中的任意子段,則分區(qū)器基于模式中的索引定義來(lái)索引分區(qū)。在核查1012中,系統(tǒng)針對(duì)所給定的數(shù)據(jù)集合核查模式并且確定是否這些分區(qū)被分區(qū)所壓縮。在步驟1014中,如果在核查1012中系統(tǒng)確定分區(qū)器壓縮所述分區(qū),則分區(qū)器使用模式中所指定的壓縮方法對(duì)字段和記錄進(jìn)行壓縮,所述壓縮方法可以是適用于充分地壓縮分區(qū)并且還能夠進(jìn)行字段級(jí)別的解壓縮的任意技術(shù)。在步驟1016中,系統(tǒng)對(duì)適合于將分區(qū)分分配至一個(gè)或更多個(gè)搜索引導(dǎo)器的分區(qū)評(píng)分。集合分區(qū)1000可以創(chuàng)建初始負(fù)載、重新加載大數(shù)據(jù)集合或替換大數(shù)據(jù)集合。分區(qū)器可以將唯一的記錄ID指定給集合中的每個(gè)記錄并且可以將版本號(hào)指定給經(jīng)分區(qū)的集合,并且還可以將所需要的集合模式與一個(gè)或更多個(gè)SM和一個(gè)或更多個(gè)SC所使用的分區(qū)集合版本關(guān)聯(lián)起來(lái)。在第二實(shí)施例中,可以通過(guò)一個(gè)或更多個(gè)合適的界面(包括合適的查詢界面)將新記錄添加至集合。查詢界面可以支持經(jīng)由查詢將結(jié)果集返回,并且還可以支持將與集合版本相關(guān)聯(lián)的集合模式返回。此外,搜索界面可以使得一個(gè)或更多個(gè)用于能夠使用該集合模式來(lái)通過(guò)將新記錄經(jīng)由搜索界面提交至搜索管理器的方式將該新記錄添加至集合。然后,搜索管理器可以將該新記錄分配至合適的搜索引導(dǎo)器以將該新記錄添加至集合。在一些實(shí)施例中,搜索管理器可以確保給定分區(qū)的多個(gè)副本之間的最終一致性,并且可以保證非易失性存儲(chǔ)器的數(shù)據(jù)的持久性以確保在系統(tǒng)故障之后仍能夠確保數(shù)據(jù)的可獲得性。在一種或更多種實(shí)施例中,可以以類(lèi)似的方式刪除記錄。查詢的結(jié)果集合可以包括對(duì)于每個(gè)記錄的隱晦的、唯一ID。這個(gè)唯一ID可以對(duì)必要的信息進(jìn)行編碼以唯一地識(shí)別集合的給定版本中的指定記錄,并且可以包括一個(gè)或更多個(gè)下列項(xiàng):集合名稱(chēng)、分區(qū)集版本以及唯一的記錄ID等。通過(guò)合適的權(quán)限,查詢接口可以接收請(qǐng)求來(lái)將與唯一的記錄ID相對(duì)應(yīng)的記錄刪除。該記錄可能不會(huì)被立即物理刪除,可能被標(biāo)記為刪除,還可能不再包括在未來(lái)的答案集合中。在一種或更多種實(shí)施例中,可以將新集合模式或刪除請(qǐng)求提交至查詢界面以相應(yīng)地創(chuàng)建新集合或者將現(xiàn)有的集合移除。通過(guò)這種方式創(chuàng)建的新集合開(kāi)始可以為空,其中可以使用任意合適的機(jī)制,包括上述機(jī)制來(lái)將記錄添加至該新集合中。圖11是描述分區(qū)加載1100的流程圖,包括步驟1102、1104、1106、1108、1112、1114、1116、1118和1120以及執(zhí)行核查1110。在步驟1102中,監(jiān)管器確定待加載至一個(gè)或更多個(gè)搜索引導(dǎo)器的一個(gè)或更多個(gè)分區(qū)。在步驟1104中,監(jiān)管器向依賴管理器發(fā)送配置請(qǐng)求,并且依賴管理器返回與待被加載至一個(gè)或更多個(gè)搜索引導(dǎo)器的一個(gè)或更多個(gè)分區(qū)相關(guān)聯(lián)的一個(gè)或更多個(gè)配置包。在步驟1106中,監(jiān)管器確定分區(qū)待被加載到哪些引導(dǎo)器。在一種或更多種實(shí)施例中,監(jiān)管器確定將使用哪一個(gè)或哪些搜索引導(dǎo)器以提供所期望的故障轉(zhuǎn)移能力。在一種或更多種實(shí)施例中,監(jiān)管器確定將使用哪一個(gè)或哪些搜索引導(dǎo)器以使得一個(gè)或更多個(gè)群集所承擔(dān)的工作負(fù)載能夠得到更好的平衡。在步驟1108中,監(jiān)管器向與包括一個(gè)或更多個(gè)搜索引導(dǎo)器的節(jié)點(diǎn)相關(guān)聯(lián)的一個(gè)或更多個(gè)節(jié)點(diǎn)管理器發(fā)送命令。在一種或更多種實(shí)施例中,該命令告知一個(gè)或更多個(gè)節(jié)點(diǎn)管理器等待來(lái)自監(jiān)管器的其他指令以用于將分區(qū)加載到一個(gè)或更多個(gè)搜索引導(dǎo)器。在其他實(shí)施例中,該命令可以包括與被加載至一個(gè)或更多個(gè)搜索引導(dǎo)器的一個(gè)或更多個(gè)分區(qū)相關(guān)聯(lián)的一個(gè)或更多個(gè)配置包。在一個(gè)或更多個(gè)其他實(shí)施例中,該命令可以包括用于準(zhǔn)備一個(gè)或更多個(gè)搜索引導(dǎo)器以將新分區(qū)加載至存儲(chǔ)器的指令。在步驟1110中,一個(gè)或更多個(gè)節(jié)點(diǎn)管理器分配加載分區(qū)所需要的任意節(jié)點(diǎn)資源。在核查1112中,一個(gè)或更多個(gè)節(jié)點(diǎn)管理器判斷加載一個(gè)或更多個(gè)分區(qū)是否需要對(duì)一個(gè)或更多個(gè)軟件或數(shù)據(jù)進(jìn)行更新。在步驟1114中,如果一個(gè)或更多個(gè)節(jié)點(diǎn)管理器確定需要對(duì)一個(gè)或更多個(gè)軟件或數(shù)據(jù)進(jìn)行更新,則一個(gè)或更多個(gè)節(jié)點(diǎn)管理器從適合于存儲(chǔ)且分配一個(gè)或更多個(gè)軟件更新的一個(gè)或更多個(gè)節(jié)點(diǎn)中檢索出一個(gè)或更多個(gè)軟件和數(shù)據(jù)更新。一個(gè)或更多個(gè)節(jié)點(diǎn)管理器于是開(kāi)始安裝一個(gè)或更多個(gè)所檢索出的軟件或數(shù)據(jù)更新。在步驟1116中,一個(gè)或更多個(gè)節(jié)點(diǎn)管理器從適合于存儲(chǔ)且分配一個(gè)或更多個(gè)分區(qū)的一個(gè)或更多個(gè)節(jié)點(diǎn)中檢索出一個(gè)或更多個(gè)分區(qū)。在一種或更多種實(shí)施例中,所檢索出的分區(qū)之前已經(jīng)被索引并且被存儲(chǔ),并且一旦所述分區(qū)被檢索到就將其加載至與一個(gè)或更多個(gè)引導(dǎo)器相關(guān)聯(lián)的存儲(chǔ)器中。在另一實(shí)施例中,所檢索出的分區(qū)沒(méi)有被索引或者在被檢索之間沒(méi)有被壓縮,并且在被加載至與一個(gè)或更多個(gè)搜索引導(dǎo)器相關(guān)聯(lián)的存儲(chǔ)器之前被一個(gè)或更多個(gè)搜索引導(dǎo)器索引或壓縮。在步驟1118中,一個(gè)或更多個(gè)搜索引導(dǎo)器向監(jiān)管器發(fā)送心跳,并且監(jiān)管器確定一個(gè)或更多個(gè)搜索引導(dǎo)器已經(jīng)準(zhǔn)備好用于系統(tǒng)中。在步驟1120中,監(jiān)管器告知一個(gè)或更多個(gè)搜索管理器:一個(gè)或更多個(gè)搜索引導(dǎo)器準(zhǔn)備好接收搜索請(qǐng)求。圖12A示出了集合1202和集合1202的更新(表示為,集合’1210)。集合1202可以劃分為至少第一分區(qū)1204至第n分區(qū)1206,而集合1210可以劃分為至少第一分區(qū)’1212至第n分區(qū)’1214。圖12B示出了具有第一組第一分區(qū)1204至第n分區(qū)1206的第一搜索節(jié)點(diǎn)1220以及具有第二組第一分區(qū)1204至第n分區(qū)1206的第二搜索節(jié)點(diǎn)1230,其中,第一搜索節(jié)點(diǎn)1220和第二搜索節(jié)點(diǎn)1230都可以連接至至少一個(gè)搜索管理器1240。此外,第一搜索節(jié)點(diǎn)1220、第二搜索節(jié)點(diǎn)1230和搜索管理器1240可以連接至一個(gè)或更多個(gè)監(jiān)管器1250。圖12C示出了由于來(lái)自監(jiān)管器1250的命令而導(dǎo)致與搜索管理器1240斷開(kāi)的第一搜索節(jié)點(diǎn)1220,而第二搜索節(jié)點(diǎn)1230仍然保持與搜索管理器940的連接。在一種或更多種實(shí)施例中,這可以使得在第一搜索節(jié)點(diǎn)1220正在更新時(shí),搜索管理器1240能夠?qū)?202中的記錄運(yùn)行搜索。圖12D示出了被升級(jí)成包括集合’1210的第一搜索節(jié)點(diǎn)1220。圖12E示出了由于來(lái)自監(jiān)管器1250的命令而導(dǎo)致與搜索管理器1240連接的第一搜索節(jié)點(diǎn)1220,該第一搜索節(jié)點(diǎn)920具有第一分區(qū)’1212至第n分區(qū)’1214。監(jiān)管器1250然后發(fā)送命令以將第二搜索節(jié)點(diǎn)1230與搜索管理器1240斷開(kāi)。在一種或更多種實(shí)施例中,這使得搜索管理器1240能夠?qū)稀?210中的記錄運(yùn)行搜索。圖12F示出了被更新成包括集合’1210的第二搜索節(jié)點(diǎn)1230。圖12G示出了具有第一組第一分區(qū)’1212至第n分區(qū)’1214的第一搜索節(jié)點(diǎn)1220以及具有第二組第一分區(qū)’1212至第n分區(qū)’1214的第二搜索節(jié)點(diǎn)1230,其中,由于來(lái)自監(jiān)管器1250的命令使得再次建立了第二搜索節(jié)點(diǎn)1230與搜索管理器1240之間的連接。這使得搜索管理器1240能夠?qū)Φ谝凰阉鞴?jié)點(diǎn)1220或者第二搜索節(jié)點(diǎn)1230中的集合’1210中的記錄運(yùn)行搜索。圖13示出了搜索節(jié)點(diǎn)集群1300,具有第一搜索節(jié)點(diǎn)1302、第二搜索節(jié)點(diǎn)1304、第三搜索節(jié)點(diǎn)1306、第四搜索節(jié)點(diǎn)1308、對(duì)于第一集合的第一分區(qū)1310、第二分區(qū)1312、第三分區(qū)1314和第四分區(qū)1316,以及對(duì)于第二集合的第一分區(qū)1320、第二分區(qū)1322、第三分區(qū)1324和第四分區(qū)1326。搜索節(jié)點(diǎn)群集1300可以被布置成能夠提供所期望的級(jí)別的分區(qū)冗余性,其中,可以相應(yīng)地向系統(tǒng)添加一個(gè)或更多個(gè)搜索節(jié)點(diǎn)或者將一個(gè)或更多個(gè)搜索節(jié)點(diǎn)從系統(tǒng)中移除。此外,一個(gè)或更多個(gè)搜索節(jié)點(diǎn)中所包括的分區(qū)隨著時(shí)間而異,并且這些分區(qū)可以通過(guò)搜索節(jié)點(diǎn)的節(jié)點(diǎn)管理器遵循與分區(qū)加載1100類(lèi)似的過(guò)程來(lái)加載或者卸載。當(dāng)更新或變更搜索節(jié)點(diǎn)群集1300中的分區(qū)時(shí),可以使用類(lèi)似于圖12A、12B、12C、12D、12E、12F以及12G可以使用的方法。圖14示出了連接圖示1400,該連接圖示1400具有:線型A1402、線型B1404、線型C1406、線型D1408、第一網(wǎng)絡(luò)分段1410、第二網(wǎng)絡(luò)分段1412、第三網(wǎng)絡(luò)分段1414、第一搜索管理器1420、第n搜索管理器1422、第一分析代理1430、第n分析代理1432、第一搜索引導(dǎo)器1440、第n搜索引導(dǎo)器1442、分區(qū)器1450、第一依賴管理器1460、第n依賴管理器1462、第一監(jiān)管器1470以及第n監(jiān)管器1472。在一種或更多種實(shí)施例中,線型A1402可以表示具有第一帶寬層和第一延遲層的連接,線型B1404可以表示具有第二帶寬層和第一延遲層的連接,線型C1406可以表示具有第三帶寬層和第二延遲層的連接,以及線型D1408可以表示具有第四帶寬層和第二延遲層的連接。在一種或更多種實(shí)施例中,第一帶寬層可以相對(duì)于第二帶寬層具有更大的帶寬,第二帶寬層可以相對(duì)于第三帶寬層具有更大的帶寬,第三帶寬層可以相對(duì)于第四帶寬層具有更大的帶寬,以及第一帶寬層可以相對(duì)于第二帶寬層具有較低的延遲。在一種或更多種實(shí)施例中,可以使用任意合適的連接(包括,線型A1402、線型B1404以及線型C1406)將第一網(wǎng)絡(luò)分段1410連接至外部服務(wù)器。還可以使用線型A1402連接將第一網(wǎng)絡(luò)分段1410鏈接至第一群集,其中,第一群集包括第一搜索管理器1420至第n搜索管理器1422。在一種或更多種實(shí)施例中,可以使用線型A1402連接將第二網(wǎng)絡(luò)分段1412連接至第一群集,其中,第一群集包括第一搜索管理器1420至第n搜索管理器1422。還可以使用線型A1402連接將第二網(wǎng)絡(luò)分段1412連接至第二群集,還可以使用線型B1404連接將第二網(wǎng)絡(luò)分段1412鏈接至第三群集,還可以使用線型D1408連接將第二網(wǎng)絡(luò)分段1412連接至第四群集以及還可以使用線型D1408連接將第二網(wǎng)絡(luò)分段1412連接至第五群集,其中,第二群集包括第二分析代理1430至第n分析代理1432,第三群集包括第一搜索引導(dǎo)器1440至第n搜索引導(dǎo)器1442,第四群集包括第一依賴管理器1460至第n依賴管理器1460,以及第五群集包括第一監(jiān)管器1470至第n監(jiān)管器1472。在一種或更多種實(shí)施例中,線型A1402的帶寬層可以足以確保包括第一搜索管理器1420至第n搜索管理器1422的第一群集能夠至少?gòu)陌ǖ谝凰阉饕龑?dǎo)器1440至第n搜索引導(dǎo)器1442的第三群集中的合適熟練的搜索引導(dǎo)器接收合適量的信息。線型A1402的延遲層可以足夠低以便于至少使得系統(tǒng)能夠足夠響應(yīng)地執(zhí)行所期待的數(shù)量的查詢。在一種或更多種實(shí)施例中,線型B1404的帶寬層可以足以確保包括第一搜索引導(dǎo)器1440至第n搜索引導(dǎo)器1442的第三群集中的搜索引導(dǎo)器能夠至少返回所期望大小的結(jié)果。線型B1404的延遲層可以足夠低以便于至少使得系統(tǒng)能夠足夠響應(yīng)地執(zhí)行所期待的數(shù)量的查詢。在一種或更多種實(shí)施例中,線型D1408的帶寬層可以足以確保包括第依賴管理器1460至第n依賴管理器1462的第四群集中的依賴管理器能夠至少接收所期待數(shù)量的包查詢并且返回所期待數(shù)量的包。此外,線型D1408的帶寬層可以足以確保包括第一監(jiān)管器1470至第n監(jiān)管器1472的第五群集中的監(jiān)管器能夠至少對(duì)所期待數(shù)量的節(jié)點(diǎn)和模塊進(jìn)行監(jiān)視和管理。線型D1408的延遲層可以足夠低以便于至少使得系統(tǒng)能夠在所期望的時(shí)間段內(nèi)被管理并且提供所期望的監(jiān)視頻率。在一種或更多種實(shí)施例中,可以使用線型C1406連接將第三網(wǎng)絡(luò)分段1414連接至第三群集,可以使用線型D1408連接將第三網(wǎng)絡(luò)分段1414連接至第四群集,可以使用線型D1408連接將第三網(wǎng)絡(luò)分段1414連接至第五群集,以及可以使用線型C1406連接將第三網(wǎng)絡(luò)分段1414連接至第六群集,其中,第三群集包括第一搜索引導(dǎo)器1440至第n搜索引導(dǎo)器1442,第四群集包括第一依賴管理器1460至第n依賴管理器1460,第五群集包括第一監(jiān)管器1470至第n監(jiān)管器1472,以及第六群集包括一個(gè)或更多個(gè)分區(qū)器1450。在一種或更多種實(shí)施例中,線型B1404的帶寬層可以足以確保一個(gè)或更多個(gè)分區(qū)器1450能夠至少訪問(wèn)所期望的集合并且在期望的時(shí)間段內(nèi)輸出所期望數(shù)量的分區(qū)。此外,線型B1404的帶寬層可以足以確保包括第一搜索管理器1420至第n搜索管理器1422的第一群集能夠至少接收在所期望的時(shí)間內(nèi)下載所期望數(shù)量的分區(qū)。線型B1404的延遲層可以足夠低以便于至少使得節(jié)點(diǎn)使用該連接能夠在所期望的時(shí)間段內(nèi)對(duì)系統(tǒng)命令做出反應(yīng),并且使得系統(tǒng)能夠提供所期望的監(jiān)視頻率。在一種或更多種實(shí)施例中,線型D1408的帶寬層可以足以確保包括第依賴管理器1460至第n依賴管理器1462的第四群集中的依賴管理器能夠至少接收所期待數(shù)量的包查詢并且返回所期待數(shù)量的包。此外,線型D1408的帶寬層可以足以確保包括第一監(jiān)管器1470至第n監(jiān)管器1472的第五群集中的監(jiān)管器能夠至少對(duì)所期待數(shù)量的節(jié)點(diǎn)和模塊進(jìn)行監(jiān)視和管理。線型D1408的延遲層可以足夠低以便于使得系統(tǒng)能夠在所期望的時(shí)間段內(nèi)被管理并且提供所期望的監(jiān)視頻率。在一種或更多種實(shí)施例中,包括第一監(jiān)管器1470至第n監(jiān)管器1472的第五群集可以以任何合適數(shù)量的節(jié)點(diǎn)與一個(gè)或更多個(gè)節(jié)點(diǎn)管理器進(jìn)行線型D1408連接。在一個(gè)或更多個(gè)其他實(shí)施例中,包括一個(gè)或更多個(gè)其他類(lèi)型的模塊的其他群集可以被連接至第一網(wǎng)絡(luò)分段1410、第二網(wǎng)絡(luò)分段1412和/或第三網(wǎng)絡(luò)分段1414,其中,該連接可以包括:線型A1402連接、線型B1404連接、線型C1406連接和/或線型D1408連接。圖15示出了容錯(cuò)架構(gòu)1500,該容錯(cuò)架構(gòu)1500包括:第一監(jiān)管器1502、第n監(jiān)管器1504、第一依賴節(jié)點(diǎn)1510、依賴節(jié)點(diǎn)管理器1512、依賴管理器1514、第n依賴節(jié)點(diǎn)1520、第n依賴節(jié)點(diǎn)管理器1522、第n依賴管理器1524、第一節(jié)點(diǎn)1530、節(jié)點(diǎn)管理器1532、模塊1534、第n節(jié)點(diǎn)1540、第n節(jié)點(diǎn)管理器1542以及第n模塊1544。在一些實(shí)施例中,諸如,圖15中的示例性系統(tǒng)1500可以在邏輯上將節(jié)點(diǎn)組織成多個(gè)群集。然而,根據(jù)需要,一些實(shí)施例可以具有一個(gè)邏輯群集。在一種或更多種實(shí)施例中,第一群集可以包括第一監(jiān)管器1502至第n監(jiān)管器1504。每個(gè)監(jiān)管器1502可以包括網(wǎng)絡(luò)接口部件(諸如,網(wǎng)絡(luò)接口卡),該網(wǎng)絡(luò)接口部件適用于便于監(jiān)管器1502與第二群集中的一個(gè)或更多個(gè)節(jié)點(diǎn)之間進(jìn)行通信。第二群集可以包括第一依賴節(jié)點(diǎn)1510至第n依賴節(jié)點(diǎn)1520,其中,第一依賴節(jié)點(diǎn)1510可以包括節(jié)點(diǎn)管理器1512和依賴管理器1514,以及第n依賴節(jié)點(diǎn)1520可以包括第n節(jié)點(diǎn)管理器1522和第n依賴管理器1524。第一群集中的監(jiān)管器可以附加地具有任意合適數(shù)量的連接,這些任意合適數(shù)量的連接適合于包括第一節(jié)點(diǎn)1530至第n節(jié)點(diǎn)1540的第三群集中的一個(gè)或更多個(gè)節(jié)點(diǎn)之間進(jìn)行通信,其中,第一節(jié)點(diǎn)1530可以包括節(jié)點(diǎn)管理器1532和任意合適數(shù)量的模塊1534,以及第n節(jié)點(diǎn)1540可以包括第n節(jié)點(diǎn)管理器1542和任意合適數(shù)量的第n模塊1544。一個(gè)或更多個(gè)監(jiān)管器1502可以從一個(gè)或更多個(gè)依賴節(jié)點(diǎn)管理器1512、一個(gè)或更多個(gè)依賴管理器1514以及任意合適數(shù)量的節(jié)點(diǎn)管理器1532和任意合適數(shù)量的模塊1534接收心跳(hearbeat)。在一種或更多種實(shí)施例中,這可以使得一個(gè)或更多個(gè)監(jiān)管器1502能夠?qū)Ψ植际接?jì)算系統(tǒng)中的一個(gè)或更多個(gè)節(jié)點(diǎn)和/或模塊的狀態(tài)進(jìn)行監(jiān)視。此外,監(jiān)管器1502可以將一個(gè)或更多個(gè)合適的命令傳送至任意合適數(shù)量的依賴節(jié)點(diǎn)管理器1512以及任意合適數(shù)量的節(jié)點(diǎn)管理器。在一種或更多種實(shí)施例中,當(dāng)在一個(gè)或更多個(gè)節(jié)點(diǎn)1530上安裝一個(gè)或更多個(gè)模塊1534時(shí),監(jiān)管器1502可以向一個(gè)或更多個(gè)依賴節(jié)點(diǎn)1510請(qǐng)求配置包。圖16是根據(jù)示例性實(shí)施例的示出了節(jié)點(diǎn)1600的配置的圖示。圖16中的節(jié)點(diǎn)1600可以包括處理器執(zhí)行節(jié)點(diǎn)管理器1602軟件模塊和任意數(shù)量的附加軟件模塊1610、1612,這些軟件模塊可以包括第一軟件模塊1610至第n軟件模塊1612。軟件模塊可以包括任意系統(tǒng)模塊,包括,搜索管理器、搜索引導(dǎo)器、分析代理、監(jiān)管器以及依賴管理器。根據(jù)圖16中的示例性配置,節(jié)點(diǎn)1600可以經(jīng)由數(shù)據(jù)網(wǎng)絡(luò)通信地耦接至執(zhí)行監(jiān)管器模塊的第二節(jié)點(diǎn),或監(jiān)管器節(jié)點(diǎn)。通過(guò)節(jié)點(diǎn)1600安裝和執(zhí)行的節(jié)點(diǎn)管理器1602也可以被配置成與監(jiān)管器節(jié)點(diǎn)通信,并且還可以被配置成對(duì)節(jié)點(diǎn)上安裝的軟件模塊1610、1612(包括第一模塊1610至第n模塊1612)進(jìn)行監(jiān)視。節(jié)點(diǎn)管理器1602可以執(zhí)行從監(jiān)管器接收的任意合適的命令,并且還可以報(bào)告下列項(xiàng)的一個(gè)或更多個(gè)的狀態(tài):節(jié)點(diǎn)1600、節(jié)點(diǎn)管理器1602以及第一模塊1610至第n模塊1612。第一模塊1610可以鏈接至一個(gè)或更多個(gè)監(jiān)管器并且可以連接至節(jié)點(diǎn)中的一個(gè)或更多個(gè)模塊,其中,節(jié)點(diǎn)中的其他模塊的類(lèi)型可以不同于第一模塊1610的類(lèi)型或者與第一模塊1610的類(lèi)型相同。此外,第一模塊1610可以鏈接至系統(tǒng)中的一個(gè)或更多個(gè)其他模塊、節(jié)點(diǎn)或群集。圖17是故障處理1700的流程圖。監(jiān)管器對(duì)系統(tǒng)中的所有數(shù)據(jù)集合中的定義和配置進(jìn)行維護(hù),所述定義和配置可以包括每個(gè)集合的設(shè)置,該設(shè)置指示:對(duì)于每個(gè)分區(qū)需要多少冗余副本、在將失效部件移動(dòng)至另一節(jié)點(diǎn)之前嘗試了多少次重啟過(guò)程等。監(jiān)管器還對(duì)節(jié)點(diǎn)管理器所提供的一系列可用節(jié)點(diǎn)以及這些節(jié)點(diǎn)的資源進(jìn)行維護(hù)。根據(jù)該信息,監(jiān)管器通過(guò)將所需要的模塊映射至可用節(jié)點(diǎn)來(lái)計(jì)算所期望的系統(tǒng)狀態(tài),同時(shí)仍然遵配置設(shè)置。故障處理1700開(kāi)始于監(jiān)管器檢測(cè)模塊故障1702,其中,一個(gè)或更多個(gè)監(jiān)管器可以通過(guò)將實(shí)際系統(tǒng)狀態(tài)與所期望的系統(tǒng)狀態(tài)進(jìn)行比較來(lái)檢測(cè)一個(gè)或更多個(gè)模塊的故障。在一種或更多種實(shí)施例中,當(dāng)來(lái)自節(jié)點(diǎn)管理器或系統(tǒng)模塊的一個(gè)或更多個(gè)心跳信號(hào)不再被檢測(cè)到時(shí),監(jiān)管器可以檢測(cè)到故障。在一種或更多種實(shí)施例匯總,來(lái)自一個(gè)或更多個(gè)模塊的心跳信號(hào)可以包括關(guān)于一個(gè)或更多個(gè)模塊的狀態(tài)信息,該狀態(tài)信息可以由一個(gè)或更多個(gè)監(jiān)管器解釋。監(jiān)管器可以對(duì)數(shù)據(jù)集合的定義和與數(shù)據(jù)集合相關(guān)聯(lián)的配置設(shè)置進(jìn)行存儲(chǔ)。監(jiān)管器還可以對(duì)由節(jié)點(diǎn)管理器所報(bào)告的、關(guān)于可獲得的系統(tǒng)資源的信息進(jìn)行存儲(chǔ)。所述配置信息可以包括每個(gè)集合的設(shè)置,所述每個(gè)集合的設(shè)置指示:各個(gè)分區(qū)所需要的冗余拷貝的數(shù)量,在將故障部件移動(dòng)至其他節(jié)點(diǎn)之前嘗試重啟該故障部件的次數(shù)等。根據(jù)所有該信息,監(jiān)管器通過(guò)將所需要的模塊映射至可用節(jié)點(diǎn)來(lái)檢索所期望的系統(tǒng)狀態(tài),同時(shí)仍然遵配置設(shè)置。所有該信息被表示為JSON對(duì)象,該JSON對(duì)象可以被存儲(chǔ)為磁盤(pán)上的JSON文件,或者被存儲(chǔ)在IMDB內(nèi)的預(yù)定義的數(shù)據(jù)集合中。然后,監(jiān)管器可以檢測(cè)相關(guān)聯(lián)的節(jié)點(diǎn)管理器是否起作用1704。如果與一個(gè)或更多個(gè)故障模塊相關(guān)聯(lián)的節(jié)點(diǎn)管理器根據(jù)需要或者根據(jù)現(xiàn)狀配置起作用,則在步驟1706中,監(jiān)管器可以將一個(gè)或更多個(gè)命令發(fā)送至節(jié)點(diǎn)管理器以指令節(jié)點(diǎn)管理器嘗試啟動(dòng)一個(gè)或更多個(gè)故障模塊。然后監(jiān)管器核查模塊是否恢復(fù)1708,以及如果模塊恢復(fù)則過(guò)程進(jìn)行至結(jié)束1710。在一些實(shí)施中,任意模塊的第一動(dòng)作目的在于經(jīng)由心跳信號(hào)向一個(gè)或更多個(gè)可用監(jiān)管器報(bào)告狀態(tài)。如果確定模塊功能沒(méi)有恢復(fù),則如心跳信號(hào)所指示的,監(jiān)管器可以確定重啟閾值是否已經(jīng)達(dá)到1712。嘗試閾值數(shù)是每個(gè)集合的配置設(shè)置,該嘗試閾值數(shù)可以由系統(tǒng)管理員進(jìn)行設(shè)置并且使用監(jiān)管器進(jìn)行存儲(chǔ)。監(jiān)管器確定模塊已經(jīng)出現(xiàn)故障并且應(yīng)該被重啟或者移動(dòng)至其他節(jié)點(diǎn)。如果還沒(méi)有達(dá)到嘗試次數(shù),則監(jiān)管器發(fā)送命令,節(jié)點(diǎn)管理器試圖重啟模塊1706。如果已經(jīng)達(dá)到閾值,則監(jiān)管器確定下一個(gè)合適的節(jié)點(diǎn)來(lái)放置模塊1714以及監(jiān)管器請(qǐng)求新的節(jié)點(diǎn)上的節(jié)點(diǎn)管理器以導(dǎo)入(stage)所有的模塊依賴并且啟動(dòng)當(dāng)前模塊1716。然后監(jiān)管器核查模塊是否恢復(fù)1718,以及如果模塊恢復(fù)則過(guò)程進(jìn)行至結(jié)束1710。如果模塊沒(méi)有被恢復(fù),則系統(tǒng)可以核查對(duì)于新節(jié)點(diǎn)的重啟閾值是否已經(jīng)達(dá)到1720。如果沒(méi)有達(dá)到閾值,則監(jiān)管器請(qǐng)求新的節(jié)點(diǎn)上的節(jié)點(diǎn)管理器以導(dǎo)入當(dāng)前模塊并且啟動(dòng)當(dāng)前模塊1716。否則,監(jiān)管器可以核查是否達(dá)到全局節(jié)點(diǎn)重試閾值1722。全局節(jié)點(diǎn)重試閾值也可以由系統(tǒng)管理員定義并且可以以腳本或者JSON或者相似的數(shù)據(jù)結(jié)構(gòu)對(duì)象的形式由監(jiān)管器存儲(chǔ)。如果沒(méi)有達(dá)到閾值,則監(jiān)管器確定下一個(gè)合適的節(jié)點(diǎn)來(lái)放置模塊1714并且試圖啟動(dòng)新的節(jié)點(diǎn)上的節(jié)點(diǎn)。如果已經(jīng)達(dá)到全局閾值,則系統(tǒng)可以發(fā)出指示模塊失效的警報(bào)1724。如果監(jiān)管器基于相應(yīng)的心跳檢測(cè)到相關(guān)聯(lián)的節(jié)點(diǎn)管理器沒(méi)有起作用,如缺乏心跳或者來(lái)自節(jié)點(diǎn)管理器的心跳指示故障狀態(tài),則監(jiān)管器選擇與具有故障節(jié)點(diǎn)管理器的節(jié)點(diǎn)相關(guān)聯(lián)的模塊1726。然后,監(jiān)管器確定下一個(gè)合適的節(jié)點(diǎn)以放置模塊1728。然后,監(jiān)管器請(qǐng)求新的節(jié)點(diǎn)上的節(jié)點(diǎn)管理器以導(dǎo)入并且啟動(dòng)當(dāng)前模塊1730。監(jiān)管器然后核查模塊是否恢復(fù)1732。如果模塊沒(méi)有被恢復(fù),則監(jiān)管器核查對(duì)于新節(jié)點(diǎn)的重啟閾值是否已經(jīng)達(dá)到1734。如果沒(méi)有達(dá)到閾值,則監(jiān)管器請(qǐng)求新的節(jié)點(diǎn)上的節(jié)點(diǎn)管理器以導(dǎo)入并且啟動(dòng)當(dāng)前模塊1730。如果達(dá)到閾值,則監(jiān)管器核查是否已經(jīng)達(dá)到全局節(jié)點(diǎn)重試閾值1736。如果沒(méi)有達(dá)到閾值,則監(jiān)管器確定下一個(gè)合適的節(jié)點(diǎn)來(lái)放置模塊1728并且試圖啟動(dòng)新的節(jié)點(diǎn)上的節(jié)點(diǎn)。如果已經(jīng)達(dá)到全局閾值,則系統(tǒng)可以發(fā)出指示模塊失效的警報(bào)1738。否則,如果模塊恢復(fù),則監(jiān)管器核查是否存儲(chǔ)將從故障節(jié)點(diǎn)移走的多個(gè)模塊1740。如所期望的狀態(tài)中所定義的那樣,如果節(jié)點(diǎn)發(fā)生故障,則監(jiān)管器被配置成將已經(jīng)在故障節(jié)點(diǎn)上運(yùn)行的所有服務(wù)移走。監(jiān)管器將計(jì)算在沒(méi)有故障節(jié)點(diǎn)1740的情況下的所期望的新的狀態(tài)并且需要相應(yīng)地將服務(wù)移走。在一些實(shí)現(xiàn)中,監(jiān)管器可以選擇與具有故障節(jié)點(diǎn)管理器的節(jié)點(diǎn)相關(guān)聯(lián)的模塊1726并且節(jié)點(diǎn)管理器試圖導(dǎo)入并啟動(dòng)模塊。如果監(jiān)管器確定不再有可以被移走的模塊,則過(guò)程可以結(jié)束1710。圖18示出了監(jiān)管器1802和依賴管理器1804的框圖連接1800。通常,監(jiān)管器1802可以監(jiān)視系統(tǒng)和/或執(zhí)行為系統(tǒng)維護(hù)操作狀態(tài)的進(jìn)程和任務(wù)。監(jiān)管器1802可以接受對(duì)系統(tǒng)進(jìn)行改變的任意合適的配置請(qǐng)求。可以通過(guò)執(zhí)行依賴管理器1804軟件模塊或監(jiān)管器1802軟件模塊的節(jié)點(diǎn)來(lái)處理軟件或數(shù)據(jù)配置,然而,可以從獨(dú)立的數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)提供可部署包。獨(dú)立的數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)是非易失性機(jī)器可讀存儲(chǔ)介質(zhì),該非易失性存儲(chǔ)介質(zhì)用于根據(jù)配置對(duì)準(zhǔn)備可部署包所使用的一個(gè)或更多個(gè)可發(fā)布文件進(jìn)行粗才能。根據(jù)一個(gè)實(shí)施例,依賴管理器1804可以用作非易失性機(jī)器可讀存儲(chǔ)介質(zhì),該非易失性機(jī)器可讀存儲(chǔ)介質(zhì)包括系統(tǒng)中的任意合適的軟件或數(shù)據(jù)的維護(hù)或配置。這些配置可以通過(guò)發(fā)布過(guò)程中的新數(shù)據(jù)、元數(shù)據(jù)或軟件更新來(lái)驅(qū)動(dòng)。依賴管理器1804可以在系統(tǒng)的一些過(guò)程所需要的配置中起作用。因此,依賴管理器1804可以直接地與監(jiān)管器1802連接以便于提供對(duì)于分區(qū)的合適的依賴,或者稱(chēng)之為,“包”、“配置”、“部件”和/或“文件”,這可以用于對(duì)任意合適的集合進(jìn)行更新。此外,監(jiān)管器1802可以被鏈接至一個(gè)或更多個(gè)依賴管理器1804并且可以附加地被鏈接至一個(gè)或更多個(gè)其他監(jiān)管器1802,其中,附加的監(jiān)管器1802可以被鏈接至系統(tǒng)中的其他部件。圖19是系統(tǒng)中的配置過(guò)程的流程圖1900。根據(jù)另一實(shí)施例,配置過(guò)程或維護(hù)過(guò)程可以包括包括關(guān)于模塊可以具有哪些依賴從而與模塊一起被部署的信息。所需要的文件可以從獨(dú)立的非易失性機(jī)器可讀存儲(chǔ)器或“數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)(dataframe)”中獲取。在一些實(shí)施例中,該數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)可以是來(lái)自系統(tǒng)架構(gòu)的外部,例如,在第三方供應(yīng)商提供軟件更新的情況下。合適的可部署包中的依賴可以包括不同類(lèi)型的數(shù)據(jù)、文件或軟件,這些不同類(lèi)型的數(shù)據(jù)、文件或軟件可以被直接地鏈接或包裹在正在本配置的模塊或分區(qū)的周?chē)?。該配置過(guò)程可以包括不同的步驟,步驟1902、1902、1904、1906、1908、1910以及1912。響應(yīng)于要求系統(tǒng)對(duì)數(shù)據(jù)或軟件部件進(jìn)行安裝或更新的請(qǐng)求,可以開(kāi)始配置過(guò)程1900。在第一步驟1902中,系統(tǒng)的處理可以自動(dòng)地對(duì)可以觸發(fā)配置過(guò)程1900的順序/步驟的狀況進(jìn)行檢測(cè)。在一些實(shí)施例中,在步驟1902中,系統(tǒng)的、執(zhí)行監(jiān)管器模塊的節(jié)點(diǎn)可以輪詢(poll)系統(tǒng)的部件,諸如,負(fù)責(zé)向監(jiān)管器報(bào)告健康更新或“狀態(tài)”的節(jié)點(diǎn)管理器軟件模塊。在這樣的實(shí)施例中,監(jiān)管器可以基于缺乏心跳(HB)信號(hào)來(lái)檢測(cè)整個(gè)系統(tǒng)的故障,該心跳信號(hào)是監(jiān)管器期望從系統(tǒng)配置中所定義的任意系統(tǒng)模塊接收。響應(yīng)于檢測(cè)到缺失HB信號(hào),監(jiān)管器于是可以觸發(fā)除了其他補(bǔ)救過(guò)程以外的配置過(guò)程1900。在一些實(shí)施例中,在步驟1902中,當(dāng)監(jiān)管器接收到對(duì)系統(tǒng)配置進(jìn)行一個(gè)或更多個(gè)改變的外部請(qǐng)求(諸如,對(duì)部件進(jìn)行更新或者到新的節(jié)點(diǎn)硬件的遷移)時(shí),系統(tǒng)的執(zhí)行監(jiān)管器模塊的節(jié)點(diǎn)可以觸發(fā)配置過(guò)程1900。在步驟1904中,監(jiān)管器可以向依賴管理器發(fā)送請(qǐng)求,以檢索出與待安裝到節(jié)點(diǎn)上的一個(gè)或更多個(gè)模塊相關(guān)聯(lián)的一個(gè)或更多個(gè)配置包??刹渴鸢鶕?jù)依賴管理器定義了滿足節(jié)點(diǎn)配置的每個(gè)文件和/或其他材料。可部署包可以包括所有所炫耀的依賴(包括對(duì)于合適的部署所必要的源信息和目的信息)并且可以包括配置或啟動(dòng)模塊所需要的模塊性能。如依賴管理器中所定義的,特定的依賴可以具有其自身的依賴,并且因此被稱(chēng)為依賴樹(shù)。在步驟1906中,監(jiān)管器可以向依賴管理器發(fā)送指令,以從存儲(chǔ)有部署包的數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)中獲取所需要的部署包。數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)可以是任意非易失性機(jī)器可讀存儲(chǔ)介質(zhì),該非易失性機(jī)器可讀存儲(chǔ)介質(zhì)可以位于與執(zhí)行依賴管理器的界定啊通信地耦接的任何合適的計(jì)算裝置上。在一些情況下,當(dāng)部署包被生成時(shí),該部署包包括正被發(fā)送的模塊的所有依賴,以及對(duì)部署包進(jìn)行恰當(dāng)?shù)夭渴鹚枰脑葱畔⒑湍康男畔?。部署包還可以包括對(duì)部署包進(jìn)行配置或啟動(dòng)所需要的一個(gè)或更多個(gè)模塊性能。部署包可以通過(guò)自動(dòng)或手動(dòng)過(guò)程來(lái)生成。在手動(dòng)示例中,系統(tǒng)管理源可以使用必要的文件和數(shù)據(jù)識(shí)別和/或創(chuàng)建部署包。在自動(dòng)示例中,監(jiān)管器或依賴管理器可以使用自動(dòng)識(shí)別的文件來(lái)自動(dòng)地識(shí)別和/或生成部署包,這個(gè)過(guò)程通常通過(guò)由依賴管理器生成的測(cè)試腳本來(lái)完成,從而使得安裝速度和分配速率高于人類(lèi)所能達(dá)到的安裝速度和分配速率。在步驟1908中,在依賴管理器接收到來(lái)自數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)的部署數(shù)據(jù)之后,依賴管理器可以將可部署包發(fā)送至執(zhí)行請(qǐng)求部署包的監(jiān)管器的節(jié)點(diǎn)。在步驟1910中,監(jiān)管器可以將可部署包發(fā)送至需要進(jìn)行配置的節(jié)點(diǎn)的節(jié)點(diǎn)管理器。在步驟1912中,節(jié)點(diǎn)管理器可以拷貝文件、對(duì)接收自監(jiān)管器的可部署包進(jìn)行安裝和/或執(zhí)行,從而實(shí)現(xiàn)系統(tǒng)的必要維護(hù)、更新或配置。圖20示出了用于對(duì)系統(tǒng)進(jìn)行配置的依賴2000的框圖。根據(jù)另一實(shí)施例,系統(tǒng)的用于維護(hù)或配置的過(guò)程可以包括不同的部件,諸如,依賴管理器2002、監(jiān)管器2004、節(jié)點(diǎn)管理器2008、以及依賴樹(shù)2010等。依賴樹(shù)2010可以包括不同類(lèi)型的文件,這些不同類(lèi)型的文件可以直接地鏈接或者包裹在模塊或分區(qū)的周?chē)?,使得依賴可以是分區(qū)的每個(gè)成員對(duì)分區(qū)的其他成員中的每個(gè)成員的依賴的程度。例如,依賴樹(shù)2010可以包括分區(qū)1,該分區(qū)1可以取決于語(yǔ)言1.0和壓縮1.0;接下來(lái),語(yǔ)言1.0取決于軟件庫(kù)(諸如,處理DDL1.0和輸入DLL1.0)以及壓縮1.0取決于數(shù)據(jù)表1.0等等。依賴管理器2002可以對(duì)與系統(tǒng)的任何可發(fā)布文件相關(guān)聯(lián)的依賴樹(shù)2010進(jìn)行存儲(chǔ)。在另一實(shí)施例中,如果任意合適的軟件或數(shù)據(jù)部件被發(fā)布成依賴樹(shù)2010內(nèi)所指示的部件,則依賴管理器2002可以從數(shù)據(jù)存儲(chǔ)機(jī)構(gòu)上所存儲(chǔ)的一個(gè)或更多個(gè)文件中創(chuàng)建可部署包。監(jiān)管器2004可以被鏈接至一個(gè)或更多個(gè)依賴管理器2002,其中,所述一個(gè)或更多個(gè)依賴管理器2010可以包括對(duì)于一個(gè)或更多個(gè)模塊、分區(qū)或上述項(xiàng)的合適的組合的一個(gè)或更多個(gè)依賴樹(shù)。監(jiān)管器2004可以附加地鏈接至一個(gè)或更多個(gè)監(jiān)管器2004,其中,附加的監(jiān)管器2004可以被鏈接至系統(tǒng)中的其他部件。圖21示出了系統(tǒng)架構(gòu)2100,該系統(tǒng)架構(gòu)100具有:系統(tǒng)界面2102,、第一搜索管理器2110、第n搜索管理器2112、第一分析代理2120、第n搜索代理2122、第一搜索引導(dǎo)器2130、第n搜索引導(dǎo)器2132、分區(qū)數(shù)據(jù)2140、分區(qū)器2150、第一集合2160、第n集合2162、監(jiān)管器2170以及依賴管理器2180。在一種或更多種實(shí)施例中,系統(tǒng)界面2102可以將外部系統(tǒng)架構(gòu)2100所生成的一個(gè)或更多個(gè)查詢饋送至第一群集中的一個(gè)或更多個(gè)搜索管理器2110、2112,并且第一群集至少包括:包括第一搜索管理器2110的一個(gè)節(jié)點(diǎn)到包括第n搜索管理器2112的n個(gè)節(jié)點(diǎn)。在該第一群集中的一個(gè)或更多個(gè)搜索管理器2110、2112可以與第二群集中的一個(gè)或更多個(gè)分析代理2120、2122鏈接,以及第二群集至少包括第一分析代理2120到第n分析代理2122。第一群集中的搜索管理器2110、2112可以鏈接至第三群集中的一個(gè)或更多個(gè)搜索引導(dǎo)器2130、2132。第三群集可以至少包括第一搜索引導(dǎo)器2130至第n搜索引導(dǎo)器2132。每個(gè)搜索節(jié)點(diǎn)(及,執(zhí)行搜索管理器2110、2112的節(jié)點(diǎn))可以包括任意適合數(shù)量的搜索引導(dǎo)器2130、2132。第三群集中的搜索引導(dǎo)器2130、2132可以鏈接至用于存儲(chǔ)分區(qū)數(shù)據(jù)2140的一個(gè)或更多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)。分區(qū)數(shù)據(jù)2140可以包括通過(guò)節(jié)點(diǎn)執(zhí)行一個(gè)或更多個(gè)分區(qū)器2150所產(chǎn)生的一個(gè)或更多個(gè)分區(qū)(即,從離散的記錄集合中分區(qū)出來(lái)的任意分隔部分的記錄),分區(qū)器150可以是被配置成至少將一個(gè)或更多個(gè)集合劃分為一個(gè)或更多個(gè)分區(qū)的模塊。每個(gè)分區(qū)對(duì)應(yīng)于至少第一集合2160并且至多第n集合2162。集合2160、2162還可以通過(guò)一個(gè)或更多個(gè)模式文件進(jìn)行描述,所述一個(gè)或更多個(gè)模式文件可以對(duì)集合2160、2162中的數(shù)據(jù)進(jìn)行定義。該一個(gè)或更多個(gè)模式可以包括如下信息:分區(qū)的記錄中的字段名稱(chēng)、是否這些字段被索引、使用了什么壓縮方法以及對(duì)于字段而言哪個(gè)評(píng)分算法是默認(rèn)的等。當(dāng)分區(qū)器2150對(duì)第一集合2160至第n集合2162進(jìn)行分區(qū)時(shí),可以使用所述模式,并且當(dāng)?shù)谝凰阉鞴芾砥?110至第n搜索管理器2112對(duì)集合執(zhí)行一個(gè)或更多個(gè)查詢時(shí)也可以使用所述模式。一個(gè)或更多個(gè)節(jié)點(diǎn)可以執(zhí)行監(jiān)管器2170軟件模塊,該軟件模塊接收系統(tǒng)的其他節(jié)點(diǎn)所傳送的心跳信號(hào)。監(jiān)管器2170可以被配置成從系統(tǒng)2100的、執(zhí)行一個(gè)或更多個(gè)依賴管理器2180軟件模塊的節(jié)點(diǎn)接收數(shù)據(jù)。依賴管理器2180節(jié)點(diǎn)可以存儲(chǔ)、更新和引用與一個(gè)或更多個(gè)模塊、分區(qū)或尚書(shū)巷的合適的組合相關(guān)聯(lián)的依賴樹(shù),依賴樹(shù)可以表示基于相對(duì)關(guān)系的對(duì)于節(jié)點(diǎn)、模塊和分區(qū)的配置依賴。監(jiān)管器2170還可以鏈接至系統(tǒng)2100中的執(zhí)行一個(gè)或更多個(gè)其他監(jiān)管器2170的其他節(jié)點(diǎn)。在某些情況下,到其他監(jiān)管器2170的鏈路可以在系統(tǒng)架構(gòu)2100的群集之間跨越。執(zhí)行分析代理2120、2122的節(jié)點(diǎn)可以執(zhí)行一個(gè)或更多個(gè)合適的分析模塊,所述分析模塊符合所指定的應(yīng)用編程接口(API),該API有利于系統(tǒng)的部件(例如,軟件模塊、節(jié)點(diǎn))之間的互操作性和數(shù)據(jù)傳輸。分析代理2120、2122可以被配置成對(duì)搜索引導(dǎo)器2130、2132所返回的聚集查詢結(jié)構(gòu)進(jìn)行處理。例如,搜索管理器2110可以接收搜索查詢?nèi)缓笊伤阉饕龑?dǎo)器查詢,搜索管理器2110將該搜索引導(dǎo)器查詢發(fā)送至一個(gè)或更多個(gè)搜索引導(dǎo)器2130、2132。在搜索引導(dǎo)器2130、2132執(zhí)行了各自被指定的搜索引導(dǎo)器查詢之后,搜索管理器2110將從所述一個(gè)或更多個(gè)搜索引導(dǎo)器2130、2132接收所聚集的查詢結(jié)果的集合。如果根據(jù)搜索查詢的參數(shù)需要對(duì)搜索查詢結(jié)果進(jìn)行進(jìn)一步處理,則搜索管理器2110可以將這些搜索查詢結(jié)果轉(zhuǎn)發(fā)至分析代理2120以進(jìn)行進(jìn)一步處理。在一些實(shí)施方式中,在搜索管理器2110確定搜索查詢已經(jīng)向分析代理2120請(qǐng)求對(duì)從搜索引導(dǎo)器2130、2132接收的一組或多組聚集的結(jié)果進(jìn)行處理,則搜索管理器2110可以向分析代理2120、2122發(fā)送數(shù)據(jù)庫(kù)模式文件和/或一個(gè)或更多個(gè)分析參數(shù)。在一些情況下,搜索詢問(wèn)可以請(qǐng)求執(zhí)行特定的分析算法,搜索管理器2110可以使用該分析算法來(lái)識(shí)別哪個(gè)分析代理2120會(huì)接收到所聚集的分析結(jié)果。在一些情況下,一組或更多個(gè)組所聚集的結(jié)果可以以經(jīng)壓縮記錄的形式傳送至分析代理2120、2122,這些經(jīng)壓縮記錄包括根據(jù)壓縮算法所壓縮的數(shù)據(jù)。在一些情況下,可以按照記錄的字段來(lái)壓縮記錄的數(shù)據(jù),以及,在一些情況下,可以對(duì)整個(gè)記錄進(jìn)行壓縮。執(zhí)行分析代理2120、2122的節(jié)點(diǎn)具有多個(gè)分析模塊。分析模塊的非限制性示例可以包括:消歧模塊、鏈接模塊、和即時(shí)(on-the-fly)鏈接模塊、以及其它合適的模塊和算法。合適的模塊可以包括用于處理任意類(lèi)型數(shù)據(jù)的分析方法的任意軟件實(shí)現(xiàn)。在一些實(shí)施例中,特定的分析模塊或分析代理2120、2122僅可被內(nèi)存數(shù)據(jù)庫(kù)中所預(yù)定的實(shí)例、群集、分區(qū)和/或?qū)嵗瘜?duì)象。圖22是根據(jù)實(shí)施例的用于將分析模塊2200添加至寄存有內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng)的方法的流程圖,該方法包括步驟2202、2204、2206、2208、2210、2212、2214、2216以及2218。在步驟2202中,可以創(chuàng)建符合合適的API的一個(gè)或更多個(gè)合適的分析模塊,以用于在內(nèi)存數(shù)據(jù)庫(kù)中進(jìn)行可插拔分析。API可以具有分析模塊必須實(shí)現(xiàn)的所需要的方法以提供系統(tǒng)互操作性??梢詣?chuàng)建分析模塊以滿足用戶的特定需求??梢詫⒁粋€(gè)或更多個(gè)分析模塊存儲(chǔ)在合適的模塊庫(kù)中。模塊庫(kù)是可以由監(jiān)管器管理的非易失性機(jī)器可讀存儲(chǔ)介質(zhì)。根據(jù)本實(shí)施例,實(shí)體、開(kāi)發(fā)者、用戶、部件、模塊、外部源,和/或負(fù)責(zé)構(gòu)建和/或管理分析模塊的其他來(lái)源可以使用一個(gè)或更多個(gè)合適的編程語(yǔ)言來(lái)開(kāi)發(fā)分析模塊。根據(jù)一些實(shí)施例,API可以用作軟件-軟件接口,該API可以包括源代碼編程指令集和計(jì)算機(jī)進(jìn)行編譯和/或執(zhí)行的標(biāo)準(zhǔn),諸如,程序的參數(shù)或命令行參數(shù)、數(shù)據(jù)結(jié)構(gòu)、對(duì)象類(lèi)和變量。API可以使得系統(tǒng)能夠接受來(lái)自之后開(kāi)發(fā)的軟件模塊的數(shù)據(jù)輸入,以及將結(jié)果輸出至之后開(kāi)發(fā)的軟件模塊,同時(shí)保持對(duì)之后開(kāi)發(fā)的模塊的所有權(quán)、能力或其他特性的不可知,以及數(shù)據(jù)輸入符合數(shù)據(jù)格式(即,所期待的命令行參數(shù)。)負(fù)責(zé)數(shù)據(jù)輸入和輸出的系統(tǒng)API的一些軟件例程可以被“暴露”于這樣的最近開(kāi)發(fā)或者之后開(kāi)發(fā)的并且通常外部的軟件模塊。當(dāng)所暴露的API從軟件模塊接收、獲取或“消耗”數(shù)據(jù)時(shí),所暴露的API可以驗(yàn)證數(shù)據(jù)的可接受性。滿足系統(tǒng)API的所期待的命令行參數(shù)的著作軟件源可以使得開(kāi)發(fā)者和其他用戶能夠開(kāi)發(fā)各種軟件模塊(諸如,分析模塊),以與系統(tǒng)的節(jié)點(diǎn)和模塊(諸如,分析代理)傳送(即,發(fā)送、接收)數(shù)據(jù)。分析代理可以包括寄存有內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng)內(nèi)的一個(gè)或更多個(gè)節(jié)點(diǎn),其中,每個(gè)分析代理的節(jié)點(diǎn)可以存儲(chǔ)并執(zhí)行一個(gè)或更多個(gè)分析模塊。API可以使得不同用戶開(kāi)發(fā)的分析模塊能夠與系統(tǒng)中的各個(gè)節(jié)點(diǎn)和模塊以及內(nèi)存數(shù)據(jù)庫(kù)兼容。在一些實(shí)施例中,一個(gè)或更多個(gè)模塊可以是第三方使用任意合適的編程語(yǔ)言開(kāi)發(fā)的、與可用API兼容的外部模塊。在這樣的實(shí)施例中,這些最近開(kāi)發(fā)的模塊可以被存儲(chǔ)在分析模塊庫(kù)中。在步驟2204中,可以通過(guò)將相對(duì)應(yīng)的定義和任何依賴添加至依賴管理器來(lái)將所創(chuàng)建的模塊加載至內(nèi)存數(shù)據(jù)庫(kù),這可以使用能夠?qū)⑶‘?dāng)?shù)奈募椭噶畈渴?、上傳或存?chǔ)到依賴管理器的任何合適的自動(dòng)或手動(dòng)過(guò)程來(lái)完成。在步驟2206中,監(jiān)管器基于依賴管理器中的模塊設(shè)置確定是否需要將一個(gè)或更多個(gè)模塊安裝到一個(gè)或更多個(gè)節(jié)點(diǎn)上。在許多情況下,依賴管理器中所存儲(chǔ)的模塊設(shè)置將包括所加載的分析模塊是“啟用”還是“禁用”。例如,如果設(shè)置表示分析模塊是啟用的,則分析模塊可以被部署到運(yùn)行分析代理的每個(gè)各個(gè)節(jié)點(diǎn)上,該分析代理執(zhí)行該分析模塊。然后,監(jiān)管器向一個(gè)更多個(gè)節(jié)點(diǎn)上的一個(gè)或更多個(gè)節(jié)點(diǎn)管理器發(fā)送安裝準(zhǔn)備指令。在步驟2208中,節(jié)點(diǎn)管理器基于依賴管理器中的模塊配置來(lái)分配節(jié)點(diǎn)的資源,用于運(yùn)行所述一個(gè)或更多個(gè)所期望的模塊。在一種或更多種實(shí)施例中,在監(jiān)管器不在繼續(xù)執(zhí)行該過(guò)程一段時(shí)間之后,可以中止分配資源。依賴管理器中的模塊設(shè)置將指示模塊所需要多少內(nèi)存、CPU和/或磁盤(pán)。在步驟2210中,監(jiān)管器向依賴管理器發(fā)送請(qǐng)求,請(qǐng)求得到與待安裝到節(jié)點(diǎn)上的一個(gè)或更多個(gè)模塊相關(guān)聯(lián)的一個(gè)或更多個(gè)配置包。例如,自動(dòng)或手動(dòng)的過(guò)程(例如,系統(tǒng)管理員)可能已經(jīng)將新模塊添加至依賴管理器,依賴管理器還可以對(duì)與配置包相對(duì)應(yīng)的任意依賴,諸如,其他軟件或元數(shù)據(jù)進(jìn)行定義。在步驟2212中,然后,監(jiān)管器可以將配置包發(fā)送至節(jié)點(diǎn)管理器。在步驟2214中,節(jié)點(diǎn)管理器讀取所需要的任意軟件和數(shù)據(jù)以對(duì)依賴管理器中定義的一個(gè)或更多個(gè)模塊進(jìn)行運(yùn)行。在步驟2216中,節(jié)點(diǎn)管理器對(duì)步驟2214中獲取的所需要的軟件和數(shù)據(jù)進(jìn)行安裝。一旦分析代理被安裝,該分析代理可以動(dòng)態(tài)地對(duì)模塊進(jìn)行加載和卸載,因此,沒(méi)有必要重啟任何設(shè)備或軟件并且所安裝的一個(gè)或更多個(gè)模塊可能已經(jīng)準(zhǔn)備好被使用。在步驟2218中,節(jié)點(diǎn)管理器執(zhí)行步驟2216中所安裝的軟件。在分析代理啟動(dòng)分析模塊之后,運(yùn)行新模塊的每個(gè)分析代理可以將心跳信號(hào)發(fā)送至監(jiān)管器。該心跳信號(hào)可以指示該新模塊被恰當(dāng)?shù)貑?dòng)并且已經(jīng)可以使用。圖23示出了根據(jù)一種示例性實(shí)施例的內(nèi)存數(shù)據(jù)庫(kù)2300的系統(tǒng)架構(gòu)。MEMDB2300可以包括系統(tǒng)架構(gòu):系統(tǒng)界面2302、第一搜索管理器2304、第n搜索管理器2306、第一分析代理2308、第n搜索代理2310、第一搜索引導(dǎo)器2312、第n搜索引導(dǎo)器2314、分區(qū)數(shù)據(jù)2316、第一集合2318、第n集合2320、監(jiān)管器2322以及依賴管理器2324。在一種或更多種實(shí)施例中,系統(tǒng)界面2302可以將MEMDB2300的系統(tǒng)結(jié)構(gòu)外部所生成的一個(gè)或更多個(gè)查詢饋送至第一群集中的一個(gè)或更多個(gè)搜索管理器,并且第一群集至少包括:第一搜索管理器2304到第n搜索管理器2306。在該第一群集中的一個(gè)或更多個(gè)搜索管理器可以與第二群集中的一個(gè)或更多個(gè)分析代理鏈接,以及第二群集至少包括第一分析代理2308到第n分析代理2310。在該第一群集中的搜索管理器可以與第三群集中的一個(gè)或更多個(gè)搜索引導(dǎo)器鏈接,以及第二群集至少包括第一搜索引導(dǎo)器2312到第n搜索引導(dǎo)器2314。第三群集中的搜索引導(dǎo)器可以被鏈接至一個(gè)或更多個(gè)分區(qū)器2316,其中,可以在一個(gè)或更多個(gè)時(shí)刻即時(shí)地將與至少第一集合2318至第n集合2320相對(duì)應(yīng)的分區(qū)保存。MEMDB2300中所包括的群集中所包括的一個(gè)或更多個(gè)節(jié)點(diǎn)、模塊或上述項(xiàng)的合適的組合可以被鏈接至一個(gè)或更多個(gè)監(jiān)管器2322,其中,在所述群集中的一個(gè)或更多個(gè)節(jié)點(diǎn)、模塊或合適的結(jié)合可以被配置成將至少一個(gè)心跳發(fā)送至一個(gè)或更多個(gè)監(jiān)管器2322。監(jiān)管器2322可以被鏈接至一個(gè)或更多個(gè)依賴管理器2324,其中,所述一個(gè)或更多個(gè)依賴管理器2324可以包括對(duì)于一個(gè)或更多個(gè)模塊、分區(qū)或上述項(xiàng)的合適的組合的一個(gè)或更多個(gè)依賴樹(shù)。監(jiān)管器2322可以附加地鏈接至一個(gè)或更多個(gè)其他監(jiān)管器2322,其中,附加的監(jiān)管器2322可以被鏈接至MEMDB2300的系統(tǒng)架構(gòu)中所包括的群集。圖24是描述了根據(jù)示例性實(shí)施例的用于非排他性搜索的方法的流程圖。用于非排他性搜索的方法2400可以使得系統(tǒng)能夠執(zhí)行搜索并且將來(lái)自記錄的結(jié)果帶回,查詢中所指定的字段并沒(méi)有被填充在或者定義在正被搜索的記錄匯總。該過(guò)程可以使用搜索管理器2402所接收的查詢來(lái)開(kāi)始,其中,由外部源所生成的一個(gè)或更多個(gè)查詢可以通過(guò)一個(gè)或更多個(gè)搜索管理器來(lái)接收。在一些實(shí)施例中,作為與用戶之間的交互,這些查詢可以由系統(tǒng)接口2302自動(dòng)地生成。在一種或更多種實(shí)施例中,查詢可以通過(guò)標(biāo)記語(yǔ)言或者其他合適的語(yǔ)言來(lái)表示,包括:XML、JavaScript、HTML以及用于表示搜索查詢的參數(shù)的其他合適的語(yǔ)言。在一個(gè)或更多個(gè)其他實(shí)施例中,這些查詢可以通過(guò)一種結(jié)構(gòu)來(lái)表示,其中,包括通過(guò)YAML或JSON表示查詢的實(shí)施例。在一些實(shí)施例中,可以通過(guò)緊湊或二進(jìn)制格式來(lái)表示查詢。然后,所接收的查詢可以通過(guò)搜索管理器2404進(jìn)行解析。這個(gè)過(guò)程使得系統(tǒng)能夠確定是否需要進(jìn)行字段處理2406。在一種或更多種實(shí)施例中,系統(tǒng)可以利用查詢中包括的信息確定是否需要進(jìn)行處理。在一個(gè)或更多而過(guò)其他實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以自動(dòng)地確定查詢的一個(gè)或更多個(gè)字段中的哪個(gè)字段需要進(jìn)行所期待的處理。如果系統(tǒng)確定需要針對(duì)一個(gè)或更多個(gè)字段進(jìn)行字段處理,則在搜索管理器處理字段2408期間,一個(gè)或更多個(gè)搜索管理器可對(duì)一個(gè)或更多個(gè)所需要的字段應(yīng)用一種或更多種合適的處理技術(shù)。在一種或更多種實(shí)施例中,合適的處理技術(shù)可以包括地址標(biāo)準(zhǔn)化、地理接近或邊界、以及昵稱(chēng)解釋等。在一些實(shí)施例中,合適的處理技術(shù)可以包括從字符串中提取前綴并且生成非字面的關(guān)鍵字,該非字面的關(guān)鍵字之后可以用于執(zhí)行模糊模糊匹配技術(shù)。然后,當(dāng)S.M.構(gòu)建搜索查詢2410時(shí),一個(gè)或更多個(gè)搜索管理器可以構(gòu)建與一個(gè)或更多個(gè)查詢相關(guān)聯(lián)的一個(gè)或更多個(gè)搜索引導(dǎo)器查詢。在一種或更多種實(shí)施例中,可以構(gòu)建搜索引導(dǎo)器查詢以便于作為基于堆棧的搜索進(jìn)行處理。隨后,S.M.可以向S.C.發(fā)送搜索引導(dǎo)器查詢2412。在一些實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以向一個(gè)或更多個(gè)搜索引導(dǎo)器發(fā)送一個(gè)或更多個(gè)搜索查詢,其中,所述一個(gè)或更多個(gè)搜索引導(dǎo)器可以與一個(gè)或更多個(gè)搜索查詢中指定的集合相關(guān)聯(lián)。然后,一個(gè)或更多個(gè)搜索引導(dǎo)器可以進(jìn)行任何合適的布爾搜索操作2414(例如,和、或、異或)和索引搜索,而無(wú)需排除目前沒(méi)有具體字段的記錄。搜索引導(dǎo)器可以執(zhí)行用戶所提供的或者應(yīng)用程序所提供的布爾操作和索引查詢。因此,實(shí)施例可以執(zhí)行用于實(shí)現(xiàn)模糊索引和“或”操作而不是“和”操作的用戶查詢,以獲得并沒(méi)有“排除”潛在的良好結(jié)果的一組候選記錄。對(duì)特征進(jìn)行評(píng)分使得最好的結(jié)果(即,最相關(guān)的)評(píng)分最高,而較低相關(guān)性的記錄評(píng)分較低。在一些情況下,存在兩個(gè)階段來(lái)執(zhí)行搜索查詢。搜索階段,其中,布爾操作、模糊索引和過(guò)來(lái)可以返回滿足搜索查詢的潛在結(jié)果中的一組候選結(jié)果。評(píng)分階段,接下來(lái)的評(píng)分階段可以將一個(gè)或更多個(gè)用戶指定的或應(yīng)用程序指定的評(píng)分軟法來(lái)對(duì)候選集合中的記錄進(jìn)行評(píng)分,因此,最好的結(jié)果評(píng)分最高,低于給定閾值的較差或者不相關(guān)的結(jié)果可以被排除,從而僅返回合理的結(jié)果返回。這可以導(dǎo)致具有需要進(jìn)行評(píng)分的一組非常大的候選記錄,然而,內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)可以足夠快地處理對(duì)于傳統(tǒng)系統(tǒng)而言非常大范圍的搜索結(jié)果的集合。并且,結(jié)果是我們沒(méi)有錯(cuò)過(guò)良好的結(jié)果,因?yàn)樵S多字段是空的或者存在一些噪聲或大量數(shù)據(jù)。如所提及的,搜索引導(dǎo)器可以應(yīng)用任意合適的搜索濾波器2416,同時(shí)不會(huì)排除基于錯(cuò)過(guò)的字段的記錄。一個(gè)或更多個(gè)搜索引導(dǎo)器可以針對(duì)一個(gè)或更多個(gè)查詢對(duì)所產(chǎn)生的答案集合記錄進(jìn)行評(píng)分,其中,搜索引導(dǎo)器可以對(duì)記錄的一個(gè)或更多個(gè)字段的匹配進(jìn)行評(píng)分并且于是可以確定對(duì)于記錄的所有匹配的得分。搜索引導(dǎo)器能夠針對(duì)一個(gè)或更多個(gè)查詢對(duì)記錄進(jìn)行評(píng)分,其中,查詢包括被省略的或者沒(méi)有包括在記錄中的字段。在一些實(shí)施例中,搜索管理器可以向搜索引導(dǎo)器發(fā)送查詢,使用給包括相對(duì)于查詢中所定義的字段而言更少或者不同的字段的模式來(lái)在集合中執(zhí)行該查詢。在該情況下,查詢可以被重組以對(duì)不符合正被搜索的集合的模式的那些字段進(jìn)行修改,以指示這些字段僅出于評(píng)分的目的。在這些情況下,搜索管理器可以生成和/或修改搜索查詢。即,搜索管理器可以構(gòu)建查詢計(jì)劃,該查詢計(jì)劃可以被定做(tailored)或者調(diào)整以解釋字段丟失,或者字段可能不具有一個(gè)或更多個(gè)集合中定義的索引。根據(jù)一些實(shí)施例,可能不會(huì)排除具有與查詢的模式不同的模式的集合,可用字段可以關(guān)于查詢被評(píng)分,并且罰分或者較低的得分可以被指定給字段丟失的記錄。MEMDB2300中的集合中的字段可以被標(biāo)準(zhǔn)化,并且每個(gè)搜索引導(dǎo)器可以接入標(biāo)準(zhǔn)化字段的字典以便于進(jìn)行評(píng)分賦值過(guò)程??梢酝ㄟ^(guò)任意合適的手動(dòng)或自動(dòng)的過(guò)程執(zhí)行標(biāo)準(zhǔn)化。如果提供搜索查詢的用戶或應(yīng)用程序定義了在多個(gè)集合中被標(biāo)準(zhǔn)化的字段,則系統(tǒng)可以構(gòu)建可以被應(yīng)用于多個(gè)集合的查詢,甚至如果各個(gè)集合不符合完全相同的模式或存儲(chǔ)規(guī)則的情況下,也是如此。在一些實(shí)施例中,可以應(yīng)用模糊匹配技術(shù)以進(jìn)一步拓寬可能相關(guān)的結(jié)果的列表。系統(tǒng)可以確定所指定的得分是否大于指定的接受閾值,其中該閾值可以是在搜索查詢中定義的或者可以是默認(rèn)值。在一種或更多種實(shí)施例中,可以根據(jù)待評(píng)分的一個(gè)或更多個(gè)字段來(lái)改變默認(rèn)的得分閾值。如果搜索引導(dǎo)器確定得分超過(guò)所期望的閾值,則可以將記錄添加至搜索結(jié)果。如果搜索引導(dǎo)器確定已經(jīng)對(duì)分區(qū)中的最后一個(gè)記錄進(jìn)行了處理,則搜索引導(dǎo)器可以產(chǎn)生的結(jié)果列表進(jìn)行分類(lèi)。然后,搜索引導(dǎo)器可以將結(jié)果列表返回至搜索管理器。當(dāng)S.M.接收并整理來(lái)自S.C.的結(jié)果2420時(shí),一個(gè)或更多個(gè)搜索引導(dǎo)器將一個(gè)或更多個(gè)搜索結(jié)果返回至一個(gè)或更多個(gè)搜索管理器,其中,在一種或更多種實(shí)施例中,可以以異步方式將所述一個(gè)或更多個(gè)搜索結(jié)果返回。然后,一個(gè)或更多個(gè)搜索管理器可以將來(lái)自一個(gè)或更多個(gè)搜索引導(dǎo)器的結(jié)果編譯成一個(gè)或更多個(gè)結(jié)果列表。系統(tǒng)可以確定由一個(gè)或更多個(gè)搜索管理器所編譯的搜索結(jié)果是否需要進(jìn)行分析處理2422。在一種或更多種實(shí)施例中,系統(tǒng)利用查詢中包括的信息確定處理是否是必要的。在一個(gè)或更多而過(guò)其他實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以自動(dòng)地確定查詢的一個(gè)或更多個(gè)字段中的哪個(gè)字段需要進(jìn)行所期待的處理。如果系統(tǒng)確定需要進(jìn)行分析處理2422,則一個(gè)或更多個(gè)分析代理可以通過(guò)一個(gè)或更多個(gè)合適的處理技術(shù)將結(jié)果2424處理成一個(gè)或更多個(gè)結(jié)果列表。在一種或更多種實(shí)施例中,合適的技術(shù)包括:將幾個(gè)記錄卷到更復(fù)雜的記錄中;對(duì)結(jié)果執(zhí)行一個(gè)或更多個(gè)分析,并且確定關(guān)于相鄰記錄的信息等。在一些實(shí)施例中,分析模塊可以包括:消歧模塊、鏈接模塊、即時(shí)(on-the-fly)鏈接模塊、或者任意其它合適的模塊和算法。在根據(jù)一些實(shí)施例的處理之后,一個(gè)或更多個(gè)分析代理可以將一個(gè)或更多個(gè)經(jīng)處理的結(jié)果列表返回至一個(gè)或更多個(gè)搜索管理器。搜索管理器可以返回搜索結(jié)果2426。在一些實(shí)施例中,一個(gè)或更多個(gè)搜索管理器可以對(duì)一個(gè)或更多個(gè)結(jié)果列表解壓縮并且發(fā)送至發(fā)起查詢的系統(tǒng)。所返回的結(jié)果可以按照多個(gè)格式中的一個(gè)格式進(jìn)行格式化,這些格式包括:XML、JSON、RDF或任何其他格式。圖25示出了壓縮設(shè)備2500,該壓縮設(shè)備2500包括存儲(chǔ)單元2502、RAM2504和CPU2506。在一種或更多種實(shí)施例中,數(shù)據(jù)記錄集合中的一個(gè)或更多個(gè)數(shù)據(jù)記錄、一個(gè)或更多個(gè)模式、一個(gè)或更多個(gè)字典、一個(gè)或更多個(gè)n-gram表以及一個(gè)或更多個(gè)令牌表可以被存儲(chǔ)在壓縮設(shè)備2500中的硬件存儲(chǔ)單元2502中。壓縮設(shè)備2500中的RAM2504可以具有將存儲(chǔ)單元2502中的任意數(shù)據(jù)加載到RAM2504中任意數(shù)據(jù)、以及任意合適的模塊(包括,分段模塊、壓縮模塊以及索引模塊等。在一種或更多種實(shí)施例中,壓縮設(shè)備2500可以包括一個(gè)或更多個(gè)合適的CPU2506。圖26示出了集合數(shù)據(jù)表2600。在一種或更多種實(shí)施例中,一個(gè)或更多個(gè)集合可以包括如集合數(shù)據(jù)表2600所示的結(jié)構(gòu)化或半結(jié)構(gòu)化數(shù)據(jù)。在一種或更多種實(shí)施例中,結(jié)構(gòu)化數(shù)據(jù)可以包括任何數(shù)量的字段,以及半結(jié)構(gòu)化數(shù)據(jù)(諸如,使用JSON、BSON、YAML或任意其他合適的格式表示的數(shù)據(jù))可以包括任意合適數(shù)量的字段、數(shù)組或?qū)ο蟆?梢允褂萌我夂线m的模式描述集合,其中,合適的模式可以對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行定義,以及按照模式可以對(duì)一個(gè)或更多個(gè)字段執(zhí)行壓縮方法。在一種或更多種實(shí)施例中,一個(gè)或更多個(gè)字段可以包括數(shù)據(jù)值,這些數(shù)據(jù)值可以包括語(yǔ)義相似性。在一種或更多種實(shí)施例中,語(yǔ)義上相似的數(shù)據(jù)可以包括名字、姓氏、出生日期以及國(guó)籍等。在一種或更多種實(shí)施例中,壓縮設(shè)備可以使用一種或更多個(gè)字方法對(duì)一個(gè)或更多個(gè)字段進(jìn)行壓縮以對(duì)字段中所存儲(chǔ)的數(shù)據(jù)的類(lèi)型進(jìn)行壓縮,其中,壓縮設(shè)備可以使用定制令牌表。在一種或更多種實(shí)施例中,壓縮設(shè)備可以針對(duì)具有與所期望的壓縮方法不相關(guān)聯(lián)的數(shù)據(jù)的任意數(shù)量的字段使用n-gram壓縮作為默認(rèn)的壓縮方法。在一種或更多種實(shí)施例中,集合的一個(gè)或更多個(gè)字段中的一個(gè)或更多個(gè)數(shù)據(jù)可以包括在被分段后可以更好地被壓縮的數(shù)據(jù)。這種類(lèi)型的數(shù)據(jù)通常存在這種情況:每個(gè)記錄的字段具有多個(gè)值,并且壓縮設(shè)備可以更好地通過(guò)將這些記錄去標(biāo)準(zhǔn)化為多個(gè)記錄分段的方式實(shí)現(xiàn)匹配和評(píng)分。適合于分段的數(shù)據(jù)的實(shí)例可以包括:全名、地址、電話號(hào)碼以及電子郵件等。在一種或更多種實(shí)施例中,壓縮設(shè)備可以在對(duì)一個(gè)或更多個(gè)數(shù)據(jù)壓縮之前對(duì)所述一個(gè)或更多個(gè)數(shù)據(jù)進(jìn)行分段。壓縮設(shè)備可以將經(jīng)分段數(shù)據(jù)連續(xù)地存儲(chǔ)在同一分區(qū)。在一種或更多種實(shí)施例中,壓縮設(shè)備可以使用被分段的記錄標(biāo)識(shí)符來(lái)識(shí)別哪些字段是從那個(gè)記錄中分段的以確保系統(tǒng)仍然知道有些記錄是源自集合中的相同的原始記錄。在一種或更多種實(shí)施例中,記錄可以包括數(shù)據(jù)值的數(shù)組。數(shù)組可以包括零個(gè)或多個(gè)值,以及數(shù)組值可以包括空值以表示缺失值同時(shí)保留適當(dāng)順序的值。在一種或更多種實(shí)施例中,壓縮設(shè)備可以將一個(gè)或更多個(gè)數(shù)據(jù)字段作為對(duì)象進(jìn)行分組。對(duì)象可以包括其他對(duì)象或者可以是數(shù)組中的元素。壓縮設(shè)備還可以:通過(guò)包括將系統(tǒng)指向分區(qū)中包括相同值的另一對(duì)象的方式將記錄中的對(duì)象壓縮。當(dāng)模塊可以將數(shù)據(jù)輸出到系統(tǒng)中的其他模塊時(shí),所述模塊可以將參考對(duì)象替代為實(shí)際的對(duì)象值。在一種或更多種實(shí)施例中,壓縮設(shè)備可以使用已知的二進(jìn)制壓縮方法將字段中表示數(shù)量的一個(gè)或更多個(gè)數(shù)據(jù)壓縮。在一種或更多種實(shí)施例中,壓縮設(shè)備可以使用已知的序列天數(shù)壓縮算法將字段中表示數(shù)量的一個(gè)或更多個(gè)數(shù)據(jù)壓縮。在一種或更多種實(shí)施例中,壓縮設(shè)備可以在對(duì)一個(gè)或更多個(gè)數(shù)據(jù)壓縮之前對(duì)所述一個(gè)或更多個(gè)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。適合于在壓縮之前進(jìn)行標(biāo)準(zhǔn)化的數(shù)據(jù)可以包括街道的后綴和前綴、名稱(chēng)后綴和前綴和之后/之前的方位信息(即,東、北、西等)等。圖27示出了令牌表2700。在一種或更多種實(shí)施例中,壓縮裝置可以使用任意合適的令牌表來(lái)對(duì)包括具有合適的語(yǔ)義相似性的數(shù)據(jù)的字段進(jìn)行壓縮,其中,該合適的令牌表與令牌表2700相似。在一種或更多種實(shí)施例中,當(dāng)一個(gè)或更多個(gè)記錄可以被添加至具有相關(guān)聯(lián)的令牌表的字段中時(shí),系統(tǒng)確定數(shù)據(jù)是否與令牌表中先前遇到的數(shù)據(jù)相匹配。在一種或更多種實(shí)施例中,如果該數(shù)據(jù)不匹配,則系統(tǒng)可以使用令牌表之外的其他壓縮方法。在一個(gè)或更多個(gè)其他實(shí)施例中,如果該數(shù)據(jù)不匹配,則系統(tǒng)可以更新其令牌表以包括該數(shù)據(jù)。在一種或更多種實(shí)施例中,令牌表可以進(jìn)行周期地更新,并且所存儲(chǔ)的數(shù)據(jù)可以被重新評(píng)估以確定是否提高了壓縮率。如果已經(jīng)提高了一個(gè)或更多個(gè)數(shù)據(jù)的壓縮率,則系統(tǒng)可以對(duì)任意合適的數(shù)據(jù)進(jìn)行解壓縮以及再次壓縮。在一種或更多種實(shí)施例中,最頻繁出現(xiàn)的值可以被存儲(chǔ)在較低編號(hào)的索引中,這可以使得最頻繁出現(xiàn)的至可以由較少的字節(jié)表示。在一種或更多種實(shí)施例中,相對(duì)于較短的值,較長(zhǎng)的值優(yōu)選地包括在令牌表中,這可以使得,同樣使用相同的索引值,較長(zhǎng)的值相對(duì)于較短的值而言具有更大的壓縮。在一種或更多種實(shí)施例中,特定的索引值可以被預(yù)留以指示對(duì)于數(shù)據(jù)值不存在令牌數(shù)據(jù)。圖28示出了N-gram表2800。在一種或更多種實(shí)施例中,壓縮裝置可以使用任意合適的N-gram表來(lái)對(duì)包括具有合適的語(yǔ)義相似性的數(shù)據(jù)的字段進(jìn)行壓縮,其中,該合適的N-gram表與N-gram表2800相似。在一種或更多種實(shí)施例中,當(dāng)一個(gè)或更多個(gè)記錄可以被添加至具有相關(guān)聯(lián)的N-gram表的字段中時(shí),系統(tǒng)確定數(shù)據(jù)是否與N-gram表中先前遇到的數(shù)據(jù)相匹配。在一種或更多種實(shí)施例中,如果該數(shù)據(jù)不匹配,則系統(tǒng)可以使用N-gram表之外的其他壓縮方法。在一個(gè)或更多個(gè)其他實(shí)施例中,如果該數(shù)據(jù)不匹配,則系統(tǒng)可以更新其N(xiāo)-gram表以包括該數(shù)據(jù)。在一種或更多種實(shí)施例中,N-gram表可以進(jìn)行周期地更新,并且所存儲(chǔ)的數(shù)據(jù)可以被重新評(píng)估以確定是否提高了壓縮率。如果已經(jīng)提高了一個(gè)或更多個(gè)數(shù)據(jù)的壓縮率,則系統(tǒng)可以對(duì)任意合適的數(shù)據(jù)進(jìn)行解壓縮以及再次壓縮。在一種或更多種實(shí)施例中,最頻繁出現(xiàn)的值可以被存儲(chǔ)在較低編號(hào)的索引中,這可以使得最頻繁出現(xiàn)的至可以由較少的字節(jié)表示。在一種或更多種實(shí)施例中,特定的索引值可以被預(yù)留以指示對(duì)于數(shù)據(jù)值不存在N-gram數(shù)據(jù)。圖29示出了記錄表示2900,該記錄表示2900可以表示一種或更多種實(shí)施例中的被壓縮的數(shù)據(jù)。在記錄表示2900中,記錄索引列中的每個(gè)行值可以包括零個(gè)或更多個(gè)記錄描述符字節(jié),這些字節(jié)具有關(guān)于記錄的信息,包括,記錄的長(zhǎng)度、偏移量或在存儲(chǔ)器中的位置等。在一種或更多種實(shí)施例中,記錄中所顯示的每個(gè)數(shù)據(jù)節(jié)點(diǎn)(數(shù)組、字段或?qū)ο?可以包括零個(gè)或更多個(gè)描述符字節(jié),其中,如果適用,關(guān)于節(jié)點(diǎn)的合適的信息可以包括節(jié)點(diǎn)標(biāo)識(shí)符、所存儲(chǔ)的數(shù)據(jù)的長(zhǎng)度以及數(shù)組中的元素的數(shù)量。遵循所述零個(gè)或更多個(gè)節(jié)點(diǎn)描述符字節(jié),任意合適熟練的字節(jié)可以表示與記錄相關(guān)聯(lián)的數(shù)據(jù)。在一種或更多種實(shí)施例中,數(shù)據(jù)可以包括用于描述數(shù)據(jù)的內(nèi)容的一個(gè)或更多個(gè)位(bit),包括數(shù)組分離標(biāo)記位。在一個(gè)或更多個(gè)實(shí)施例中,與令牌表相關(guān)聯(lián)的字段中的數(shù)據(jù)可以使用一個(gè)或更多個(gè)位來(lái)表明記錄中所存儲(chǔ)的信息是否被表示在合適的令牌表中,或者是否使用了另一種合適的壓縮方法,諸如,N-gram壓縮.在一種或更多種實(shí)施例中,系統(tǒng)可以使用一個(gè)或更多個(gè)記錄描述符字節(jié)和/或一個(gè)或更多個(gè)節(jié)點(diǎn)(數(shù)組、對(duì)象或字段)中包括的長(zhǎng)度或偏移量數(shù)據(jù)來(lái)通過(guò)被壓縮的數(shù)據(jù)進(jìn)行導(dǎo)航,而無(wú)需對(duì)記錄或節(jié)點(diǎn)(數(shù)組、對(duì)象或字段)及進(jìn)行解壓縮。在一種或更多種實(shí)施例中,系統(tǒng)中任意合適的模塊(包括MEMDB系統(tǒng)中的一個(gè)或跟多個(gè)搜索引導(dǎo)器或一個(gè)或更多個(gè)分區(qū)器)可以對(duì)數(shù)據(jù)進(jìn)行索引或壓縮。在一種或更多種實(shí)施例中,本文所公開(kāi)的采用一種或更多種壓縮方法的壓縮設(shè)備使得以與其他著名的壓縮方法相同的速率來(lái)壓縮數(shù)據(jù),而同時(shí)使得數(shù)據(jù)能夠在節(jié)點(diǎn)(數(shù)組、對(duì)象或字段)級(jí)別進(jìn)行解壓縮和/或訪問(wèn)。在一種或更多種實(shí)施例中,本文所公開(kāi)的采用一種或更多種壓縮方法的壓縮設(shè)備使得系統(tǒng)能夠在訪問(wèn)記錄中的信息時(shí)跳過(guò)個(gè)別記錄和節(jié)點(diǎn)(數(shù)組、對(duì)象或字段)。在一個(gè)或更多個(gè)實(shí)施例中,本文所公開(kāi)的采用一種或更多種壓縮方法的壓縮設(shè)備使得系統(tǒng)能夠在目標(biāo)字段被找到時(shí)提前退出對(duì)記錄的解壓縮。在示例#1中,應(yīng)用了所公開(kāi)的用于分面搜索的方法。MEMDB對(duì)大量語(yǔ)料庫(kù)中的文檔進(jìn)行分析、提取分面、對(duì)所提取的分面進(jìn)行消除歧義和索引,然后根據(jù)分面類(lèi)型和層次結(jié)構(gòu)將這些分面存儲(chǔ)到兩個(gè)以上集合的不同分區(qū)中。在示例#1中,用于在搜索框中鍵入文字“統(tǒng)一的(united)”并且系統(tǒng)通過(guò)分面返回搜索結(jié)果。級(jí)別為1的分面包括“類(lèi)”、“位置”、“產(chǎn)品”、“技術(shù)”以及“公司”等。每個(gè)級(jí)別為2的分面的點(diǎn)擊數(shù)被示出,并且用戶能夠?qū)⒅辽偃陨霞?jí)別的搜索的范圍縮小。在示例#2中,應(yīng)用了所公開(kāi)的用于分面搜索的方法。MEMDB對(duì)大量語(yǔ)料庫(kù)中的文檔進(jìn)行分析、提取分面、對(duì)所提取的分面進(jìn)行消除歧義和索引,然后根據(jù)分面類(lèi)型和層次結(jié)構(gòu)將這些分面存儲(chǔ)到兩個(gè)以上集合的不同分區(qū)中。在示例#2中,用于在搜索框中鍵入字符“板層(ply)”并且系統(tǒng)通過(guò)分面自動(dòng)地生成搜索建議。級(jí)別為1的分面包括“類(lèi)”、“位置”、“產(chǎn)品”、“技術(shù)”以及“公司”等。每個(gè)級(jí)別為2的分面的點(diǎn)擊數(shù)被示出,并且用戶能夠?qū)⒅辽偃陨霞?jí)別的搜索的范圍縮小。示例#1是一種內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng),包括:搜索管理器、分析代理、每個(gè)節(jié)點(diǎn)上的節(jié)點(diǎn)管理器、每個(gè)都包括兩個(gè)搜索引導(dǎo)器的8個(gè)搜索節(jié)點(diǎn)、監(jiān)管器、后備監(jiān)管器、依賴管理器、后備依賴管理器、以及節(jié)點(diǎn)上能夠存儲(chǔ)并分配分區(qū)的分區(qū)器(其中,節(jié)點(diǎn)包括兩個(gè)集合(集合1和集合2)被劃分為四個(gè)集合的信息)。當(dāng)數(shù)據(jù)庫(kù)接收到對(duì)于集合1中的記錄的搜索查詢,搜索管理器向具有與集合1相關(guān)聯(lián)的分區(qū)器的所有搜索引導(dǎo)器發(fā)送查詢。這些搜索引導(dǎo)器異步地工作以對(duì)每個(gè)所壓縮的記錄進(jìn)行搜索和評(píng)分,使得經(jīng)壓縮結(jié)果的列表具有超過(guò)查詢中所定義的閾值的評(píng)分,對(duì)結(jié)果的列表進(jìn)行排序以及將壓縮記錄的列表返回至搜索管理器。在該示例中,搜索引導(dǎo)器僅對(duì)待被評(píng)分的字段進(jìn)行解壓縮。搜索管理器接收并聚集來(lái)自每個(gè)搜索引導(dǎo)器的結(jié)果的列表,對(duì)查詢結(jié)果進(jìn)行編譯,并且將編譯結(jié)果發(fā)送至分析代理以進(jìn)行進(jìn)一步的處理。分析代理對(duì)其所確定的充分相關(guān)的記錄進(jìn)行組合,并且將經(jīng)處理的結(jié)果的列表返回至搜索管理器。搜索管理器然后通過(guò)系統(tǒng)界面返回最終結(jié)果。示例#2是一種內(nèi)存數(shù)據(jù)庫(kù),該內(nèi)存數(shù)據(jù)庫(kù)可以執(zhí)行語(yǔ)義查詢并且將數(shù)據(jù)庫(kù)中沒(méi)有明確鏈接關(guān)系的數(shù)據(jù)的鏈接數(shù)據(jù)結(jié)果返回。數(shù)據(jù)或記錄鏈接僅僅是分析代理中可以執(zhí)行的聚集的分析功能的一種示例。該示例是分析代理的內(nèi)存數(shù)據(jù)庫(kù),該分析代理能夠發(fā)現(xiàn)未被鏈接的數(shù)據(jù)中的數(shù)據(jù)鏈接并且執(zhí)行語(yǔ)義查詢以及返回語(yǔ)義結(jié)果。未被鏈接的數(shù)據(jù)是來(lái)自不同的數(shù)據(jù)源的數(shù)據(jù),這些數(shù)據(jù)沒(méi)有明確的鍵值或者與其他數(shù)據(jù)源的數(shù)據(jù)沒(méi)有明確的鏈接。在該示例中,可插入分析模塊可以被開(kāi)發(fā)并部署在分析代理中以基于不同的數(shù)據(jù)源自身的數(shù)據(jù)內(nèi)容來(lái)發(fā)現(xiàn)/尋找不同的數(shù)據(jù)源之間的鏈接。當(dāng)執(zhí)行了語(yǔ)義搜索查詢時(shí),所有的相關(guān)記錄被搜索引導(dǎo)器使用非排他搜索檢索出并且被發(fā)送至分析代理,分析代理基于分析代理模塊的特定實(shí)施方式和所分配的信任得分來(lái)發(fā)現(xiàn)記錄連接。這些動(dòng)態(tài)鏈接記錄可以使用語(yǔ)義標(biāo)記(諸如RDF/XML)或其他語(yǔ)義數(shù)據(jù)表示來(lái)表示并且被返回至用戶。這種語(yǔ)義搜索方法使得通過(guò)使用相同不相關(guān)的數(shù)據(jù)針對(duì)不同的查詢以不同的方式將不相關(guān)的數(shù)據(jù)能夠鏈接起來(lái)。示例#3是一種內(nèi)存數(shù)據(jù)庫(kù),該內(nèi)存數(shù)據(jù)庫(kù)可以執(zhí)行圖形查詢并且將數(shù)據(jù)庫(kù)中圖形形式的沒(méi)有明確鏈接或表示額數(shù)據(jù)的鏈接數(shù)據(jù)結(jié)果返回。該示例是具有分析代理的內(nèi)存數(shù)據(jù)庫(kù),該分析代理能夠發(fā)現(xiàn)未鏈接數(shù)據(jù)中的數(shù)據(jù)鏈接,執(zhí)行圖形查詢以及返回圖形查詢結(jié)果。當(dāng)執(zhí)行了圖形搜索查詢時(shí),所有的相關(guān)記錄被搜索引導(dǎo)器使用非排他搜索檢索出并且被發(fā)送至分析代理,分析代理基于分析代理模塊的特定實(shí)施方式和所分配的信任得分來(lái)發(fā)現(xiàn)記錄連接。這些動(dòng)態(tài)鏈接記錄可以以圖形形式(諸如,RDF圖形、屬性圖或其他圖形數(shù)據(jù)表示)來(lái)表示并且被返回至用戶。這種圖形搜索方法使得通過(guò)使用相同不相關(guān)的數(shù)據(jù)針對(duì)不同的查詢以不同的方式將不相關(guān)的數(shù)據(jù)能夠鏈接起來(lái)。示例#4是一種寄存有內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng),該系統(tǒng)具有以圖14中描述的連接設(shè)置相似的連接設(shè)置。搜索管理器、搜索引導(dǎo)器以及分析代理均直接參與到交互用戶查詢的過(guò)程中。為了減小用戶查詢的延遲,這些模塊可以以最小延遲的連接進(jìn)行連接。搜索管理器和分析代理適合于所聚集的較大的答案集并且受益于最大的帶寬,其中,搜索引導(dǎo)器基于答案集對(duì)數(shù)以百計(jì)的分區(qū)進(jìn)行處理,部件需要較小的帶寬。分區(qū)器處理大量數(shù)據(jù),但以非交互式的速度,因此他們不僅具有適度的延遲還具有適度的帶寬連接。監(jiān)管器和依賴管理器是非交互的并且具有低數(shù)據(jù)量,因此需要最低的帶寬和最高的延遲連接。該配置試圖根據(jù)實(shí)際需要要減小消耗。因此,在該示例中,線型A是具有40G帶寬和1微秒或更少時(shí)間的延遲的無(wú)限帶寬(InfiniBand)連接;線型B是具有20G帶寬和1微秒或更少時(shí)間的延遲的無(wú)限帶寬連接;線型C是10Gb的以太網(wǎng)連接;以及線型D是100Mb以太網(wǎng)連接。在該示例中,包括搜索管理器的節(jié)點(diǎn)包括能夠以每秒2萬(wàn)億次浮點(diǎn)運(yùn)算操作的CPU;包括搜索引導(dǎo)器的節(jié)點(diǎn)包括能夠以每秒4萬(wàn)億次浮點(diǎn)運(yùn)算操作的CPU;包括分析代理的節(jié)點(diǎn)包括能夠以每秒2萬(wàn)億次浮點(diǎn)運(yùn)算操作的CPU;以及包括分區(qū)器的節(jié)點(diǎn)包括能夠以每秒2萬(wàn)億次浮點(diǎn)運(yùn)算操作的CPU。在該示例中,包括搜索引導(dǎo)器的節(jié)點(diǎn)包括32至64GB的RAM,包括分析代理的節(jié)點(diǎn)包括32至64GB的RAM,以及包括分區(qū)器的6個(gè)節(jié)點(diǎn)每個(gè)都包括64GB的RAM以及10,000RPM的硬盤(pán)。示例#5是一種寄存有內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng),該系統(tǒng)具有以圖14中描述的連接設(shè)置相似的連接設(shè)置。搜索管理器、搜索引導(dǎo)器以及分析代理均直接參與到交互用戶查詢和數(shù)據(jù)插入的過(guò)程中。為了根據(jù)交互的、低延遲用于查詢來(lái)將單獨(dú)的大容量的后端數(shù)據(jù)插入網(wǎng)絡(luò)業(yè)務(wù),低延遲用戶查詢模塊是連接使用不同的網(wǎng)絡(luò)層。該配置使得能夠通過(guò)利用低延遲網(wǎng)絡(luò)層(諸如,無(wú)限帶寬)來(lái)進(jìn)行響應(yīng)的、交互的用戶查詢,同時(shí)還能夠利用獨(dú)立的高帶寬網(wǎng)絡(luò)層進(jìn)行大容量數(shù)據(jù)插入。這兩種類(lèi)型的操作最優(yōu)化運(yùn)行,而彼此并不相互干擾。示例#6示出了如果單個(gè)模塊出現(xiàn)故障會(huì)發(fā)生什么,因?yàn)閷⒉辉倌軌颢@得節(jié)點(diǎn)上的一些資源,但是節(jié)點(diǎn)自身并不會(huì)受到不利影響。在這種情況下,當(dāng)模塊沒(méi)有心跳時(shí),到監(jiān)管器的連接會(huì)掉線,從而向監(jiān)管器警報(bào)模塊發(fā)生故障。監(jiān)管器將試圖與模塊重連,以核查該故障是否僅為連接問(wèn)題或者模塊故障。在一些實(shí)施例中,重連失敗被認(rèn)為是模塊故障。監(jiān)管器將首先請(qǐng)求相關(guān)聯(lián)的節(jié)點(diǎn)管理器恰當(dāng)?shù)刂貑⒃撃K。恰當(dāng)?shù)貑?dòng)模塊不會(huì)帶來(lái)對(duì)模塊和任意相對(duì)應(yīng)的軟件或數(shù)據(jù)進(jìn)行重新導(dǎo)入的代價(jià),因此,相對(duì)于在其他節(jié)點(diǎn)上進(jìn)行導(dǎo)入和啟動(dòng),其能夠更快的完成。然而,在該示例中,該問(wèn)題是由于不能獲得特定節(jié)點(diǎn)上的一些資源,因此,重啟也會(huì)失敗。在做出了恰當(dāng)?shù)谥貑⒛K的預(yù)定次數(shù)的嘗試之后,監(jiān)管器將尋找另一合適的節(jié)點(diǎn)來(lái)在該節(jié)點(diǎn)上啟動(dòng)模塊。監(jiān)管器將與依賴管理器模塊接觸以獲取對(duì)故障模塊進(jìn)行部署所需要的正確的包。然后,監(jiān)管器可以針對(duì)最近選擇的節(jié)點(diǎn)將該包傳遞給節(jié)點(diǎn)管理器以導(dǎo)入并運(yùn)行模塊。模塊找到新節(jié)點(diǎn)上所需要的資源并且創(chuàng)建至監(jiān)管器的、用于指示模塊運(yùn)行良好的心跳連接。監(jiān)管器將功能標(biāo)記為已經(jīng)恢復(fù)并且該事件結(jié)束。示例#7示出了整個(gè)節(jié)點(diǎn)故障,諸如,電力供應(yīng)故障。在這種情況下,節(jié)點(diǎn)管理器和服務(wù)器上的所有模塊都斷開(kāi)了與監(jiān)管器的心跳連接。監(jiān)管器將這種情況識(shí)別為節(jié)點(diǎn)完全故障,并且將該節(jié)點(diǎn)標(biāo)記為出現(xiàn)故障并且不可用。然后,監(jiān)管器對(duì)被分配給該節(jié)點(diǎn)的模塊列表進(jìn)行檢查。針對(duì)該列表中的每個(gè)模塊,監(jiān)管器將尋找下另一合適的節(jié)點(diǎn)來(lái)啟動(dòng)這些模塊。監(jiān)管器將與依賴管理器模塊接觸以獲取對(duì)當(dāng)前模塊進(jìn)行部署所需要的正確的包。然后,監(jiān)管器可以針對(duì)最近選擇的節(jié)點(diǎn)將該包傳遞給節(jié)點(diǎn)管理器以導(dǎo)入并運(yùn)行模塊。模塊執(zhí)行并且創(chuàng)建至監(jiān)管器的、用于指示模塊運(yùn)行良好的心跳連接。針對(duì)該模塊,監(jiān)管器將功能標(biāo)記為已經(jīng)恢復(fù)。這個(gè)過(guò)程持續(xù)進(jìn)行,直到所有的模塊都被重新分配給新的節(jié)點(diǎn)為止,并且該時(shí)間結(jié)束。在示例#8中,說(shuō)明了一種寄存有內(nèi)存數(shù)據(jù)庫(kù)的系統(tǒng),該內(nèi)存數(shù)據(jù)庫(kù)與圖21中所描述的內(nèi)存數(shù)據(jù)庫(kù)相似。在該示例中,內(nèi)存數(shù)據(jù)庫(kù)和系統(tǒng)包括多個(gè)分析模塊。一個(gè)分析模塊可以利用加權(quán)的模型來(lái)執(zhí)行記錄鏈接,而其他分析模塊使用決策樹(shù)。一些模塊可以被優(yōu)化來(lái)對(duì)任意可用數(shù)據(jù)進(jìn)行操作,而其他的模塊被調(diào)整以從所限制的一組字段或數(shù)據(jù)集合中產(chǎn)生所期望的結(jié)果。不同的用戶組開(kāi)放并上傳了一些模塊。每個(gè)用戶查詢可以執(zhí)行待被應(yīng)用的不同的分析模塊并且針對(duì)這些模塊使用不同的參數(shù)。不同的用戶可以使用內(nèi)存數(shù)據(jù)庫(kù)來(lái)同時(shí)提取信息,甚至可以以幾個(gè)不同的方式來(lái)同時(shí)對(duì)相同的數(shù)據(jù)進(jìn)行處理。一些用戶還可以隨時(shí)插入新的分析模塊,而不會(huì)對(duì)內(nèi)存數(shù)據(jù)庫(kù)的性能或用戶體驗(yàn)造成影響。在示例#9中,應(yīng)用了所公開(kāi)的用于非排他性搜索的方法。用戶使用下列字段定義查詢:FN(名字):John、LN(姓氏):Smith、DOB(生日):05/15/1965以及PH(電話號(hào)碼):555-1234-7890。系統(tǒng)使用不同的模式對(duì)于兩種不同的集合執(zhí)行搜索,并且相關(guān)結(jié)果中存在兩個(gè)具有缺失的字段的記錄。第一個(gè)是來(lái)自于集合1001,在該集合中,定義了如下字段,F(xiàn)N:John、LN:Smith、PH:---以及DOB:05/15/1965。第一個(gè)是來(lái)自于集合8021,在該集合中,定義了如下字段,F(xiàn)N:John、LN:Smith、PH:555-1234-7890以及DOB:---。由于這兩個(gè)記錄中大多數(shù)字段具有良好的匹配,沒(méi)有一個(gè)排除在外,因此,它們得到了相似的最終得分并且位于查詢的前十個(gè)結(jié)果中。在示例#10中,應(yīng)用了所公開(kāi)的用于非排他性搜索的方法。用戶使用下列字段定義查詢:FN(名字):John、LN(姓氏):Smith、DOB(生日):05/15/1965以及PH(電話號(hào)碼):555-1234-7890。系統(tǒng)使用不同的模式對(duì)于兩種不同的集合執(zhí)行搜索,并且相關(guān)結(jié)果中存在兩個(gè)具有相似但是不完全匹配字段的記錄。第一個(gè)是來(lái)自于集合1001,在該集合中,定義了如下字段,F(xiàn)N:Jonathan、LN:Smith、PH:1234-7890。第一個(gè)是來(lái)自于集合8021,在該集合中,定義了如下字段:FN:John、LN:Smyth、PH:555-1234-7890以及DOB:1965。由于這兩個(gè)記錄中大多數(shù)字段具有良好的匹配,因此,它們得到的最終得分超過(guò)了得分閾值并且位于查詢的前十個(gè)結(jié)果中。示例#11示出了一種使用壓縮裝置來(lái)壓縮名字的方法。在該示例中,數(shù)據(jù)集包括一百萬(wàn)全名記錄的集合,該記錄表示了350個(gè)獨(dú)特的名字和300個(gè)獨(dú)特的姓氏。這些記錄被分段為名字字段和姓氏字段。然后,通過(guò)這些記錄的頻率與長(zhǎng)度的乘積從高到低對(duì)各個(gè)令牌進(jìn)行加權(quán)。權(quán)重低于某閾值的令牌被丟棄以減小令牌表的大小。然后,通過(guò)使指定索引的過(guò)程中的聚集的空間節(jié)省最大化的方式來(lái)對(duì)每個(gè)字段生成令牌表,從而針對(duì)單個(gè)令牌的空間節(jié)省為長(zhǎng)度總和與所存儲(chǔ)的索引長(zhǎng)度的差與頻率的乘積。在最大化過(guò)程中,與單個(gè)字節(jié)索引相關(guān)聯(lián)的條目的數(shù)量范圍為1至255,包括端值。該算法保證所生成的令牌表是最優(yōu)的,并且最大存儲(chǔ)將達(dá)到單個(gè)字節(jié)所存儲(chǔ)的索引條目,而后續(xù)的值壓縮至兩個(gè)或更多個(gè)字節(jié)。短的或罕見(jiàn)的條目可能無(wú)法實(shí)現(xiàn)存儲(chǔ)并且不會(huì)包括在令牌表中。這些值回復(fù)至其他壓縮方法,諸如,n-gram壓縮。示例#12示出了一種使用壓縮裝置來(lái)壓縮文字的方法。在該示例中,針對(duì)n-gram的頻率對(duì)較大主體的文本進(jìn)行分析,其中,n-gram可以表示連續(xù)的字符、文字,或組合或文字的連續(xù)序列。文字通常是通過(guò)分析大量字段數(shù)據(jù)來(lái)獲得的,以便于通過(guò)字段水平壓縮來(lái)實(shí)現(xiàn)字段中的柱狀壓縮結(jié)果。然后,通過(guò)這些記錄的頻率與長(zhǎng)度的乘積從高到低對(duì)各個(gè)n-gram進(jìn)行加權(quán)。權(quán)重低于某閾值的n-gram被丟棄以減小令牌表的大小。然后,通過(guò)使指定索引過(guò)程中的聚集的空間節(jié)省最大化的方式來(lái)對(duì)字段生成n-gram表,從而對(duì)于各個(gè)n-gram的空間節(jié)省為長(zhǎng)度總和與所存儲(chǔ)的索引長(zhǎng)度的差與頻率的乘積。在最大化過(guò)程中,與單個(gè)字節(jié)索引相關(guān)聯(lián)的條目的數(shù)量范圍為1至255,包括端值。該算法保證所生成的n-gram表是最優(yōu)的,并且最大存儲(chǔ)將達(dá)到單個(gè)字節(jié)所存儲(chǔ)的索引條目,而后續(xù)的值壓縮至兩個(gè)或更多個(gè)字節(jié)。罕見(jiàn)的條目可能無(wú)法實(shí)現(xiàn)存儲(chǔ)并且不會(huì)包括在n-gram表中。這些值回復(fù)到基本存儲(chǔ)的一些其他方法。在表中通過(guò)該方法生成的一些n-gram的示例如下:索引N-gram1e11th47and800outof在壓縮過(guò)程中,使用貪婪算法對(duì)字段對(duì)象從頭自尾進(jìn)行壓縮以將盡可能地將大量數(shù)據(jù)替換為被索引的數(shù)值,直到整個(gè)數(shù)據(jù)被消耗為止。示例#13是一種使用壓縮設(shè)備對(duì)JSON文檔中的半結(jié)構(gòu)化數(shù)據(jù)進(jìn)行壓縮的方法。在該示例中,使用下列模式對(duì)JSON輸入文檔進(jìn)行壓縮,針對(duì)題目(Tittle)、名字(FirstName)、姓氏(LastName)、姓名后綴(NameSuffix)以及電話類(lèi)型(PhoneType)字段進(jìn)行令牌表壓縮,以及針對(duì)出生日期(DataOfBirth)字段進(jìn)行序列天數(shù)(SerialDayNumber)壓縮,以及針對(duì)電話號(hào)碼(PhoneNumber)字段進(jìn)行數(shù)字n-gram壓縮。{"collection":"Example2","record":[{"id":"1","type":"FIELD","name":"Title","compressionMethod":"TitleNameTokenTable"},{"id":"2","type":"FIELD","name":"FirstName","compressionMethod":"FirstNameTokenTable"},{"id":"3","type":"FIELD","name":"LastName","compressionMethod":"LastNameTokenTable"},{"id":"4","type":"FIELD","name":"NameSuffix","compressionMethod":"NameSuffixNameTokenTable"},{"id":"5","type":"FIELD","name":"DateOfBirth","compressionMethod":"SerialDayNumber"},{"id":"6","type":"ARRAY","name":"Phones","array":[{"id":"7","type":"STRUCT","struct":[{"id":"8","type":"FIELD","name":"PhoneType","compressionMethod":"PhoneTypeTokenTable"},{"id":"9","type":"FIELD","name":"PhoneNumber","compressionMethod":"NumberNgramTable"},]}]}]}下面的輸入記錄需要被呈現(xiàn)在JSON中的266個(gè)字節(jié)(在移除了不需要的空格之后)。在壓縮之后,使用上述模式中的壓縮方法,所產(chǎn)生的壓縮的記錄僅需要44個(gè)字節(jié)。{"Title":"Dr.","FirstName":"Johnathan","LastName":"Patterson","NameSuffix":"M.D.","DateOfBirth":"19600101","Phones":[{"PhoneType":"Office","PhoneNumber":"1234567890"},{"PhoneType":"Mobile","PhoneNumber":"2345678901"},{"PhoneType":"Home","PhoneNumber":"3456789012"}]}下面的輸入記錄需要被呈現(xiàn)在JSON中的108個(gè)字節(jié)(在移除了不需要的空格之后)。在壓縮之后,使用上述模式中的壓縮方法,所產(chǎn)生的壓縮的記錄僅需要13個(gè)字節(jié)。{"Title":"Dr.","FirstName":"Johnathan","LastName":"Patterson","NameSuffix":"M.D.","DateOfBirth":"19600101"}圖#14是對(duì)記錄分段的示例。在該示例中,集合中的低53個(gè)記錄包括鮑勃和卡羅爾·威爾遜夫婦的數(shù)據(jù),該數(shù)據(jù)具有第一地址和第二地址。在該示例中,記錄被分段成如下面的表格所示出的那樣。對(duì)記錄索引進(jìn)行維護(hù)以確保系統(tǒng)仍然知道記錄來(lái)自于集合中的相同原始記錄。在該示例中,被分段的記錄還包括通過(guò)包括將系統(tǒng)指向分區(qū)中的前一個(gè)的記錄的數(shù)值的數(shù)據(jù),即,當(dāng)系統(tǒng)訪問(wèn)其名字為53.2的記錄時(shí),所述數(shù)值將系統(tǒng)指向名字為53.1的記錄的值。當(dāng)示例#4中的系統(tǒng)向系統(tǒng)中的其他模塊輸出數(shù)據(jù)(即使是以被壓縮的格式發(fā)送該數(shù)據(jù))時(shí),模塊將實(shí)際的數(shù)值替換成所指向的值。示例#15是用于對(duì)歸檔的半結(jié)構(gòu)化數(shù)據(jù)進(jìn)行壓縮的示例。在該示例中,使用定義了所有所期望的字段的模式來(lái)對(duì)來(lái)自面向文檔的數(shù)據(jù)庫(kù)(MongoDB、Cassandra或CouchDB)的JSON文檔進(jìn)行壓縮,所期望的字段包括每個(gè)JSON文檔的唯一標(biāo)識(shí)符。然后對(duì)將該唯一標(biāo)識(shí)符映射至被壓縮的記錄的索引進(jìn)行創(chuàng)建??梢粤⒓磳?duì)所產(chǎn)生的被壓縮的記錄和消耗率低于15%的存儲(chǔ)器進(jìn)行訪問(wèn),,而無(wú)需對(duì)不必要的數(shù)據(jù)進(jìn)行解壓縮,所述存儲(chǔ)器是針對(duì)面向原始文檔的數(shù)據(jù)庫(kù)和每個(gè)JSON文檔或文檔的選擇字段所需要的。本文中結(jié)合實(shí)施例所描述的各個(gè)示意性邏輯塊、模塊、電路以及算法步驟可以實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為了清楚地說(shuō)明硬件和軟件的這種可互換性,以上主要按照功能對(duì)各種說(shuō)明性的部件、塊、模塊、電路和步驟進(jìn)行了說(shuō)明。這種功能性是實(shí)施為硬件還是軟件取決于特定應(yīng)用和施加于整個(gè)系統(tǒng)上的設(shè)計(jì)限制條件。對(duì)于每個(gè)特定應(yīng)用,本領(lǐng)域技術(shù)人員可以用不同方式實(shí)現(xiàn)所描的功能性,但是這種實(shí)現(xiàn)決定不應(yīng)該被解釋為導(dǎo)致偏離本發(fā)明的保護(hù)范圍。各種實(shí)施方式可以通過(guò)硬件、軟件、固件、中間件、微代碼、硬件描述語(yǔ)言、和/或它們的組合來(lái)實(shí)現(xiàn)。可以用過(guò)程、函數(shù)、子程序、程序、例程、子例程、模塊軟件包、類(lèi)、或指令、數(shù)據(jù)結(jié)構(gòu)或程序語(yǔ)句的任意組合來(lái)表示代碼段或可執(zhí)行的機(jī)器指令。通過(guò)傳遞和/或接收信息、數(shù)據(jù)、變?cè)?、參?shù)、和/或存儲(chǔ)器內(nèi)容,代碼段便可以耦合到另一個(gè)代碼段或硬件電路。信息、變?cè)?shù)、數(shù)據(jù)等可以通過(guò)任何合適的方式被傳遞、轉(zhuǎn)發(fā)或發(fā)送,所述方式包括存儲(chǔ)器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)?。用于?shí)現(xiàn)這些系統(tǒng)和方法的實(shí)際軟件代碼或?qū)S每刂朴布幌拗票景l(fā)明。在沒(méi)有參考具體軟件代碼的情況下描述了這些系統(tǒng)和方法的操作和性能,應(yīng)當(dāng)理解,軟件和控制硬件可以被設(shè)計(jì)成實(shí)現(xiàn)基于此處的描述的系統(tǒng)和方法。當(dāng)在軟件中執(zhí)行功能時(shí),該功能可作為一條或多條指令或代碼存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上或借其進(jìn)行傳送。本文所公開(kāi)的方法或算法的步驟可以體現(xiàn)在處理器可執(zhí)行模塊中,該處理器可執(zhí)行模塊可以駐留在計(jì)算機(jī)可讀或處理器可讀存儲(chǔ)介質(zhì)上。非易失性計(jì)算機(jī)可讀介質(zhì)或處理器可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和有形的存儲(chǔ)介質(zhì)二者,所述二者有利于將計(jì)算機(jī)程序從一個(gè)地方轉(zhuǎn)移到另一個(gè)地方。非易失性處理器可讀介質(zhì)可以是計(jì)算機(jī)能夠訪問(wèn)的任意可獲得的介質(zhì)。以示例而非限制的方式,該非易失性處理器可讀介質(zhì)可包括RAM、ROM、EEPROM、CD-ROM或其它光盤(pán)存儲(chǔ)設(shè)備、磁盤(pán)存儲(chǔ)設(shè)備或其它磁性存儲(chǔ)設(shè)備,或可用于攜載或存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)形式的所期望的程序代碼且可由計(jì)算機(jī)存取的任何其他有形存儲(chǔ)介質(zhì)。本文所使用的磁盤(pán)和光盤(pán)包括壓縮盤(pán)(CD)、激光盤(pán)、光學(xué)盤(pán)、數(shù)字多功能盤(pán)(DVD)、軟盤(pán)和藍(lán)光盤(pán),其中,磁盤(pán)通常以磁的方式再現(xiàn)數(shù)據(jù),而光盤(pán)采用激光以光學(xué)的方式再現(xiàn)數(shù)據(jù)。上述的組合也應(yīng)該包含在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。此外,方法或算法的操作可作為代碼和/或指令的一個(gè)或任何組合或集合而存在于非易失性處理器可讀介質(zhì)和/或計(jì)算機(jī)可讀介質(zhì)上,這些介質(zhì)可以合并到計(jì)算機(jī)程序產(chǎn)品中。所公開(kāi)的實(shí)施例的前述說(shuō)明用于使本領(lǐng)域任何技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。這些實(shí)施例的各種修改對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō)是明顯的,這里定義的一般原理可以被應(yīng)用于其它實(shí)施例中而不使用創(chuàng)造能力。因此,本發(fā)明并不局限于這里所示的實(shí)施例,而是符合與這里所公開(kāi)的原則和新穎性特征相一致的最寬的范圍。盡管已經(jīng)公開(kāi)了多個(gè)方面和實(shí)施例,但是也可以考慮其他方面和實(shí)施例。所公開(kāi)的各個(gè)方面和實(shí)施例僅出于示意性的目的而并非在于限制性的,本發(fā)明的真實(shí)范圍和主旨由上述權(quán)利要求進(jìn)行指示。所提供的前述方法描述和處理流程圖僅作為示例性目的并且并非意在要求或暗示各個(gè)實(shí)施例中的步驟必須按照所提出的順序來(lái)執(zhí)行。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解的是,可以按照任意順序來(lái)執(zhí)行前述實(shí)施例。文字(諸如,“然后”,“接下來(lái)”等)并非意在限制步驟的順序;這些文字僅簡(jiǎn)單地用于引導(dǎo)讀者通過(guò)方法的整個(gè)描述。盡管處理流程圖可能將操作描述為順序處理,但是多個(gè)這些操作可以并行地或同時(shí)執(zhí)行。此外,操作的順序可以被重新布置。處理可以對(duì)應(yīng)于方法、函數(shù)、例程、子例程、子程序等。當(dāng)處理對(duì)應(yīng)于函數(shù)時(shí),該函數(shù)的終止可以對(duì)應(yīng)于所述函數(shù)返回到調(diào)用函數(shù)或主函數(shù)。本文中結(jié)合實(shí)施例所描述的各個(gè)示意性邏輯塊、模塊、電路以及算法步驟可以實(shí)現(xiàn)為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為了清楚地說(shuō)明硬件和軟件的這種可互換性,以上主要按照功能對(duì)各種說(shuō)明性的部件、塊、模塊、電路和步驟進(jìn)行了說(shuō)明。這種功能性是實(shí)施為硬件還是軟件取決于特定應(yīng)用和施加于整個(gè)系統(tǒng)上的設(shè)計(jì)限制條件。對(duì)于每個(gè)特定應(yīng)用,本領(lǐng)域技術(shù)人員可以用不同方式實(shí)現(xiàn)所描的功能性,但是這種實(shí)現(xiàn)決定不應(yīng)該被解釋為導(dǎo)致偏離本發(fā)明的保護(hù)范圍。各種實(shí)施方式可以通過(guò)硬件、軟件、固件、中間件、微代碼、硬件描述語(yǔ)言、和/或它們的組合來(lái)實(shí)現(xiàn)。可以用過(guò)程、函數(shù)、子程序、程序、例程、子例程、模塊軟件包、類(lèi)、或指令、數(shù)據(jù)結(jié)構(gòu)或程序語(yǔ)句的任意組合來(lái)表示代碼段或可執(zhí)行的機(jī)器指令。通過(guò)傳遞和/或接收信息、數(shù)據(jù)、變?cè)?、參?shù)、和/或存儲(chǔ)器內(nèi)容,代碼段便可以耦合到另一個(gè)代碼段或硬件電路。信息、變?cè)?、參?shù)、數(shù)據(jù)等可以通過(guò)任何合適的方式被傳遞、轉(zhuǎn)發(fā)或發(fā)送,所述方式包括存儲(chǔ)器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)?。用于?shí)現(xiàn)這些系統(tǒng)和方法的實(shí)際軟件代碼或?qū)S每刂朴布幌拗票景l(fā)明。在沒(méi)有參考具體軟件代碼的情況下描述了這些系統(tǒng)和方法的操作和性能,應(yīng)當(dāng)理解,軟件和控制硬件可以被設(shè)計(jì)成實(shí)現(xiàn)基于此處的描述的系統(tǒng)和方法。當(dāng)在軟件中執(zhí)行功能時(shí),該功能可作為一條或多條指令或代碼存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上或借其進(jìn)行傳送。本文所公開(kāi)的方法或算法的步驟可以體現(xiàn)在處理器可執(zhí)行模塊中,該處理器可執(zhí)行模塊可以駐留在計(jì)算機(jī)可讀或處理器可讀存儲(chǔ)介質(zhì)上。非易失性計(jì)算機(jī)可讀介質(zhì)或處理器可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和有形的存儲(chǔ)介質(zhì)二者,所述二者有利于將計(jì)算機(jī)程序從一個(gè)地方轉(zhuǎn)移到另一個(gè)地方。非易失性處理器可讀介質(zhì)可以是計(jì)算機(jī)能夠訪問(wèn)的任意可獲得的介質(zhì)。以示例而非限制的方式,該非易失性處理器可讀介質(zhì)可包括RAM、ROM、EEPROM、CD-ROM或其它光盤(pán)存儲(chǔ)設(shè)備、磁盤(pán)存儲(chǔ)設(shè)備或其它磁性存儲(chǔ)設(shè)備,或可用于攜載或存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)形式的所期望的程序代碼且可由計(jì)算機(jī)存取的任何其他有形存儲(chǔ)介質(zhì)。本文所使用的磁盤(pán)和光盤(pán)包括壓縮盤(pán)(CD)、激光盤(pán)、光學(xué)盤(pán)、數(shù)字多功能盤(pán)(DVD)、軟盤(pán)和藍(lán)光盤(pán),其中,磁盤(pán)通常以磁的方式再現(xiàn)數(shù)據(jù),而光盤(pán)采用激光以光學(xué)的方式再現(xiàn)數(shù)據(jù)。上述的組合也應(yīng)該包含在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。此外,方法或算法的操作可作為代碼和/或指令的一個(gè)或任何組合或集合而存在于非易失性處理器可讀介質(zhì)和/或計(jì)算機(jī)可讀介質(zhì)上,這些介質(zhì)可以合并到計(jì)算機(jī)程序產(chǎn)品中。應(yīng)當(dāng)理解的是,該各種部件也可配置在分布式網(wǎng)絡(luò)中的遠(yuǎn)端部分,例如電話電信網(wǎng)絡(luò)和/或因特網(wǎng),或者在專(zhuān)用安全,非安全和/或加密系統(tǒng)中。因此,應(yīng)當(dāng)理解的是,系統(tǒng)的部件可以被結(jié)合到一個(gè)或多個(gè)設(shè)備中或者被共置在分布式網(wǎng)絡(luò)的特定節(jié)點(diǎn)上,所述分布式網(wǎng)絡(luò)例如是電信網(wǎng)絡(luò)。如根據(jù)說(shuō)明書(shū)將會(huì)理解的,并且出于計(jì)算效率的原因,在影響系統(tǒng)的操作的情況下,系統(tǒng)的部件可以被布置在分布式網(wǎng)絡(luò)內(nèi)的任何位置處。此外,部件可以被嵌入到專(zhuān)用機(jī)器中。此外,應(yīng)當(dāng)理解的是,連接這些單元的各種各樣的鏈路可以是有線或者無(wú)線鏈路,或者其任意的組合,或者任何其它已知的或者稍后開(kāi)發(fā)的單元,該單元能夠提供和/或交換信息出入這些連接的單元。本文所使用的術(shù)語(yǔ)“模塊”可以是任何已知或者以后開(kāi)發(fā)的、能夠執(zhí)行與元件有關(guān)的功能的硬件、軟件、固件或者其組合體。如本文所使用,術(shù)語(yǔ)“確定(determine)”、“運(yùn)算(calculate)”和“計(jì)算(compute)”以及它們的變形被交互使用并且包括任何類(lèi)型的方法、過(guò)程、數(shù)學(xué)運(yùn)算或者技術(shù)。所公開(kāi)的實(shí)施例的前述說(shuō)明用于使本領(lǐng)域任何技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。這些實(shí)施例的各種修改對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō)是明顯的,這里定義的一般原理可以被應(yīng)用于其它實(shí)施例中而不使用創(chuàng)造能力。因此,本發(fā)明并不局限于這里所示的實(shí)施例,而是符合與這里所公開(kāi)的原則和新穎性特征相一致的最寬的范圍。上述實(shí)施例是示例性的。本領(lǐng)域的技術(shù)人員認(rèn)為:多個(gè)可替代部件和實(shí)施例可以用于代替本文所描述的特定示例并且仍然屬于本發(fā)明的保護(hù)范圍。當(dāng)前第1頁(yè)1 2 3