專利名稱:利用索引來搜索結(jié)構(gòu)化文檔的系統(tǒng)和方法
利用索引來搜索結(jié)構(gòu)化文檔的系統(tǒng)和方法技術(shù)領(lǐng)域 l明移和方法,更特別地,涉及適合如下情況的結(jié)構(gòu)化文檔搜索系統(tǒng)和方法,其 中根據(jù)一搜索條件來指定覆蓋多個節(jié)點值的值搜索以及對于為所述多個節(jié) 點所共有的 一個相關(guān)節(jié)點的搜索。
背景技術(shù):
把一具有邏輯結(jié)構(gòu)的文檔稱為一結(jié)構(gòu)化文檔。在一結(jié)構(gòu)化文檔中,所 述文檔的邏輯結(jié)構(gòu)由寫在所述文檔中的標簽指示。利用所述標簽表示其邏 輯結(jié)構(gòu)的結(jié)構(gòu)化文檔適合在計算機上處理。擴展標記語言(XML )是廣泛使用的利用標簽來描述數(shù)據(jù)的手段。XML 的特點是利用有意義標簽的層次數(shù)據(jù)和結(jié)構(gòu)的自由擴展。由于應(yīng)用XML 的技術(shù)使這些特征很好地使用,被稱為XML數(shù)據(jù)庫(XMLDB )的數(shù)據(jù)庫 被人們所熟知。所述XML數(shù)據(jù)庫由一稱為XML數(shù)據(jù)庫管理系統(tǒng) (XMLDBMS )的數(shù)據(jù)庫管理系統(tǒng)所控制。所述XML數(shù)據(jù)庫提供存儲XML 文檔和搜索一XML文檔(在所述XML文檔中指定的結(jié)構(gòu))的功能。利用XML書寫的所述XML文檔被認為是結(jié)構(gòu)化文檔的代表。一 XML 文檔由構(gòu)成一樹狀結(jié)構(gòu)的元素所組成。每個元素也被稱為一個節(jié)點(或標 簽節(jié)點),由一標簽和一內(nèi)容(或值)組成。所述樹狀結(jié)構(gòu)從作用為根(根 節(jié)點)的元素開始。所述單個元素^C配置成這樣的方式,它們具有父-子 關(guān)系和兄弟-姐姝關(guān)系。經(jīng)常使用一標準化搜索語言來搜索XML文檔中的節(jié)點。XPath和 XQuery被認為是典型的查詢語言。XPath用于通過指定所述XML文檔中元素(或節(jié)點)的位置來進行搜索。在包括一 XML數(shù)據(jù)庫管理系統(tǒng)的XML文檔搜索系統(tǒng)(或者一結(jié)構(gòu)化 文檔搜索系統(tǒng))中,為了加快搜索,索引被對應(yīng)附加給被認為是值搜索的 可能目標的節(jié)點(例如,參見日本專利申請KOKAI公開號2006 - 018584 的第0013段)。這樣的索引被稱為值索引。附圖2示例了樹狀結(jié)構(gòu)的XML文檔的例子。在一存儲附圖2的所述 XML文檔的數(shù)據(jù)庫(XML數(shù)據(jù)庫)中,假定搜索一滿足標題為"TCP..." 的條件的書。在這個例子中,以例如Xpath描述由一客戶(一客戶終端) 作出的查詢(下文中,稱為第一查詢),給出如下/bib/book[title="TCP.."為了加快基于第一查詢(XPath)的搜索,值索引被對應(yīng)附加給被認 為是值搜索的可能目標的標題節(jié)點。所述值索引由值(關(guān)鍵詞),例如 "TCP.."和"Adv..",以及節(jié)點IDs的集合所組成。節(jié)點ID是分配^ 個節(jié)點的唯一數(shù)字,其指示存儲于所述數(shù)據(jù)庫中的一 XML文檔中的一邏 輯位置(節(jié)點位置)。附圖22A到22C示例了值索引的例子。附圖22A示例了具有標題名字 的值的節(jié)點(標題節(jié)點)的值索引的例子。附圖22B示例了具有最后名字 的值的節(jié)點(最后節(jié)點)的值索引的例子。附圖22C示例了具有第一名字 的值的節(jié)點(第一節(jié)點)的值索引的例子。這些值索引通常凈皮保存在一值 索引表格中。在基于從客戶向XML文檔搜索系統(tǒng)的一查詢的搜索中,利用一節(jié)點 (元素)的值作為一關(guān)鍵詞進行索引的搜索。如果相應(yīng)的索引被找到,可以 獲得相應(yīng)于所述值的節(jié)點ID。在所述第一查詢(XPath)的例子中,所述 XML文檔搜索系統(tǒng)可以從被對應(yīng)附加給所述標題節(jié)點的所述值索引中確 定存在滿足標題為"TCP.."的條件的節(jié)點,并且節(jié)點ID是3 (參見附圖 22A)。如上描述的,在搜索中利用索引(值索引)的所述XML文檔搜索系 統(tǒng)具有下面優(yōu)點。首先,所述XML文檔搜索系統(tǒng)可以確定是否存在符合所述查詢條件的節(jié)點而不必搜索存儲于所述數(shù)據(jù)庫中的所有XML文檔(或 細查所述XML文檔)。如果存在這樣的節(jié)點,所述XML文檔搜索系統(tǒng) 可以確定所述節(jié)點的位置。這使得所述XML文檔搜索系統(tǒng)能夠高速執(zhí)行 搜索。為了加快指定了結(jié)構(gòu)條件的搜索,已知一種抽取存儲在所述數(shù)據(jù)庫中 的XML文檔上的結(jié)構(gòu)信息并且編譯一索引的方法。這樣的索引凈皮認為是 結(jié)構(gòu)索引。所述結(jié)構(gòu)索引包括指示結(jié)構(gòu)的一組路徑字符串,例如"/"或 "/bib,,,以及具有所述結(jié)構(gòu)的節(jié)點的節(jié)點ID。如果有多個節(jié)點符合相同的 路徑字符串(如,在附圖2的例子中的"/bit/book"),所述多個節(jié)點ID 相應(yīng)于相同路徑字符串。這樣的結(jié)構(gòu)索引的數(shù)據(jù)結(jié)構(gòu)與應(yīng)用于后面說明的 本發(fā)明實施例的結(jié)構(gòu)索引相同。因此,如果需要的話參考附圖6。在所述第一查詢(XPath)中,所述XML文檔搜索系統(tǒng)基于一值索引 來發(fā)現(xiàn)符合所述值搜索條件的一個節(jié)點(節(jié)點ID為3的一節(jié)點)。不能 僅由所述值索引來確定所述節(jié)點是否符合在XPath中給定的結(jié)構(gòu)條件 (/bib/book/title)。這樣,使用所述結(jié)構(gòu)索引,所述XML文檔搜索系統(tǒng)檢 測所述節(jié)點是否符合所述結(jié)構(gòu)^K從附圖6的所述結(jié)構(gòu)索引(結(jié)構(gòu)索引 表)中可以看出存在符合所述結(jié)構(gòu)條件(/bib/book/title)的節(jié)點(即,三 個具有表示為"/bib/book/title"的結(jié)構(gòu)的節(jié)點)并且所述節(jié)點的節(jié)點IDs 是3, 13和26。節(jié)點ID是3的所述節(jié)點同時滿足結(jié)構(gòu)條件和所迷值搜索 條件。因此,可以確定所述節(jié)點ID為3的節(jié)點滿足所有搜索條件。如上描述的,在一搜索中^f吏用一值索引和一結(jié)構(gòu)索引的所述XML文 檔搜索系統(tǒng)具有下面的優(yōu)點。首先,所述XML文檔搜索系統(tǒng)可以確定是 否存在符合包含所述結(jié)構(gòu)條件的所述查詢條件的節(jié)點,而不必搜索存儲在 所述數(shù)據(jù)庫中的所有XML文檔。如果存在這樣的節(jié)點,所述XML文檔 搜索系統(tǒng)可以確定所述節(jié)點的位置。這使得有可能高速地執(zhí)行搜索。然而,在上述傳統(tǒng)的技術(shù)中,當處理在其中指定了值搜索的多個目標 的查詢時,這將延遲所述搜索。原因是需要搜索存儲在數(shù)據(jù)庫中的所有 XML文檔(細查所述XML文檔)。在其中指定了值搜索的多個目標的查詢的例子是,在一查詢中,由AND操作符"and"指定了作為值搜索的目 標的多個節(jié)點(標簽節(jié)點)。當在包括所述AND操作符"and"的條件下 搜索多個節(jié)點時,這將由于上述原因延遲所述搜索。下文中,這樣的搜索將利用一個例子來進行解釋,其中基于下面的第 二查詢(xPath):/bib/book/author[last="Stevens" and first="W.,,]來搜索出滿足條件的作者,其中最后節(jié)點的值(最后名字)是"Stevens" (last= "Stevens")并且第一節(jié)點的值(第一名字)是"W." ( first = "W.")。如上描述的,值索引被對應(yīng)附加給被認為是搜索的可能目標的節(jié)點。 所述值索引由例如,"Stevens"或"Buneman"這樣的值(關(guān)鍵詞)以及 一節(jié)點ID的集合來構(gòu)成。在第二查詢的例子中,如附圖22B和22C中所 示的,為(i)最后節(jié)點和(ii)第一節(jié)點中的每個分配一值索引,使其能 夠高速搜索滿足所述最后名字是"Stevens" (last- "Stevens")的條件 的節(jié)點和滿足第一名字是"W." (first- "W.")的條件的節(jié)點。然而,在所述第二查詢中示出的搜索條件是"作者為A和[B"的所 述AND條件。因此,對于基于所述值索引搜索的最后節(jié)點和第一節(jié)點, 具有相同父節(jié)點(作者節(jié)點)的節(jié)點,即,與相同節(jié)點(作者節(jié)點)相連 接的節(jié)點,必須4皮選擇。然而,這樣的連接不能從所述值索引來確定。相 應(yīng)地,在傳統(tǒng)的^t術(shù)中,存儲在所述數(shù)據(jù)庫中的所有XML文檔必須實際 地從被搜索的所述最后節(jié)點和第一節(jié)點中搜索,其引起了所述搜索的延遲。在傳統(tǒng)技術(shù)中,即使在使用結(jié)構(gòu)索引的搜索中也會如下面描述的引起 這樣的延遲?;诘诙樵儚乃鲋邓饕兴阉鞯乃鲎詈蠊?jié)點的節(jié)點 IDs,即,滿足最后名字是"Stevens" (last- "Stevens")的值搜索條件 的節(jié)點的節(jié)點IDs是16和29 (參見附圖22 (b))。此外,從所述值索引 中搜索的第一節(jié)點的節(jié)點IDs,即,滿足笫一名字是"W." (first- "W.") 的值搜索條件的節(jié)點的節(jié)點IDs是8, 18和23。(參見附圖22(c))當獲得所述最后節(jié)點的節(jié)點IDs的集合(候選集合)和所述第一節(jié)點 的節(jié)點IDs的集合(候選集合)時,從所述結(jié)構(gòu)索引中確定,例如,包括在所述兩個候選集合中的節(jié)點IDs是否滿足所述結(jié)構(gòu)條件(對于所述最后 節(jié)點是/bib/book/author/last 以及對于所述第 一 節(jié)點是 /bib/book/author/first)。在這個例子中,可以看到所有的節(jié)點IDs都滿足 所述結(jié)構(gòu)條件。接著,對于由所述索引所限定的最后節(jié)點和第一節(jié)點的所有組合,具 有相同父(作者節(jié)點)的組合在作者是A和B]的AND條件下必須被選擇。 在這個例子中,滿足AND條件的節(jié)點僅僅是在最后名字是"Stevens" (last ="Stevens")的節(jié)點中的其節(jié)點ID是16的節(jié)點和在第一名字是"W." (first= "W.")的節(jié)點中的其節(jié)點ID是18的節(jié)點的組合。然而,不能從所述值索引和結(jié)構(gòu)索引中確定所述最后節(jié)點和第一節(jié)點 是否具有相同的父節(jié)點。相應(yīng)地,在傳統(tǒng)技術(shù)中,存儲在數(shù)據(jù)庫中的所有 XML文檔必須實際地被搜索,導(dǎo)致所述搜索的延遲。發(fā)明內(nèi)容本發(fā)明的 一個目標是,即使在執(zhí)行在其中指定了值搜索的多個目標的 查詢時,也不必搜索存儲在數(shù)據(jù)庫中的結(jié)構(gòu)化文檔,從而加快搜索。根據(jù)本發(fā)明的一個方面,提供了一種結(jié)構(gòu)化文檔的搜索系統(tǒng)。所述結(jié) 構(gòu)化文檔搜索系統(tǒng)包括一索引存儲單元和一搜索單元。所述索引存儲單元 存儲被對應(yīng)附加給節(jié)點的索引,所述節(jié)點包含在存儲于數(shù)據(jù)庫中的結(jié)構(gòu)化 文檔中。所述索引包括關(guān)于蜂皮對應(yīng)附加該索引的節(jié)點的節(jié)點信息項和關(guān)于 相關(guān)節(jié)點的位置信息項。所述節(jié)點信息項包括關(guān)于被對應(yīng)附加所述索引的 節(jié)點的位置信息項。所^目關(guān)節(jié)點是預(yù)先指定類型的節(jié)點,其在包括凈皮對 應(yīng)附加所述索引的節(jié)點的結(jié)構(gòu)化文檔的樹狀結(jié)構(gòu)上相對于所述被對應(yīng)附加 索引的節(jié)點具有特定關(guān)系。所述搜索單元配置為基于在來自客戶的搜索請 求中指定的搜索條件來在所述索引存儲單元中搜索索引。當所述搜索M 包括覆蓋多個節(jié)點的值的值搜索條件并且是指定了對于為所迷多個節(jié)點所 共有的一個相關(guān)節(jié)點的搜索的特定搜索條件時,所述搜索單元在所述索引 存儲單元中搜索符合所述值搜索條件的索引,并且從所述被搜索的索引中獲取關(guān)于為所述凈皮搜索的索引所共有的 一個相關(guān)節(jié)點的位置信息項。
包含在說明書中并組成說明書的一部分的附圖示例了本發(fā)明的實施 例,并且與上述給出的概要描述和下面給出的實施例的詳細描述一起用于 解釋本發(fā)明的原理。附圖1是示例了根據(jù)本發(fā)明一實施例的包括結(jié)構(gòu)化文檔搜索系統(tǒng)的客戶服務(wù)器系統(tǒng)的硬件配置的模塊圖;附圖2示例了附圖1中的數(shù)據(jù)庫所存儲的XML文檔集合的例子; 附圖3是主要示例了附圖1的結(jié)構(gòu)化文檔搜索系統(tǒng)的功能配置的^^莫塊附圖4示例了附圖3中所示的索引表格的數(shù)據(jù)結(jié)構(gòu)的例子; 附圖5示例了附圖3中所示的值索引表格的數(shù)據(jù)結(jié)構(gòu)的例子; 附圖6示例了附圖3中所示的結(jié)構(gòu)索引表格的數(shù)據(jù)結(jié)構(gòu)的例子; 附圖7是一流程圖,用于幫助解釋在實施例中的索引處理的過程; 附圖8是一流程圖,用于幫助解釋在實施例中的文檔存儲處理的過程; 附圖9A和9B是流程圖,用于幫助解釋在實施例中搜索處理的過程; 附圖10A和10B示例了根據(jù)所述值搜索條件從具有附圖5的數(shù)據(jù)結(jié)構(gòu)的值索引表格中獲取的第 一候選節(jié)點列表的例子;附圖11示例了包含在附圖10A和10B的第一候選節(jié)點列表中的其值為"Stevens"的最后節(jié)點和其值為"W."的笫一節(jié)點在附圖2的XML文檔中的位置;附圖12A和12B示例了根據(jù)所述值搜索條件從具有附圖6的數(shù)據(jù)結(jié)構(gòu) 的結(jié)構(gòu)索引表格中獲取的第二候選節(jié)點列表的例子;附圖13A和13B示例了將根據(jù)所述值搜索條件從所述值索引表格和結(jié) 構(gòu)索引表格中獲取的所述候選列表進行合并而得到的第三候選節(jié)點列表的 例子;附圖14示例了一組合列表,其相關(guān)的節(jié)點IDs在附圖13A和13B的所述候選節(jié)點列表之間相互 一致;附圖15是一模塊圖,主要示例了應(yīng)用于一實施例變體的結(jié)構(gòu)化文檔搜索系統(tǒng)的功能配置;附圖16示例了附圖15中所示的值索引表格的數(shù)據(jù)結(jié)構(gòu)的例子; 附圖17示例了附圖15中所示的結(jié)構(gòu)索引表格的數(shù)據(jù)結(jié)構(gòu)的例子; 附圖18是一流程圖,用于幫助解釋在所述變體中的文檔存儲處理過程;附圖19A和19B是流程圖,用于幫助解釋所述變體中搜索處理的過程;附圖20A和20B示例了根據(jù)所述值搜索條件從具有附圖16的數(shù)據(jù)結(jié) 構(gòu)的值索引表格中獲取的第一候選節(jié)點列表的例子;附圖21A和21B示例了根據(jù)所述值搜索條件從具有附圖17的數(shù)據(jù)結(jié) 構(gòu)的結(jié)構(gòu)索引表格中獲取的第二候選節(jié)點列表的例子;以及附圖22A到22C示例了應(yīng)用于傳統(tǒng)技術(shù)的值索引的例子。
具體實施方式
下文中,將參考附圖解釋本發(fā)明的實施例。附圖1是示例了根據(jù)本發(fā)明 一實施例的包括結(jié)構(gòu)化文檔搜索系統(tǒng)50的客戶服務(wù)器系統(tǒng)的硬件配置的模塊圖。所i^J:戶服務(wù)器系統(tǒng)主要由一數(shù)據(jù)庫服務(wù)器IO和多個客戶(客戶終端)組成。所述多個客戶包括客戶20。 在客戶20上, 一應(yīng)用(應(yīng)用程序)使用數(shù)據(jù)庫服務(wù)器10進行操作。包括 客戶20的所述多個客戶通過例如局域網(wǎng)(LAN)的網(wǎng)絡(luò)30連接到所述數(shù) 據(jù)庫服務(wù)器10。在附圖1中,除了客戶20以外的客戶被省略。所述數(shù)據(jù)庫服務(wù)器10是一具有例如一主存儲器的存儲器11的計算機 (數(shù)據(jù)庫服務(wù)器計算機)。所述數(shù)據(jù)庫服務(wù)器10連接到例如一硬盤驅(qū)動器 的外部存^i殳備40。所述外部存儲設(shè)備40存儲數(shù)據(jù)庫管理程序41和數(shù)據(jù) 庫42。在所述實施例中,結(jié)構(gòu)化文檔搜索系統(tǒng)50通過數(shù)據(jù)庫服務(wù)器10和 外部存儲i殳備40 (數(shù)據(jù)庫42 )來實現(xiàn)。所述數(shù)據(jù)庫管理程序41用于由所述數(shù)據(jù)庫服務(wù)器10管理所述數(shù)據(jù)庫42以及用于基于來自客戶的查詢的搜索處理,所述查詢利用XPath, XQuery等等。所述數(shù)據(jù)庫42是一 XML文檔數(shù)據(jù)庫(結(jié)構(gòu)化文檔數(shù)據(jù)庫), 其存儲例如XML文檔(XML電子文檔)這樣的結(jié)構(gòu)化文檔。附圖2示例了存儲在數(shù)據(jù)庫42中的XML文檔集合的例子。在附圖2 的例子中,所述數(shù)據(jù)庫42存儲一包括XML文檔101到XML文檔103的 XML文檔的集合。包含在存儲于數(shù)據(jù)庫42中的XML文檔中的每個節(jié)點 具有如傳統(tǒng)技術(shù)中一樣的指示所述節(jié)點位置的節(jié)點ID。在附圖2中,每個 所述節(jié)點附近的數(shù)字指示所述節(jié)點的節(jié)點ID。附圖3是主要示例了附圖1的結(jié)構(gòu)化文檔搜索系統(tǒng)50的功能配置的模 塊圖。所述結(jié)構(gòu)化文檔搜索系統(tǒng)50包括一數(shù)據(jù)庫管理系統(tǒng)51和數(shù)據(jù)庫42。 所述數(shù)據(jù)庫42不僅存儲XML文檔集合還存儲索引表格421 、值索引表格 422和結(jié)構(gòu)索引表格423。所述索引表格421用于管理關(guān)于節(jié)點的信息(索引信息),所述節(jié)點 包括在存儲于數(shù)據(jù)庫42中的XML文檔中并且將被分配(設(shè)置)值索引。 所述值索引表格422保存被分配給(被對應(yīng)附加給)由所述索引表格421 管理的所述節(jié)點(被認為是一值搜索的可能目標的節(jié)點)的值索引(索引 信息項)。每個所述值索引包括節(jié)點(元素)的值(關(guān)鍵詞),所述節(jié)點 的節(jié)點ID以及相關(guān)節(jié)點(此處,指一父節(jié)點)的節(jié)點ID。所述結(jié)構(gòu)索引 表格423保存表示所述節(jié)點的結(jié)構(gòu)的結(jié)構(gòu)索引,所述節(jié)點包括在存儲于數(shù) 據(jù)庫42中的XML文檔中。所述數(shù)據(jù)庫管理系統(tǒng)51包括一請求處理單元52, 一搜索單元53, — 索引管理單元54, —文檔存儲處理單元55, 一數(shù)據(jù)庫操作單元56, 一索 引表格57, 一值索引表格58以及一結(jié)構(gòu)索引表格59。M戶20接收一請求(命令),所述請求處理單元52確定所述請求 的類型,并且基于所述確定的結(jié)果把所述請求發(fā)送給所述搜索單元53、索 引管理單元54或者文檔存儲處理單元55。如果來自客戶20的所述請求是 一搜索請求,則所述請求處理單元52把所述搜索請求發(fā)送到所述搜索單元 53。如果來自客戶20的所述請求是一索引請求,則所述請求處理單元52把所述索引請求發(fā)送到所述索引管理單元54。如果來自客戶20的所述請 求是一文檔存 求,則所述請求處理單元52把所述文檔存儲請求發(fā)送到 所述文檔存儲處理單元55。通過所述請求處理單元52接收來自客戶20的搜索請求,所述搜索單 元53基于包括在所述搜索請求中的一查詢來執(zhí)行一搜索處理。在所述搜索 處理中,所述索引管理單元54 (由所述索引管理單元54管理的所述值索 引表格58和結(jié)構(gòu)索引表格59)被使用。所述搜索單元53包括一值索引搜 索模塊531, 一結(jié)構(gòu)索引搜索模塊532以及一搜索結(jié)果獲f^莫塊533。所述值索引搜索模塊531在值索引表格58中搜索其值符合在所述搜索 請求(查詢)中指定的搜索*的值索引。所述結(jié)構(gòu)索引搜索模塊532在 所述結(jié)構(gòu)索引表格59中搜索其結(jié)構(gòu)符合在所述搜索請求中指定的搜索條 件的結(jié)構(gòu)索引。所述搜索結(jié)果獲W^塊533基于在所述值索引搜索模塊531 和結(jié)構(gòu)索引搜索模塊532中搜索所述索引的結(jié)果來獲取所述搜索請求的搜 索結(jié)果。所述索引管理單元54通過所述請求處理單元52從所i^戶20接收索 引請求,并且基于所述索引請求來執(zhí)行一索引處理。在所述索引處理中, 關(guān)于在一XML文檔中的元素(節(jié)點)的信息被添加到所述索引表格57, 其中在所述索引請求中指定的值索引將被分配(設(shè)置)到所述XML文檔 中的元素。利用所述索引表格57,所述索引管理單元54也管理關(guān)于已被 分配(設(shè)置)值索引的節(jié)點的信息?;谒鲋邓饕砀?8,所述索引管 理單元54進一步為符合值搜索條件的節(jié)點產(chǎn)生一索引信息項(值索引)的 列表。當所述值搜索M包含一結(jié)構(gòu)M時,所述索引管理單元54基于所 述結(jié)構(gòu)索引表格59進一步為符合所述結(jié)構(gòu)條件的節(jié)點產(chǎn)生一索引信息項 (結(jié)構(gòu)索引)的列表。當所述搜索單元53執(zhí)行一值搜索處理時,所述索引 管理單元54根據(jù)來自所述搜索單元53的所述請求產(chǎn)生一列表。產(chǎn)生的列 表被發(fā)送到所述搜索單元53。所述文檔存儲處理單元55通過所述請求處理單元52從客戶20接收所 述文檔存儲請求,并且執(zhí)行把在所述文檔存儲請求中指定的一 XML文檔存儲到數(shù)據(jù)庫42中的文檔存儲處理。在所述文檔存儲處理中,所述文檔存 儲處理單元55產(chǎn)生如下的值索引并把所述值索引添加到所述值索引表格 58,即在包括在存儲于所述數(shù)據(jù)庫42中的XML文檔中的節(jié)點之中,所述 值索引將被分配給那些被指定在索引表格57進行索引的節(jié)點。所述數(shù)據(jù)庫 操作單元56起接口的作用,該接口使搜索單元53、索引管理單元54以及 文檔存儲處理單元55能夠訪問數(shù)據(jù)庫42并且在數(shù)據(jù)庫42上執(zhí)行處理。所述索引表格57、值索引表格58和結(jié)構(gòu)索引表格59分別相應(yīng)于存儲 于數(shù)據(jù)庫42中的索引表格421、值索引表格422和結(jié)構(gòu)索引表格423。在 實施例中,在所述結(jié)構(gòu)化文檔搜索系統(tǒng)50啟動時,所述索引表格421、值 索引表格422和結(jié)構(gòu)化索引表格423作為索引表格57、值索引表格58和 結(jié)構(gòu)化索引表格59從數(shù)據(jù)庫42中被復(fù)制到附圖1中的存儲器ll中。當所 述結(jié)構(gòu)化文檔搜索系統(tǒng)50在操作時,所述索引表格57、值索引表格58和 結(jié)構(gòu)索引表格59被查閱或者更新。索引表格57、值索引表格58和結(jié)構(gòu)索 引表格59的被更新的內(nèi)容周期性地或者根據(jù)需要(如,當系統(tǒng)50的負載 低時)反映在索引表格421、值索引表格422和結(jié)構(gòu)索引表格423中。附圖4示例了附圖3中所示的所述索引表格57的數(shù)據(jù)結(jié)構(gòu)的例子。在 該實施例中,所述索引表格57用作為每個路徑(路徑字符串)保存索引信 息的索引信息存儲單元。索引信息包括相應(yīng)于所述索引信息的路徑和相關(guān) 節(jié)點類型信息。所述路徑是一絕對路徑,其將在該路徑中指定的一節(jié)點的結(jié)構(gòu)表示為 從根節(jié)點到所述節(jié)點的路徑。相關(guān)節(jié)點類型信息指示與在所述路徑中指定 的所述節(jié)點(指定節(jié)點)具有特定關(guān)系的一節(jié)點(相關(guān)節(jié)點)的類型,所 述路徑祐 使得相應(yīng)于包括所述指定節(jié)點的XML文檔的層次結(jié)構(gòu)(樹狀結(jié) 構(gòu))的信息。當所述結(jié)構(gòu)化文檔搜索系統(tǒng)50發(fā)起搜索多個節(jié)點并且為所述 多個節(jié)點所共有的一相關(guān)節(jié)點被獲取作為搜索的結(jié)果時,用戶指定所述類 型。相關(guān)節(jié)點是在包括所述指定節(jié)點的XML文檔的層次結(jié)構(gòu)(樹狀結(jié)構(gòu)) 上與所述指定節(jié)點具有一特定關(guān)系的節(jié)點。例如, 一相關(guān)節(jié)點是父節(jié)點或兄弟節(jié)點。 一相關(guān)節(jié)點可以在包括所述指定節(jié)點的XML文檔的樹狀結(jié)構(gòu)上從所述指定節(jié)點進行追溯。在該實施例中,為簡化說明,假i殳相關(guān)節(jié)點 的類型限定為父節(jié)點。附圖5示例了附圖3中所示的值索引表格58的數(shù)據(jù)結(jié)構(gòu)的例子。在該 實施例中,所述值索引表格58用作^^(存儲)分配給節(jié)點的值索引(索 引信息項)的一值索引存儲單元,所述節(jié)點利用所述索引表格57進行管理。 每個值索引包括一節(jié)點的值、所述節(jié)點的節(jié)點ID以及與所述節(jié)點相關(guān)的 一相關(guān)節(jié)點的節(jié)點ID (相關(guān)節(jié)點ID)。所述值索引與傳統(tǒng)技術(shù)的不同點 在于其添加了相關(guān)節(jié)點ID。附圖5的所述值索引表格58包括分配給附圖 2的XML文檔101到XML文檔103中的最后節(jié)點和第一節(jié)點的值索引。附圖6示例了附圖3中所示的結(jié)構(gòu)索引表格59的數(shù)據(jù)結(jié)構(gòu)的例子。所 述結(jié)構(gòu)索引表格59用作結(jié)構(gòu)索引存儲單元,用于保存(存儲)表示節(jié)點結(jié) 構(gòu)的結(jié)構(gòu)索引,所述節(jié)點包括在存儲于數(shù)據(jù)庫42中的XML文檔中。如在 傳統(tǒng)技術(shù)中,應(yīng)用于該實施例中的每個結(jié)構(gòu)索引包括表示結(jié)構(gòu)的路徑(路 徑字符串)和具有由所述路徑指示的結(jié)構(gòu)的節(jié)點的節(jié)點ID。附圖6的所述結(jié)構(gòu)索引表格59包括分配給(被對應(yīng)附加給)附圖2的 XML文檔101到XML文檔103中的個體節(jié)點的結(jié)構(gòu)的結(jié)構(gòu)索引。當多個 節(jié)點IDs相應(yīng)于一單個的路徑(路徑字符串)時,多個節(jié)點IDs以這樣的 方式被輸入所述結(jié)構(gòu)索引表格59中,即,使得所述多個節(jié)點IDs相應(yīng)于所 述單個路徑。這種情況的一個例子是與附圖2的XML文檔101到XML 文檔103具有相同的結(jié)構(gòu)的多個XML文檔凈皮存儲于數(shù)據(jù)庫42的情況。在該實施例中,假設(shè)附圖1的數(shù)據(jù)庫服務(wù)器10把外部存儲設(shè)備40中 存儲的數(shù)據(jù)庫管理程序41讀入到服務(wù)器10的存儲器11中并且執(zhí)行所述程 序41,因而實現(xiàn)所述單元52到56。所迷程序41被存儲于一計算機可讀存 儲媒介,如壓縮盤或ROM,并且因此是可分發(fā)的。此外,所述程序41可 以通過網(wǎng)絡(luò)30下載到數(shù)據(jù)庫服務(wù)器10中。此外,所述單元52到56可以 由硬件組成。接著,將解釋附圖3的結(jié)構(gòu)化文檔搜索系統(tǒng)50的操作。 <索引處理>將參考附圖7的流程圖解釋結(jié)構(gòu)化文檔搜索系統(tǒng)50中的索引處理。假 設(shè),例如,具有如附圖2所示的樹狀結(jié)構(gòu)的XML文檔101到XML文檔 103被顯示于客戶20的顯示器上。在附圖2的示例中,所述XML文檔101 到103存儲于稱為"bib"的一個集合中并受其管理,該集合相應(yīng)于文件系 統(tǒng)中的文件夾或者目錄。XML文檔101到XML文檔103中的最上層節(jié)點 是書(book)節(jié)點。這些書節(jié)點的父節(jié)點是一bib節(jié)點。在附圖2的示例 中,所述bib節(jié)點是包含XML文檔101到XML文檔103的一樹狀結(jié)構(gòu)中 的一根節(jié)點,在示例了具有如附圖2所示的樹狀結(jié)構(gòu)的XML文檔101到XML文檔 103的狀態(tài)中,假設(shè)用戶通過操作,例如,鼠標指定了一任意節(jié)點作為將 產(chǎn)生其索引的節(jié)點。指定了節(jié)點后,假設(shè)用戶操作所^戶20以指定索引。 在這個例子中,如果必須指定相關(guān)節(jié)點,則用戶指定所期望的相關(guān)節(jié)點的類型。然后,才艮據(jù)來自所述用戶的指令,所i^戶20通過網(wǎng)絡(luò)30向所述結(jié) 構(gòu)化文檔搜索系統(tǒng)50發(fā)送一索引請求以為所述指定節(jié)點設(shè)置(分配) 一索 引(步驟S1)。所述索引請求包括一路徑(絕對路徑)和一相關(guān)節(jié)點的類型,所述路徑表示將凈皮設(shè)置索引的節(jié)點的結(jié)構(gòu)。從所^戶20接收所述索引請求,所述結(jié)構(gòu)化文檔搜索系統(tǒng)50的所 述請求處理單元52把所述索引請求轉(zhuǎn)交給所述索引管理單元54,由此請 求所述索引管理單元54執(zhí)行索引(步驟S2)。通過所述請求處理單元52 從所i^戶20接收所述索引請求,所述索引管理單元54把關(guān)于在所述請 求中指定的節(jié)點(即,將被^:置所述索引的節(jié)點)的索引信息添加到所述 索引表格57中(步驟S3)。此處,作為關(guān)于所述指定節(jié)點的索引信息, 指示表示所述指定節(jié)點的結(jié)構(gòu)的一路徑和與所述指定節(jié)點相關(guān)的一節(jié)點 (相關(guān)節(jié)點)的類型的信息(相關(guān)節(jié)點類型信息)被添加到所述索引表格 57中。相應(yīng)地,例如,如果所迷指定節(jié)點是如附圖2中節(jié)點ID為6的一節(jié)點 并且所述指定相關(guān)節(jié)點的類型是一父節(jié)點,則指示'7bib/book/author/last"21作為路徑(路徑字符串)并且還指示"一個父節(jié)點"作為所述相關(guān)節(jié)點的類型的索引信息被添加到表格57 (參見附圖4)。相似地,如果所述指定 節(jié)點是如附圖2中的節(jié)點ID為8的一節(jié)點并且所述指定相關(guān)節(jié)點的類型 是一父節(jié)點,則指示"/bib/book/author/first"作為路徑并指示"一個父節(jié) 點"作為所迷相關(guān)節(jié)點的類型的索引信息被添加到表格57 (參見附圖4)。 <文檔存儲處理>接著,將參考附圖8中的流程圖解釋在索引之后的一文檔存儲處理。 假設(shè)用戶已指定一 XML文檔存儲于數(shù)據(jù)庫42中并且操作客戶20指定所 述XML文檔的存儲。然后,所述客戶20通過網(wǎng)絡(luò)30向所述結(jié)構(gòu)化文檔 搜索系統(tǒng)50發(fā)送一文檔存儲請求以將指定的XML文檔存儲到數(shù)據(jù)庫42 中(步驟Sll)。從客戶20接收所述文檔存儲請求,所述請求處理單元52把所述文檔 存儲請求轉(zhuǎn)交給所述文檔存儲處理單元55,由此請求所述文檔存儲處理單 元55存儲所述XML文檔(步驟S12 )。通過所述請求處理單元52從所 述客戶20接收所述文檔存儲請求,所述文檔存儲處理單元55開始解析所 述請求中指定的所述XML文檔(步驟S13)。每次從所述XML文檔中抽 取一節(jié)點作為解析所述XML文檔的結(jié)果時,所述文檔存儲處理單元55在 所述節(jié)點上執(zhí)行下面的處理(步驟S14)。從所述XML文檔中抽取的節(jié) 點的順序與出現(xiàn)在所述XML文檔中的節(jié)點的順序相一致。首先,所述文檔存儲處理單元55詢問所迷索引管理單元54所述被抽 取節(jié)點上的信息(在此,表示所述被抽取節(jié)點的結(jié)構(gòu)的路徑)是否已被輸 入到所述索引表格57 (步驟S15)。然后,所述索引管理單元54查閱所述 索引表格57以檢查表示被詢問節(jié)點的結(jié)構(gòu)的路徑(路徑字符串)是否已被 存儲于所述索引表格57,并且向所述文檔存儲處理單元55通知結(jié)果。如 果該節(jié)點已被存儲,則所述索引管理單元54進一步向所述文檔存儲處理單 元55通知相關(guān)節(jié)點的類型,所述相關(guān)節(jié)點類型在存儲于所述索引表格57 中的相關(guān)節(jié)點類型信息中以這樣的方式4皮指示,即,使得所述類型相應(yīng)于 表示所述被詢問節(jié)點的結(jié)構(gòu)的路徑。從所述索引管理單元54接收所述通知,所述文檔存儲處理單元55確 定(表示所述被抽取節(jié)點的結(jié)構(gòu)的一路徑)所述被抽取的節(jié)點是否已經(jīng)存 儲在所述索引表格57中(步驟S16)。如果已經(jīng)被存儲,基于來自所述索 引管理單元54的所述通知,所述文檔存儲處理單元55檢查存儲在所述索 引表格57中的相關(guān)節(jié)點的類型以相應(yīng)于表示所述被抽取節(jié)點的結(jié)構(gòu)的路 徑。接著,所述文檔存儲處理單元55向所述索引管理單元54詢問所述被 抽取節(jié)點的值是否已經(jīng)被存儲于所述值索引表格58中(步驟S17)。于是, 所述索引管理單元54查閱所述值索引表格58以檢查被詢問的值是否已經(jīng) 存儲于所述值索引表格58中,并且向所述文檔存儲處理單元55通知其結(jié) 果。從所迷索引管理單元54接收所述通知,所述文檔存儲處理單元55確 定所述被抽取節(jié)點的值是否已經(jīng)存儲在所述值索引表格58中(步驟S18 )。如果所述值沒有被存儲(步驟S18 ),所述文檔存儲處理單元55促使 所述索引管理單元54把所述被抽取節(jié)點的值、所述節(jié)點的節(jié)點ID以及確 定類型的相關(guān)節(jié)點(這個例子中是父節(jié)點)的節(jié)點ID添加到所述值索引 表格58中(步驟S19)。在此,如果相關(guān)節(jié)點是如所述實施例中的父節(jié)點, 則所述相關(guān)節(jié)點已經(jīng)4皮抽取。這對于所^目關(guān)節(jié)點是,例如,長兄(elder brother)節(jié)點或一父節(jié)點的父節(jié)點(即,祖父節(jié)點)的情況也成立。如果 所述相關(guān)節(jié)點是,例如, 一弟(younger brother)節(jié)點時,則所述文檔存 儲處理單元55追溯所述樹狀結(jié)構(gòu)并且抽取所述弟節(jié)點。相反,如果所述被 抽取節(jié)點的值已經(jīng)被存儲(步驟S18),則所述文檔存儲處理單元55使得 所述被抽取節(jié)點的節(jié)點ID和確定類型的相關(guān)節(jié)點(在這個例子中是父節(jié) 點)的節(jié)點ID相應(yīng)于所述被存儲的值,并且促使所述索引管理單元54把 所述結(jié)果添加到所述值索引表格58 (步驟20)。在執(zhí)行步驟S19或步驟S20后,所述文檔存儲處理單元55向所述索引 管理單元54詢問表示所述被抽取節(jié)點的結(jié)構(gòu)的路徑(路徑字符串)是否已 經(jīng)被存儲于所述結(jié)構(gòu)索引表格59中(步驟S21)。如果已經(jīng)確定(表示所 述被抽取節(jié)點的結(jié)構(gòu)的路徑)所述被抽取節(jié)點沒有被存儲在所述索引表格57中(步驟S16),則所述文檔存儲處理單元55立即執(zhí)行步驟S21。從所述文檔存儲處理單元55接收到查詢,所述索引管理單元54查閱 所述結(jié)構(gòu)索引表格59。然后,所述索引管理單元54檢查表示被詢問節(jié)點 的結(jié)構(gòu)的路徑(路徑字符串)是否已經(jīng)存儲在所述結(jié)構(gòu)索引表格59中,并 且向所述文檔存儲處理單元55通知其結(jié)果。從所述索引管理單元54接收 所述通知后,所述文檔存儲處理單元55確定表示所述被抽取節(jié)點的結(jié)構(gòu)的 路徑是否已經(jīng)被存儲在所述結(jié)構(gòu)索引表格59中(步驟S22)。如果其沒有被存儲(步驟S22 ),則所述文檔存儲處理單元55促使所 述索引管理單元54把表示所述被抽取節(jié)點的結(jié)構(gòu)的路徑(路徑字符串)和 所述節(jié)點的節(jié)點ID添加到所述結(jié)構(gòu)索引表格59中(步驟S23)。相反, 如果表示所述被抽取節(jié)點的結(jié)構(gòu)的路徑已經(jīng)被存儲(步驟S22),則所述 文檔存儲處理單元55使得所述節(jié)點的節(jié)點ID相應(yīng)于所述存儲的路徑,并 且使得所述索引管理單元54把結(jié)果的集合添加到所述結(jié)構(gòu)化索引表格59 中(步驟S24 )。在執(zhí)行步驟S23或S24之后,所述文檔存儲處理單元55執(zhí)行一文檔存 儲操作以把所述被抽取的節(jié)點(即,所述XML文檔的一部分)存儲到所 述數(shù)據(jù)庫42中(步驟S25 )。在執(zhí)行所述文檔存儲操作之后,所述文檔存儲處理單元55確定所述由 客戶20請求的對XML文檔的分析是否已經(jīng)完成(步驟S26)。即,所述否都已經(jīng)凈皮處理。如果還存在沒有,皮處理的節(jié)點,則所述文檔存儲處理單 元55返回到步驟S14并且繼續(xù)處理下一個節(jié)點。通過上述處理,分配到其結(jié)構(gòu)存儲于所述索引表格57中的所述節(jié)點的 值索引被添加到所述值索引表格58中。所述值索引與傳統(tǒng)值索引的不同在 于其不僅僅包括一節(jié)點(元素)的值和該節(jié)點的節(jié)點ID,還包括相關(guān)節(jié)點 (在這個例子中是父節(jié)點)的節(jié)點ID (相關(guān)節(jié)點ID)。附圖5中所述值索 引表格58包括當附圖2中的所迷XML文檔101到XML文檔103被添加 到所述數(shù)據(jù)庫42中時所添加的值索引。<搜索處理>接著,將參考附圖9A和9B中的流程圖來解釋利用存儲在所述值索引 表格58中的值索引和存儲在所述結(jié)構(gòu)索引表格59中的結(jié)構(gòu)索引的一搜索 處理。假^L,作為用戶操作客戶20的一個結(jié)果,所ii^:戶20已經(jīng)通過所 述網(wǎng)絡(luò)30向所述結(jié)構(gòu)化文檔搜索系統(tǒng)50發(fā)送一搜索請求(步驟S31)。 假定所述搜索請求包括例如用XPath書寫的一查詢。這時,假設(shè)具有附圖 2中所述結(jié)構(gòu)的XML文檔101到103已經(jīng)存儲于數(shù)據(jù)庫42中。此外,假 設(shè)附圖5中所述的值索引表格58包括當附圖2中的所述XML文檔101到 103被存儲到所述數(shù)據(jù)庫42中時所添加的值索引。從所M戶20接收所述搜索請求后,所述請求處理單元52把所述搜 索請求轉(zhuǎn)交給所述搜索單元53,由此請求所述搜索單元53執(zhí)行搜索(步 驟S32)。通過請求處理單元52從所述客戶20接收所述搜索請求后,所 述搜索單元53分析所述搜索請求(步驟S33)。在此,假設(shè)包含在所述搜 索請求中的查詢是在背景技術(shù)部分中所寫的第二查詢(xPath )/bib/book/author[last=,,Stevens,, and first=,,W.,,]。即,假設(shè)客戶20作出一搜索一作者(父節(jié)點)的搜索請求,所述作者 滿足條件last-,,Stevens"和first=,,W.,,。在此,所述條件last-,,Stevens,,, 即,最后節(jié)點的值為"Stevens"的條件是所述值搜索中的一個條件。相似地, 所述條件first-"W.",即,第一節(jié)點的值為"W.,,的條件是所述值搜索中的 一個條件。基于步驟S23中分析的結(jié)果,所述搜索單元53確定所述被請求的搜索 是否是覆蓋多個節(jié)點的值的一值搜索以及所述被請求的搜索目標節(jié)點是否 是父節(jié)點,其中對所述多個節(jié)點設(shè)置了索引(步驟S34)。在該實施例中, 符合在步驟S34中的確定條件。在這個例子中,利用所述值索引表格58, 所述搜索單元53的值索引搜索模塊531執(zhí)行如下的搜索。所述值索引搜索模塊531從多個值搜索條件中選擇一個未處理的條件 (步驟S35)。在此,假設(shè)選擇了 last="Stevens,,。所述值索引搜索模塊531 從所述索引管理單元54中請求符合選出的值搜索條件的節(jié)點(值為"Stevens"的最后節(jié)點)的值索引列表(步驟S36 )。在下面的解釋中, 符合選出的值搜索M的節(jié)點被稱為候選節(jié)點。根據(jù)來自所述值索引搜索模塊531的請求參考所述值索引表格58,所 述索引管理單元54產(chǎn)生所述被請求的候選節(jié)點(值為"Stevens"的最后節(jié) 點)的值索引的列表作為第 一候選節(jié)點列表。所述第 一候選節(jié)點列表包括 候選節(jié)點的值和下述所有節(jié)點的節(jié)點IDs的集合,所述所有節(jié)點包括基于 候選節(jié)點的節(jié)點的相關(guān)節(jié)點(父節(jié)點)的值和節(jié)點IDs (相關(guān)節(jié)點IDs)。 每個節(jié)點ID和相關(guān)節(jié)點ID的集合可以被分配節(jié)點值(這個例子中是 "Stevens")。即,第一候選節(jié)點列表可以是值、節(jié)點ID和相關(guān)節(jié)點ID 的集合的列表。所述索引管理單元54向所述搜索單元53的值索引搜索模塊531通知 基于所述值索引表格58產(chǎn)生的第一候選節(jié)點列表。結(jié)果,所述值索引搜索 模塊531獲取通知的第一候選節(jié)點列表(步驟S37)。即,所述值索引搜 索模塊531通過所述索引管理單元54在所述值索引表格58中搜索符合所 迷值搜索條件的值索51來獲取所述第 一候選節(jié)點列表。在獲取所述第一候選節(jié)點列表之后,所述值索引搜索模塊531作為一 排序單元并且例如以所述候選節(jié)點的節(jié)點IDs和相關(guān)節(jié)點IDs(父節(jié)點IDs ) 的升序排列所述第一候選節(jié)點列表(步驟S38)。在此,所述候逸節(jié)點的 節(jié)點IDs被給定優(yōu)先權(quán)。所述被排序的第一候選節(jié)點列表被存儲于包含在 附圖1的數(shù)據(jù)庫服務(wù)器10中的存儲器11的指定區(qū)域中。在執(zhí)行步驟S38之后,所述值索引搜索模塊531確定所有值搜索條件 是否都已被處理(步驟S39)。如果還有未處理的值搜索條件,則所述值 索引搜索模塊531返回到步驟S35并選擇所述未處理條件之一。在此,假 設(shè)選擇了值搜索條件first- "W."。所述值索引搜索模塊531執(zhí)行步驟S36中的處理并且推進到符合所述 選擇的值搜索務(wù)降的候選節(jié)點(值為"W."的第一節(jié)點)。結(jié)果,所述值 索引搜索模塊531獲取候選節(jié)點(值為"W."的第一節(jié)點)的值索引(索 引信息)列表作為第一候選節(jié)點列表并且排序所述列表。被排序的第一候選節(jié)點列表被存儲在附圖1的存儲器11的指定區(qū)域中。附圖IOA和10B分別示例了在附圖5的所述值索引表格58的例子中 獲取的值為"Stevens"的最后節(jié)點的第一候選節(jié)點列表111和值為"W." 的第一節(jié)點的第一候選節(jié)點列表112的例子。附圖11示例了包含在附圖 10A和10B中示例的候選列表111和112中的值為"Stevens"的最后節(jié)點 和值為"W."的第一節(jié)點在附圖2的XML文檔101到103中的位置。在 附圖11中,每個邊框箭頭指示值為"Stevens"的最后節(jié)點的一相關(guān)節(jié)點 (父節(jié)點)或值為"W."的笫一節(jié)點的一相關(guān)節(jié)點(父節(jié)點)。假設(shè)所述搜索單元53的值索引搜索模塊531已經(jīng)處理了所迷值搜索條 件中所述多個節(jié)點中的所有節(jié)點(步驟S39)。那么,所述搜索單元53中 的結(jié)構(gòu)索引搜索模塊532被啟動。所述結(jié)構(gòu)索引搜索模塊532從所述多個 值搜索條件中選擇一個未處理的條件(步驟S40),并抽取包含在所選擇 的條件中的結(jié)構(gòu)條件(步驟S41)。在此,在值為"Stevens"的最后節(jié)點 的值搜索條件中所指定的節(jié)點的結(jié)構(gòu)條件(表示所述結(jié)構(gòu)條件的路徑) "/bib/book/author/last,,被抽取。所述結(jié)構(gòu)索引搜索模塊532從所述索引管 理單元54中請求符合所抽取的結(jié)構(gòu)條件(/bib/book/author/last )的節(jié)點(候 選節(jié)點)的結(jié)構(gòu)索引列表(步驟S42)。所述索引管理單元54根據(jù)來自所述結(jié)構(gòu)索引搜索模塊532的請求查閱 所述結(jié)構(gòu)索引表格59,由此,產(chǎn)生符合所述被請求(被選擇)的結(jié)構(gòu)* (/bib/book/author/last)的候選節(jié)點的結(jié)構(gòu)索引列表作為第二候選節(jié)點列 表。所述第二候選節(jié)點列表包括符合所述結(jié)構(gòu)條件的路徑(路徑字符串) 和由該路徑指定的所有節(jié)點(候選節(jié)點)的節(jié)點IDs。每個節(jié)點ID可以被 分配一表示所述被選擇的結(jié)構(gòu)條件的路徑("/bib/book/author/last")。 即,所述第二候選節(jié)點列表可以是一路徑和一節(jié)點ID的集合的列表。所述索引管理單元54向所述搜索單元53的結(jié)構(gòu)索引搜索模塊532通 知所產(chǎn)生的第二候選節(jié)點列表。結(jié)果,所述結(jié)構(gòu)索引搜索模塊532獲取所 通知的第二候選節(jié)點列表(步驟S43)。即,所述結(jié)構(gòu)索引搜索模塊532 通過所述索引管理單元54,在所述結(jié)構(gòu)索引表格59中搜索符合包含在所述值搜索條件中的所述結(jié)構(gòu)條件的結(jié)構(gòu)索引,由此獲取所述第二候選節(jié)點 列表。在獲取所述第二候選節(jié)點列表之后,所述結(jié)構(gòu)索引搜索模塊532作為 一排序單元并且以例如,所述候選節(jié)點的節(jié)點IDs的升序來排列所述第二 候選節(jié)點列表(步驟S44)。所述被排序的第二候選節(jié)點列表存儲在包含 在附圖1的數(shù)據(jù)庫服務(wù)器10中的存儲器11的指定區(qū)域。在執(zhí)行步驟S44之后,所述結(jié)構(gòu)索引搜索模塊532確定是否所有值搜 索條件都已經(jīng)被處理(步驟S45)。如果還存在未處理的值搜索條件,所 述結(jié)構(gòu)索引搜索模塊532返回到步驟S40,選擇未處理的條件之一,并且 抽取包含在所選擇的條件中的結(jié)構(gòu)條件(步驟S41)。在這個例子中,假 設(shè)值為"W."的第一節(jié)點的結(jié)構(gòu)條件(表示所述結(jié)構(gòu)條件的路徑) '7bib/book/author/first"已經(jīng)被抽取。所述結(jié)構(gòu)索引搜索模塊532執(zhí)行步驟S42中的處理并且推進到所抽取 的結(jié)構(gòu)條件"bib/book/author/first"。結(jié)果,所述結(jié)構(gòu)索引搜索模塊532 獲W^合所述結(jié)構(gòu)條件"/bib/book/author/first"的候選節(jié)點的結(jié)構(gòu)索引列 表作為笫二候選節(jié)點列表并且排序所述列表。所述,皮排序的第二候選節(jié)點 列表被存儲在附圖1的存儲器11中的指定區(qū)域。附圖12A和12B分別示例了從附圖6的所述結(jié)構(gòu)索引表格59的例子 中獲取的符合結(jié)構(gòu)條件'7bib/book/author/last"的最后節(jié)點的第二候選節(jié) 點列表113和符合結(jié)構(gòu)條件"/bib/book/author/first"的第一節(jié)點的第二候 選節(jié)點列表114的例子。假設(shè)所述搜索單元53的所述結(jié)構(gòu)索引搜索模塊532已經(jīng)處理了所述值 搜索條件中的多個節(jié)點中的所有節(jié)點(步驟S45)。那么,所述搜索單元 53的搜索結(jié)果獲M塊533被啟動。利用所述候選節(jié)點的節(jié)點IDs,所迷 搜索結(jié)果獲Wt塊533在基于值搜索條件的條件下,將基于所述值索引表 格58獲取的第一候選節(jié)點列表和基于所述結(jié)構(gòu)索引表格59獲取的第二候 選節(jié)點列表進行合并(步驟S46)。在此,所述搜索結(jié)果獲W^塊533利 用所述候選節(jié)點的節(jié)點IDs作為關(guān)鍵詞對所述第一和第二候選列表執(zhí)行AND操作,由此合并所述第一和第二候選列表。這樣的AND操作被稱為 AND合并操作。結(jié)果,根據(jù)所述值搜索條件(las瀘"Stevens"和first-"W.")產(chǎn)生附圖 13A和13B所示的第三候選節(jié)點列表115和116。所述笫三候選節(jié)點列表 115是對附圖10A中的第一候選節(jié)點列表lll和附圖12A中的第二候選節(jié) 點列表113執(zhí)行AND合并操作的結(jié)果。對于包含在所述列表111和113 兩者中的所有節(jié)點IDs (候選節(jié)點IDs)來說,所述第三候選節(jié)點列表115 不僅包括節(jié)點ID和相關(guān)節(jié)點ID的集合,而且還包括為具有所述節(jié)點IDs 的節(jié)點(元素)所共有的值。所述第三候選節(jié)點列表116是對附圖10B中 的第一候選節(jié)點列表112和附圖12B中的第二候選節(jié)點列表114執(zhí)行AND 合并操作的結(jié)果。所述第三候選節(jié)點列表116不僅包括包含在列表112和 114兩者中的節(jié)點IDs的所述節(jié)點ID和相關(guān)節(jié)點ID的集合,而且還包括 為具有所述節(jié)點ID的節(jié)點(元素)所共有的值。在執(zhí)行步驟S46之后,所述搜索結(jié)果獲^^莫塊533在根據(jù)所述值搜索 條件所產(chǎn)生的第三候選節(jié)點列表之中搜索相關(guān)節(jié)點IDs (在這個例子中是 父節(jié)點IDs)相互一致的組合(步驟S47)。在此,利用包含在相應(yīng)于所述 值搜索條件的所述第三候選節(jié)點列表中的所述相關(guān)節(jié)點IDs作為關(guān)鍵詞, 所述搜索單元53a對所述第三候選節(jié)點列表執(zhí)行一 AND合并操作,由此 搜索其相關(guān)節(jié)點IDs (父節(jié)點IDs)相互符合的組合。附圖14示例了一組 合的列表(搜索結(jié)果列表)117,所述組合的相關(guān)節(jié)點IDs (父IDs)在附 圖13A和附圖13B所示的候選節(jié)點列表115和116之間相互一致。在此, 僅僅是其值為15的相關(guān)節(jié)點在所述候選節(jié)點列表115和116之間相互一 致。即,僅僅是其值為15的相關(guān)節(jié)點為所述候選節(jié)點列表115和116所共 有(be common to)。如從附圖11中看到的,其值為15的相關(guān)節(jié)點ID 是符合在來自所g戶20的搜索請求中所請求的條件last="Stevens"和 firs瀘"W.,,的作者的節(jié)點ID。所述搜索結(jié)果獲W^塊533把包含在從步驟S47中獲取的所述搜索結(jié) 果列表中的所勤目關(guān)節(jié)點IDs(即,在根據(jù)所述值搜索條件產(chǎn)生的所述第三候選節(jié)點列表之間相互一致的相關(guān)節(jié)點IDs)作為通過所述請求處理單 元52來自客戶20的所述搜索請求的搜索結(jié)果返回給客戶20 (步驟S48 )。 當附圖14的所述搜索結(jié)果列表117已經(jīng)被獲取時,其值為15的相關(guān)節(jié)點 ID,即,滿足條件last="Stevens,,和first-,,W.,,的作者的節(jié)點ID ( = 15 ) 作為搜索結(jié)果被返回給客戶20。如上面描述的,在所述實施例中,所W目關(guān)節(jié)點(父節(jié)點)的節(jié)點IDs (相關(guān)節(jié)點IDs)包含在保存于所述值索引表格58中的所述值索引中。因 此,在所述實施例中,用于覆蓋多個節(jié)點的值的值搜索和用于搜索為所述 多個節(jié)點所共有的相關(guān)節(jié)點(父節(jié)點)的一個搜索處理可以僅僅通過查閱 所述值索引表格58的一索引操作來執(zhí)行。即,在所述實施例中,所述搜索 處理可以不必搜索數(shù)據(jù)庫42中的所有XML文檔而高速地被執(zhí)行。如果一搜索不符合值搜索覆蓋多個節(jié)點的值且被請求搜索的節(jié)點是所 述多個節(jié)點的相關(guān)節(jié)點(父節(jié)點)的條件(步驟S34),則所述搜索單元 53執(zhí)行傳統(tǒng)搜索處理(步驟S50 )。在所述實施例中,在所述索引表格57中被管理的節(jié)點(最后節(jié)點和笫 一節(jié)點)的相關(guān)節(jié)點的類型是一父節(jié)點的情況是一前提條件。然而,在所 述索引表格57中被管理的節(jié)點(最后節(jié)點和第一節(jié)點)的相關(guān)節(jié)點的類型 可以是不同于一父節(jié)點的節(jié)點。例如,滿足條件last-,,Stevens,,和 first」,W."的作者所寫的一本書的標題被作為想要的搜索結(jié)果時,所述用戶 在一索引請求中指定一父節(jié)點的兄長節(jié)點(即,伯父節(jié)點)作為一相關(guān)節(jié) 點,使得適合用于由所述用戶使用的搜索條件的相關(guān)節(jié)點上的信息能夠被 包含于保存在所述值索引表格58中的一個值索引中。這使得即使所述搜索 條件(搜索目標節(jié)點)改變時也有可能高速地執(zhí)行搜索。[實施例變體l接著,將參考附圖解釋所述實施例的一個變體(特別地,結(jié)構(gòu)化文檔 搜索系統(tǒng)50的一個變體)。附圖15是一模塊圖,主要示例了應(yīng)用于所述 變體的一結(jié)構(gòu)化文檔搜索系統(tǒng)50a的功能配置。在附圖15中,與附圖3 中元素相等同的元素由相同的附圖標記指示。所述結(jié)構(gòu)化文檔搜索系統(tǒng)50a相應(yīng)于所述實施例中的所述結(jié)構(gòu)化文檔 搜索系統(tǒng)50。與所述結(jié)構(gòu)化文檔搜索系統(tǒng)50相似,假設(shè)所述所述結(jié)構(gòu)化 文檔搜索系統(tǒng)50a由附圖1中所示的數(shù)據(jù)庫服務(wù)器10和外部存儲設(shè)備40 (數(shù)據(jù)庫42)實現(xiàn)。所述結(jié)構(gòu)化文檔搜索系統(tǒng)50a包括一數(shù)據(jù)庫管理系統(tǒng)51a和數(shù)據(jù)庫42。 在該變體中,在所述數(shù)據(jù)庫42中存儲了 一 XML文檔集合、 一索引表格421 、 一值索引表格422a和一結(jié)構(gòu)索引表格423a。與傳統(tǒng)值索引表格具有相同數(shù)據(jù)結(jié)構(gòu)的所述值索引表格422a與應(yīng)用 于所述實施例中的值索引表格422不同,其不具有相關(guān)IDs。所述結(jié)構(gòu)索 引表格423a保存4iW應(yīng)附加給(被分配給)在所述索引表格421中被管理 的節(jié)點(被認為是一值搜索的可能目標的節(jié)點)的結(jié)構(gòu)索引。如后面將詳 細描述的,每個所述結(jié)構(gòu)索引包括表示一節(jié)點(元素)的結(jié)構(gòu)的路徑(路 徑字符串)、由所述路徑指定的節(jié)點的節(jié)點ID以及與所述節(jié)點相關(guān)的一 相關(guān)節(jié)點(在這個例子中是父節(jié)點)的節(jié)點ID的集合。所述數(shù)據(jù)庫管理系統(tǒng)51a與附圖3中的所述結(jié)構(gòu)化文檔搜索系統(tǒng)50的 不同在于一搜索單元53a、 一值索引表格58a和一結(jié)構(gòu)索引表格59a代替 了所述搜索單元53、值索引表格58和結(jié)構(gòu)索引表格59。所述值索引表格 58a和結(jié)構(gòu)索引表格59a相應(yīng)于存儲在數(shù)據(jù)庫42中的值索引表格422a和 結(jié)構(gòu)索引表格423a。在所述結(jié)構(gòu)化文檔搜索系統(tǒng)50a啟動時,所迷值索引 表格422a和結(jié)構(gòu)索引表格423a作為所述值索引表格58a和結(jié)構(gòu)索引表格 59a被復(fù)制到存儲器11中。所述搜索單元53a與所述實施例中的搜索單元53的不同在于,其不僅 包括值索引搜索模塊531 、結(jié)構(gòu)索引搜索模塊532和搜索結(jié)果獲^Mt塊533 , 還包括一節(jié)點數(shù)目確定模塊534和一文檔搜索模塊535。所述節(jié)點數(shù)目確 定模塊534確定包含在由所述值索引搜索模塊531獲取的所述第一候選節(jié) 點列表中的候選節(jié)點的總數(shù)目是否大于或等于預(yù)先確定的指定數(shù)目。如果 所述候選節(jié)點的總數(shù)目小于所述指定數(shù)目,則所述文檔搜索模塊535搜索 數(shù)據(jù)庫42中存儲的XML文檔。在所述搜索中,所迷文檔搜索模塊535獲取符合結(jié)構(gòu)條件的候選節(jié)點的列表(第四候選節(jié)點列表)并且搜索其相關(guān)IDs在所述列表之間相一致的組合。附圖16示例了附圖15中所示的值索引表格58a的數(shù)據(jù)結(jié)構(gòu)的例子。 與所述實施例中的值索引表格58相似,所述值索引表格58a保存了分配給 利用所述索引表格57管理的所述節(jié)點的值索引。在此,保存在值索引表格相關(guān)節(jié)點ID。附圖16中所述的值索引表格58a包括分配給附圖2中的XML 文檔101到103中的最后節(jié)點和第一節(jié)點的值索引。附圖17示例了附圖15中所示的結(jié)構(gòu)索引表格59a的數(shù)據(jù)結(jié)構(gòu)的例子。 與所述實施例中的所述結(jié)構(gòu)索引表格59相似,所述結(jié)構(gòu)索引表格59a被用 于保存表示存儲在數(shù)據(jù)庫42中的XML文檔中的所述節(jié)點的結(jié)構(gòu)的結(jié)構(gòu)索 引。每個所述結(jié)構(gòu)索引包括表示所述結(jié)構(gòu)的路徑(路徑字符串)、由所述 路徑指定的所述節(jié)點的節(jié)點ID以及與所述節(jié)點相關(guān)的一相關(guān)節(jié)點的節(jié)點 ID (相關(guān)節(jié)點1D)。所述結(jié)構(gòu)索引與保存在所述結(jié)構(gòu)索引表格59中的結(jié) 構(gòu)索引的不同在于添加了相關(guān)節(jié)點ID。即,在所述變體中,所^目關(guān)節(jié)點 ID被分配給結(jié)構(gòu)索引而不是值索引。附圖17中的所述結(jié)構(gòu)索引表格59a 包括相應(yīng)于附圖2中XML文檔101到103中的每個節(jié)點的結(jié)構(gòu)的結(jié)構(gòu)索 引。接著,將解釋附圖11中的所述結(jié)構(gòu)化文檔搜索系統(tǒng)50a的操作,主要 著重于解釋與所述實施例中的所述結(jié)構(gòu)化文檔搜索系統(tǒng)50的不同之處。 <文檔存儲處理>首先,將參考附圖18中的流程圖解釋在所述變體中索引之后的一文檔 存儲處理。在附圖18中,與附圖8的流程圖中相同的處理步驟由相同的附 圖標記指示。假設(shè)客戶20向所述結(jié)構(gòu)化文檔搜索系統(tǒng)50a發(fā)送一文檔存儲請求以將 一用戶指定XML文檔存儲到數(shù)據(jù)庫42中(步驟Sll)。然后,所述結(jié)構(gòu) 化文檔搜索系統(tǒng)50a的文檔存儲處理單元55開始解析指定的XML文檔(步 驟S13)。然后,每當從所述指定的XML文檔中抽取一節(jié)點時,所述文檔存儲處理單元55如下處理所述節(jié)點(步驟S14)。首先,所述文檔存儲處理單元55向所述索引管理單元54詢問關(guān)于所 抽取節(jié)點的信息( 一路徑)是否已被輸入到所述索引表格57中(步驟S15 )。 如果已經(jīng)被輸入(步驟S16),則所述文檔存儲處理單元55基于所述索引 管理單元54響應(yīng)于所述詢問所給出的通知,檢查由存儲在所述索引表格 57中的相關(guān)節(jié)點類型信息所指示的所述相關(guān)節(jié)點的類型,以相應(yīng)于表示所 述被抽取的節(jié)點的結(jié)構(gòu)的路徑。如果關(guān)于被抽取節(jié)點的信息(所述路徑)已經(jīng)被存儲在所述索引表格 57中(步驟S16 ),則所述文檔存儲處理單元55向所述索引管理單元54 詢問所述節(jié)點的值是否已經(jīng)存儲于所述值索引表格58a中(步驟S17)。 如果所述值沒有被存儲(步驟S18 ),則所述文檔存儲處理單元55促使所 述索引管理單元54將被抽取節(jié)點的值和該節(jié)點的節(jié)點ID添加到所述值索 引表格58a中(步驟S19a)。相反地,如果所述被抽取節(jié)點的值已經(jīng)被存 儲(步驟S18 ),則所述文檔存儲處理單元55使得所述節(jié)點的節(jié)點ID相 應(yīng)于所存儲的值,并且使得所述索引管理單元54把所述結(jié)果添加到所述值 索引表格58a中(步驟S20a)。在執(zhí)行步驟S19a或S20a之后,所述文檔存儲處理單元55向所述索引 管理單元54詢問表示所述被抽取節(jié)點的結(jié)構(gòu)的路徑(路徑字符串)是否已 經(jīng)被存儲于結(jié)構(gòu)索引表格59a中(步驟S21)。如果已經(jīng)確定在步驟S14 中所抽取節(jié)點上的信息沒有被存儲在所述索引表格57中(步驟S16),則 所述文檔存儲處理單元55立即執(zhí)行步驟S21和S22。如果表示所述被抽取節(jié)點的結(jié)構(gòu)的路徑?jīng)]有被存儲(步驟S22),則 所述文檔存儲處理單元55促使所述索引管理單元54把所述路徑(路徑字 符串)、所述節(jié)點的節(jié)點ID和確定類型的相關(guān)節(jié)點的節(jié)點ID添加到所述 結(jié)構(gòu)索引表格59中(步驟S23)。相反地,如果表示所述被抽取節(jié)點的結(jié) 構(gòu)的路徑已經(jīng)被存儲(步驟S22),則所述文檔存儲處理單元55使得所述 節(jié)點的節(jié)點ID和確定類型的相關(guān)節(jié)點的節(jié)點ID相應(yīng)于所述路徑,并且使 得所述索引管理單元54將所述生成的組合添加到所述結(jié)構(gòu)索引表格59中(步驟S24a)。在用于沒有存儲于所述索引表格57中的節(jié)點的結(jié)構(gòu)的結(jié)構(gòu) 索引(即,用于相關(guān)節(jié)點類型沒有被確定的節(jié)點的結(jié)構(gòu)的結(jié)構(gòu)索引)中, 沒有包括所述相關(guān)節(jié)點的節(jié)點ID。在執(zhí)行步驟S23a或S24a之后,所述文檔存儲處理單元55執(zhí)行一文檔 存儲操作以將所述被抽取的節(jié)點(即,所述XML文檔的一部分)存儲于 數(shù)據(jù)庫42中(步驟S25 )。所述文檔存儲處理單元55重復(fù)上述操作,直 到完成對客戶20請求的XML文檔的分析。<搜索處理>接著,將參考附圖19A和19B的流程圖解釋利用存儲于所述值索引表 格58a中的值索引和存儲于所述結(jié)構(gòu)索引表格59a中的結(jié)構(gòu)索引的搜索處 理。在附圖19A和19B中,與附圖9A和9B的流程圖中相同的處理步驟 由相同的附圖標記指示。假設(shè)客戶20向所述結(jié)構(gòu)化文檔搜索系統(tǒng)50a發(fā)送一搜索請求,該搜索 請求包括以例如XPath撰寫的一個查詢(步驟S31)。假定所述查詢是第 二查詢(XPath)。如上面描述的,所述第二查詢包括last-"Stevens"的值 搜索條件和firsf,W."的值搜索條件。此外,這些值搜索條件包括節(jié)點要 具有由"/bib/book/author/last"表示值為"Stevens"的最后節(jié)點結(jié)構(gòu)的結(jié) 構(gòu)條件以及節(jié)點要具有由"/bib/book/author/first"表示值為的第一 節(jié)點結(jié)構(gòu)的結(jié)構(gòu)M。在這個例子中,與所述實施例中的所述結(jié)構(gòu)化文檔搜索系統(tǒng)50相似, 結(jié)構(gòu)化文檔搜索系統(tǒng)50a執(zhí)行步驟S32到步驟S39。特別地,包括在所述 結(jié)構(gòu)化文檔搜索系統(tǒng)50a中的所述搜索單元53a的值索引搜索模塊531從 所述索引管理單元54獲取與多個值搜索條件中的每一個都符合的節(jié)點列 表(第一候選節(jié)點列表),并排序所述列表。然而,在變體中,第一候選 節(jié)點列表利用所述值索引表格58a而產(chǎn)生,并且按照候選節(jié)點的ID節(jié)點 的升序來進4亍排序。附圖20A和20B分別示例了附圖16的所述值索引表格58a的例子中 獲取的值為"Stevens"的最后節(jié)點的第一候選節(jié)點列表llla和值為"W."的第一節(jié)點的第一候選節(jié)點列表112a的例子。所述候選節(jié)點列表llla和 112a不包括相關(guān)節(jié)點ID,與附圖10A和10B所示例的候選節(jié)點列表111 和112不同。當為多個值搜索條件中的每一個獲取了第一候選節(jié)點列表時(步驟 S39),所述搜索單元53a的節(jié)點數(shù)目確定模塊534被啟動。在排序之后, 所述節(jié)點數(shù)目確定模塊534計算包含在所有第一候選節(jié)點列表中的候選節(jié) 點的節(jié)點IDs的總數(shù)目,即,候選節(jié)點的總數(shù)目(步驟S61)。然后,所 述節(jié)點數(shù)目確定模塊534確定所述候選節(jié)點的總數(shù)目是否大于或等于預(yù)先 指定的數(shù)目(步驟S62)。在此,假設(shè)所述候選節(jié)點的總數(shù)目大于或等于所述指定數(shù)目(步驟 S62)。在這種情況中,如在所述實施例中一樣,所迷搜索模塊53a的結(jié)構(gòu) 索引搜索模塊532執(zhí)行步驟S40到步驟S45。特別地,所述結(jié)構(gòu)索引搜索 模塊532基于所述結(jié)構(gòu)索引表格59a為包含在多個值搜索條件中的每個結(jié) 構(gòu)條件執(zhí)行獲,合所述結(jié)構(gòu)條件的節(jié)點列表(第二候選節(jié)點列表)的處 理。結(jié)果,所述結(jié)構(gòu)索引搜索模塊532獲取如附圖21A和21B所示的第二 候選節(jié)點列表113a和114a。所述候選節(jié)點列表113a是符合結(jié)構(gòu)糾"/bib/book/author/last,,(表 示所述結(jié)構(gòu)條件的路徑)的節(jié)點(候選節(jié)點)的結(jié)構(gòu)索引的列表,用于由最 后節(jié)點值為"Stevens"的值搜索條件所指定的節(jié)點。所述候選節(jié)點列表114a 是符合結(jié)構(gòu)條件"/bib/book/author/first"(表示所述結(jié)構(gòu)條件的路徑)的 節(jié)點(候選節(jié)點)的結(jié)構(gòu)索引的列表,用于由第一節(jié)點值為"W."的值搜 索條件所指定的節(jié)點。由于用于產(chǎn)生候選列表113a和114a的結(jié)構(gòu)索引表 格59a的特性,所述列表113a和114a包括相關(guān)節(jié)點IDs,與所述候選節(jié) 點列表113和114不同。當為包含在多個值搜索條件中的每個結(jié)構(gòu)條件獲取了第二候逸節(jié)點列 表時(步驟S45),所述搜索單元53的搜索結(jié)果獲Wi塊533被啟動。利 用候選節(jié)點的節(jié)點IDs,所述搜索結(jié)果獲^^莫塊533基于值搜索條件,對 基于所述值索引表格58a獲取的第一候選節(jié)點列表和基于所述結(jié)構(gòu)索引表格59a獲取的第二候選節(jié)點列表執(zhí)行一 AND合并操作(步驟S46)。在此,在附圖20A的第一候選節(jié)點列表111a和附圖21A的第二候選 節(jié)點列表113a上執(zhí)行一 AND合并操作,由此產(chǎn)生如所述實施例中的附圖 13A所示的第三候選節(jié)點列表115。相似地,在附圖20B的第一候選節(jié)點 列表112a和附圖21B的第二候選節(jié)點列表114a上執(zhí)行一 AND合并操作, 由此產(chǎn)生如所述實施例中的附圖13B所示的第三候選節(jié)點列表116。在執(zhí)行步驟S46之后,所述搜索結(jié)果獲 塊533在根據(jù)所述值搜索 條件產(chǎn)生的第三候選節(jié)點列表中搜索其相關(guān)節(jié)點IDs彼此相一致的組合 (步驟S47 )。然后,所迷搜索單元53將所述相互一致的相關(guān)節(jié)點IDs作 為通過所述請求處理單元52來自客戶20的所述搜索請求的搜索結(jié)果返回 給客戶20 (步驟S48 )。如上描述的,在所述變體中,所勤目關(guān)節(jié)點(父節(jié)點)的節(jié)點ID (相 關(guān)節(jié)點IDs)被包含在保存于結(jié)構(gòu)索引表格59a中的所述結(jié)構(gòu)索引中。相 應(yīng)地,在所述變體中,用于覆蓋符合所述結(jié)構(gòu)條件的多個節(jié)點的值的值搜 索以及用于搜索為多個節(jié)點所共有的一相關(guān)節(jié)點(父節(jié)點)的搜索處理可 以僅僅通過查閱所述值索引表格58a和結(jié)構(gòu)索引表格59a的索引操作來執(zhí) 行。即,在所述變體中,與所述實施例中一樣,可以高速執(zhí)行所述搜索處 理而不搜索數(shù)據(jù)庫42中所有XML文檔。隨著符M個值搜索條件的節(jié)點 數(shù)目的增加,該效果變得更加顯著。相反地,如果基于所述值索引表格58a找到的符M個值搜索條件的 節(jié)點的總數(shù)目很小,則利用與傳統(tǒng)技術(shù)相似的搜索方法,即,實際搜索數(shù) 據(jù)庫42中存儲的XML文檔的方法,可以使得搜索以更高的速度執(zhí)行。因 此,在所述變體中,如果在步驟S62中確定候選節(jié)點的總數(shù)目(即,符合 每個所述值搜索條件的節(jié)點的總數(shù)目)小于指定數(shù)目時,則所述搜索單元 53a利用下面描述的與傳統(tǒng)技術(shù)相似的搜索方法對所請求搜索的節(jié)點(相 關(guān)節(jié)點)進行搜索。首先,所述搜索單元53a的文檔搜索模塊535在存儲于數(shù)據(jù)庫42中的 XML文檔中搜索包含在為每個所述值搜索條件而獲取的候選節(jié)點列表中的節(jié)點(步驟S63)。在步驟S63中,對于相應(yīng)于所述值搜索條件的每個 結(jié)構(gòu)條件,所述文檔搜索模塊535從所述被搜索的XML文檔中抽取符合 所述結(jié)構(gòu)條件的節(jié)點的節(jié)點IDs和該節(jié)點(符合所述結(jié)構(gòu)條件的節(jié)點)的 相關(guān)節(jié)點(父節(jié)點)的節(jié)點IDs (相關(guān)節(jié)點IDs)。在步驟S63,所述文檔 搜索模塊535獲取所述抽取節(jié)點的節(jié)點IDs和所勤目關(guān)節(jié)點的節(jié)點IDs(相 關(guān)節(jié)點IDs)的列表來作為第四候選節(jié)點列表。即,所述文檔搜索模塊535 根據(jù)所述結(jié)構(gòu)^獲取所述第四候選節(jié)點列表。然后,所述搜索單元53a的搜索結(jié)果獲^^莫塊533在根據(jù)所迷結(jié)構(gòu)條 件獲取的所有第四候選節(jié)點列表之間搜索其相關(guān)節(jié)點IDs相互一致的組合 (步驟S64)。然后,所述搜索結(jié)果獲^塊533把為所述查得的組合所共 有的相關(guān)節(jié)點ID作為通過所述請求處理單元52來自客戶20的搜索請求 的搜索結(jié)果返回給客戶20 (步驟S48)。如上所描述的,在所述變體中, 由于根據(jù)候選節(jié)點的總數(shù)目自動應(yīng)用了最佳搜索過程,因此能夠?qū)崿F(xiàn)最優(yōu) 處理性能。如在所述實施例中一樣,在所述變體中,在所述索引表格57中管理的 節(jié)點(最后節(jié)點和第一節(jié)點)的相關(guān)節(jié)點的類型是父節(jié)點的情況是一前提 條件。然而,在所述索引表格57中管理的所述節(jié)點(最后節(jié)點和第一節(jié)點) 的相關(guān)節(jié)點的類型可以是與一父節(jié)點不同的節(jié)點。例如,當滿足條件 last-"Stevens"和first-"W."的作者所寫的一本書的標題被作為想要的搜索 結(jié)果時,用戶指定一伯父節(jié)點作為索引請求中的相關(guān)節(jié)點,使得適用于由 所述用戶使用的搜索條件的相關(guān)節(jié)點上的信息能夠被包含于所述結(jié)構(gòu)索引 表格59a中。這使得即使所述搜索條件(搜索目標節(jié)點)改變時也有可能 高速地執(zhí)行搜索。所述搜索單元53a本身可以查閱所述索引表格57、值索引表格58a和 結(jié)構(gòu)索引表格59a。相似地,在所述實施例中,所述搜索單元53本身可以 查閱所述索引表格57、值索引表格58和結(jié)構(gòu)索引表格59。進一步地,如 在所述變體中一樣,在所述實施例中,所述搜索單元53可以配備有所述節(jié) 點數(shù)目確定模塊534和文檔搜索模塊535。對于本領(lǐng)域技術(shù)人員來說很容易發(fā)現(xiàn)其它優(yōu)點和變體。因此,本發(fā)明 的范圍不限于此處所示例和描述的具體細節(jié)和代表性實施例。相應(yīng)地,能 夠作出多種變體而不偏離由所附權(quán)利要求和其等同物所定義的總發(fā)明構(gòu)思 的精神和范圍。
權(quán)利要求
1. 一種結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于包括索引存儲單元,其存儲被對應(yīng)附加給節(jié)點的索引,所述節(jié)點包含在存儲于數(shù)據(jù)庫的結(jié)構(gòu)化文檔中,所述索引包含關(guān)于被對應(yīng)附加所述索引的節(jié)點的節(jié)點信息項和關(guān)于相關(guān)節(jié)點的位置信息項,所述節(jié)點信息項包括關(guān)于被對應(yīng)附加所述索引的節(jié)點的位置信息項,所述相關(guān)節(jié)點是在包括被對應(yīng)附加所述索引的節(jié)點的結(jié)構(gòu)化文檔的樹形結(jié)構(gòu)上與所述被對應(yīng)附加所述索引的節(jié)點具有特定關(guān)系的預(yù)先指定類型的節(jié)點;以及搜索單元,其被配置為基于來自客戶的搜索請求中指定的搜索條件在所述索引存儲單元中搜索索引,當所述搜索條件包括覆蓋多個節(jié)點的值的值搜索條件并且所述搜索條件是指定搜索為所述多個節(jié)點所共有的相關(guān)節(jié)點的特定搜索條件時,所述搜索單元被配置為在所述索引存儲單元中搜索符合所述值搜索條件的索引,并且被配置為從搜索到的索引中獲取關(guān)于為所述搜索到的索引所共有的相關(guān)節(jié)點的位置信息項。
2、 根據(jù)權(quán)利要求l所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于進 一步包括存儲索引信息的索引信息存儲單元,所述索引信息指示被對應(yīng) 附加所述索引的節(jié)點的結(jié)構(gòu)和相關(guān)節(jié)點的類型,其中所述相關(guān)節(jié)點 在包含所述節(jié)點的結(jié)構(gòu)化文檔的樹狀結(jié)構(gòu)上與所述節(jié)點具有特定關(guān)系;索引管理單元,其被配置為根據(jù)來自客戶的指定索引的索引請 求,將在所述請求中指定的索引信息項添加到所述索引信息存儲單元,所述索引請求包括指定節(jié)點的信息和指定相關(guān)節(jié)點的類型的信 息,其中所述節(jié)點是被設(shè)置的索引將被對應(yīng)附加給的節(jié)點,所述相關(guān)節(jié)點在包括所述節(jié)點的結(jié)構(gòu)化文檔上與所述節(jié)點具有特定關(guān)系, 而將被添加的所述索引信息項指示被對應(yīng)附加所述索引的節(jié)點的結(jié)構(gòu)和在所述索引請求中指定的相關(guān)節(jié)點的類型;以及文檔存儲處理單元,其被配置為根據(jù)來自所i^戶的指定存儲 結(jié)構(gòu)化文檔的文檔存儲請求來在所述數(shù)據(jù)庫中存儲所述請求中指定 的結(jié)構(gòu)化文檔,其中,當與包含在由所述文檔存儲處理單元在所述數(shù)據(jù)庫中存 儲的結(jié)構(gòu)化文檔中的節(jié)點有關(guān)的索引信息項已經(jīng)存儲在所述索引信 息存儲單元中時,所述索fI管理單元將被對應(yīng)附加給所述節(jié)點的索 引添加到所述索引存儲單元,被對應(yīng)附加給所述節(jié)點的所述索引包 括關(guān)于所述節(jié)點的節(jié)點信息項和關(guān)于所述節(jié)點的相關(guān)節(jié)點的位置信 息項,所述節(jié)點的相關(guān)節(jié)點的類型由關(guān)于所述節(jié)點的索引信息項來 指示。
3、 根據(jù)權(quán)利要求l所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于 包含在所述索引中的所述節(jié)點信息項包括節(jié)點的值;以及 所述索引存儲單元是將所述索引作為值索引進行存儲的值索引存儲單元。
4、 根據(jù)權(quán)利要求3所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于進 一步包括結(jié)構(gòu)索引存儲單元,其存儲凈皮對應(yīng)附加給節(jié)點的結(jié)構(gòu)索引, 所述節(jié)點包含在存儲于所述數(shù)據(jù)庫中的所述結(jié)構(gòu)化文檔中,所述結(jié) 構(gòu)索引包括指示被對應(yīng)附加所述索引的節(jié)點的結(jié)構(gòu)的結(jié)構(gòu)信息項和 關(guān)于所述節(jié)點的位置信息項,其中所述搜索單元包括值索引搜索模塊,其被配置為當搜索請求中指定的搜索條件是 指定的搜索條件時,在所述值索引存儲單元中搜索符合所述指定的 搜索條件中包含的值搜索條件的節(jié)點的值索引作為候選節(jié)點的值索 引,所述值索引搜索模塊被配置為基于搜索到的值索引來獲取相應(yīng)于所述值搜索條件的第 一候選節(jié)點列表,所述第 一候選節(jié)點列表是 其值符合所述值搜索條件的候選節(jié)點以及所述候選節(jié)點的相關(guān)節(jié)點 的列表,結(jié)構(gòu)索引搜索模塊,其被配置為在結(jié)構(gòu)索引存儲單元中搜索其 結(jié)構(gòu)符合所述值搜索條件的節(jié)點的結(jié)構(gòu)索引作為候選節(jié)點的結(jié)構(gòu)索 引,所述結(jié)構(gòu)索引搜索模塊被配置為基于搜索到的結(jié)構(gòu)索引來獲取 相應(yīng)于所述值搜索條件的第二候選節(jié)點列表,所述第二候選節(jié)點列 表是其結(jié)構(gòu)符合所述值搜索條件的候選節(jié)點的列表,以及搜索結(jié)果獲取模塊,其被配置為從包含在根據(jù)所述值搜索條件 而獲取的所述第 一候選節(jié)點列表和所述第二候選節(jié)點列表中的候選 節(jié)點的相關(guān)節(jié)點中,獲取為所述第 一候選節(jié)點列表所共有的相關(guān)節(jié) 點作為搜索結(jié)果。
5、 根據(jù)權(quán)利要求4所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于所 述搜索結(jié)果獲取模塊被配置為通過根據(jù)包括在第 一候選節(jié)點列表和 第二候選節(jié)點列表這兩個列表中的候選節(jié)點將這兩個列表合并,來 獲取第三候選節(jié)點列表,并進一步被配置為獲取為所述第三候選節(jié) 點列表所共有的相關(guān)節(jié)點作為搜索結(jié)果。
6、 根據(jù)權(quán)利要求5所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于所 述搜索結(jié)果獲M塊被配置為利用候選節(jié)點的節(jié)點IDs作為關(guān)鍵詞 來對所述第一候選節(jié)點列表和第二候選節(jié)點列表執(zhí)行一 AND合并 操作,以及還被配置為通過所述AND合并操作來合并所述第一候選 節(jié)點列表和所述第二候選節(jié)點列表。
7、 根據(jù)權(quán)利要求l所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于 包含在所述索引中的所述節(jié)點信息項包括指示相應(yīng)節(jié)點結(jié)構(gòu)的結(jié)構(gòu)信息項;以及所述索引存儲單元是結(jié)構(gòu)索引存儲單元,其將所述索引作為結(jié) 構(gòu)索引進行存儲。
8、 根據(jù)權(quán)利要求7所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于進 一步包括值索引存儲單元,其存儲被對應(yīng)附加給節(jié)點的值索引,所 述節(jié)點包含在存儲于數(shù)據(jù)庫中的結(jié)構(gòu)化文檔中,所述值索引包括被 對應(yīng)附加所述值索引的的節(jié)點的值和關(guān)于該節(jié)點的位置信息項,其中所述搜索單元包括值索引搜索模塊,其被配置為當搜索請求中指定的搜索條件是 指定的搜索條件時,在所述值索引存儲單元中搜索符合所述指定的 搜索條件中包含的值搜索條件的節(jié)點的值索引作為候選節(jié)點的值索 引,所述值索引搜索模塊被配置為基于搜索到的值索引來獲取相應(yīng) 于所述值搜索條件的第 一候選節(jié)點列表,所述第 一候選節(jié)點列表是 其值符合所述值搜索條件的候選節(jié)點的列表,結(jié)構(gòu)索引搜索模塊,其被配置為在結(jié)構(gòu)索引存儲單元中搜索其 結(jié)構(gòu)符合所述值搜索條件的節(jié)點的結(jié)構(gòu)索引作為候選節(jié)點的結(jié)構(gòu)索 引,所述結(jié)構(gòu)索引搜索模塊被配置為基于搜索到的結(jié)構(gòu)索引來獲取 相應(yīng)于所述值搜索條件的第二候選節(jié)點列表,所述第二候選節(jié)點列 表是其結(jié)構(gòu)符合所述值搜索條件的候選節(jié)點以及所述候選節(jié)點的相 關(guān)節(jié)點的列表,以及搜索結(jié)果獲取模塊,其被配置為從包含在根據(jù)所述值搜索條件 而獲取的所述第 一候選節(jié)點列表和所述第二候選節(jié)點列表中的候選 節(jié)點的相關(guān)節(jié)點中,獲取為所述第二候選節(jié)點列表所共有的相關(guān)節(jié) 點作為搜索結(jié)果。
9、 根據(jù)權(quán)利要求8所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于所 述搜索結(jié)果獲取模塊被配置為通過根據(jù)包括在第 一候選節(jié)點列表和 第二候選節(jié)點列表這兩個列表中的候選節(jié)點將這兩個列表合并,來 獲取第三候選節(jié)點列表,并進一步被配置為獲取為所述第三候選節(jié) 點列表所共有的相關(guān)節(jié)點作為搜索結(jié)果。
10、 根據(jù)權(quán)利要求9所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于所述搜索結(jié)果獲Wt塊被配置為利用候選節(jié)點的節(jié)點IDs作為關(guān)鍵 詞來對所述第 一候選節(jié)點列表和所述第二候選節(jié)點列表執(zhí)行AND 合并操作,以及還被配置為通過所述AND合并操作來合并所述第一 候選節(jié)點列表和所述第二候選節(jié)點列表。
11、 根據(jù)權(quán)利要求8所述的結(jié)構(gòu)化文檔搜索系統(tǒng),其特征在于 所述結(jié)構(gòu)索引搜索模塊被配置為,當包含在所述第一候選節(jié)點列表中的候選節(jié)點的數(shù)目大于或等于預(yù)先確定的指定數(shù)目時,獲取 所述第二候選節(jié)點列表;所述搜索單元包括結(jié)構(gòu)化文檔搜索模塊,其被配置為當包含在 所述第一候選節(jié)點列表中的候選節(jié)點數(shù)目小于所述特定數(shù)目時開始 運作,所述結(jié)構(gòu)化文檔搜索模塊被配置為在存儲于所述數(shù)據(jù)庫中的 結(jié)構(gòu)化文檔中搜索包含在所述第一候選節(jié)點列表中的候選節(jié)點,以 及被進一步配置為獲取其結(jié)構(gòu)符合相應(yīng)于所述值搜索條件的結(jié)構(gòu)條 件的節(jié)點和該節(jié)點的相關(guān)節(jié)點的列表作為第三候選節(jié)點列表;以及所述搜索結(jié)果獲取模塊被配置為獲取為所述第三候選節(jié)點列表 所共有的相關(guān)節(jié)點作為搜索結(jié)果。
12、 一種利用數(shù)據(jù)庫服務(wù)器計算機中的索引來搜索存儲于數(shù)據(jù) 庫中的結(jié)構(gòu)化文檔的方法,其中所述數(shù)據(jù)庫服務(wù)器計算機包括索引 存儲單元,以用于存儲被對應(yīng)附加給節(jié)點的索引,所述節(jié)點包含在 存儲于所述數(shù)據(jù)庫中的結(jié)構(gòu)化文檔中,所述方法的特征在于包括根據(jù)來自客戶的指定存儲結(jié)構(gòu)文檔的結(jié)構(gòu)化文檔存儲請求,將 在所述請求中指定的結(jié)構(gòu)化文檔存儲于數(shù)據(jù)庫中;當所述結(jié)構(gòu)化文檔被存儲在所述數(shù)據(jù)庫中時,把被對應(yīng)附加給 包含在所述結(jié)構(gòu)化文檔中的節(jié)點的索引添加到所述索引存儲單元, 添加的索引包括關(guān)于被對應(yīng)附加所述索引的節(jié)點的節(jié)點信息項和關(guān) 于相關(guān)節(jié)點的位置信息項,所述節(jié)點信息項包括關(guān)于被對應(yīng)附加所 述索引的節(jié)點的位置信息項,所述相關(guān)節(jié)點是在包括被對應(yīng)附加所述索引的節(jié)點的結(jié)構(gòu)化文檔的樹形結(jié)構(gòu)上與所述凈皮對應(yīng)附加索引的節(jié)點具有特定關(guān)系的預(yù)先指定類型的節(jié)點;基于來自所述客戶的搜索請求中指定的搜索條件,在所述索引 存儲單元中搜索索引,當所述搜索條件包括覆蓋多個節(jié)點的值的值 搜索條件并且所述搜索條件是指定搜索為所述多個節(jié)點所共有的相 關(guān)節(jié)點的特定搜索條件時,被搜索的索引是符合所述值搜索條件的 索引;基于所述搜索到的索引,搜索關(guān)于為所述搜索到的索引所共有 的相關(guān)節(jié)點的位置信息項;以及向所述客戶返回關(guān)于搜索到的相關(guān)節(jié)點的位置信息項作為來自 所^戶的搜索請求的搜索結(jié)果。
13、 根據(jù)權(quán)利要求12所述的方法,其特征在于 包括在所述索引中的所述節(jié)點信息項包括節(jié)點的值;以及 所述索引存儲單元是用于將所述索引存儲為值索引的值索引存儲單元。
14、 根據(jù)權(quán)利要求13所述的方法,其特征在于 所述搜索索引的步驟包括當在所述搜索請求中指定的搜索條件是特定搜索條件時,在所 述值索引存儲單元中搜索其值符合包含在所述特定搜索條件中的值 搜索條件的節(jié)點的值索引作為候選節(jié)點的值索引,以及在結(jié)構(gòu)索引存儲單元中搜索其結(jié)構(gòu)符合所述值搜索條件的節(jié)點 的結(jié)構(gòu)索引作為候選節(jié)點的結(jié)構(gòu)索引,所述結(jié)構(gòu)索引存儲單元存儲 被對應(yīng)附加給節(jié)點的結(jié)構(gòu)索引,所述節(jié)點包含在所述數(shù)據(jù)庫中存儲 的結(jié)構(gòu)化文檔中,并且所述結(jié)構(gòu)索引包括指示^L對應(yīng)附加所述結(jié)構(gòu) 索引的節(jié)點的結(jié)構(gòu)的結(jié)構(gòu)信息項和關(guān)于該節(jié)點的位置信息項,以及所述搜索關(guān)于所勤目關(guān)節(jié)點的位置信息項的步驟包括基于搜索到的值索引來獲取相應(yīng)于所述值搜索條件的第一候選節(jié)點列表,所述第 一候選節(jié)點列表是其值符合所述值搜索條件的候 選節(jié)點以及該候選節(jié)點的相關(guān)節(jié)點的列表,基于搜索到的結(jié)構(gòu)索引來獲取相應(yīng)于所述值搜索條件的第二候 選節(jié)點列表,所述第二候選節(jié)點列表是其結(jié)構(gòu)符合所述值搜索條件 的候選節(jié)點的列表,以及從包含在所述第 一候選節(jié)點列表和所述第二候選節(jié)點列表中的 候選節(jié)點的相關(guān)節(jié)點中獲取為所述第 一候選節(jié)點列表所共有的相 關(guān)節(jié)點作為搜索結(jié)果。
15、 根據(jù)權(quán)利要求12所述的方法,其特征在于 包含在所述索引中的節(jié)點信息項包括指示相應(yīng)節(jié)點的結(jié)構(gòu)的結(jié)構(gòu)信息項;以及所述索引存儲單元是結(jié)構(gòu)索引存儲單元,其將所述索引作為結(jié) 構(gòu)索引進行存儲。
16、 根據(jù)權(quán)利要求15所述的方法,其特征在于 所述搜索索引的步驟包括當在所述搜索請求中指定的搜索條件是特定搜索條件時,在所 述值索引存儲單元中搜索其值符合包含在所述特定搜索條件中的值 搜索條件的節(jié)點的值索引作為候選節(jié)點的值索引,所述值索引存儲 單元存儲被對應(yīng)附加給節(jié)點的值索引,所述節(jié)點包含在所述數(shù)據(jù)庫 中存儲的結(jié)構(gòu)化文檔中;以及在所述結(jié)構(gòu)索引存儲單元中搜索其結(jié)構(gòu)符合所述值搜索條件的 節(jié)點的結(jié)構(gòu)索引作為候選節(jié)點的結(jié)構(gòu)索引,以及所述搜索關(guān)于所勤目關(guān)節(jié)點的位置信息項的步驟包括基于搜索到的值索引來獲取相應(yīng)于所述值搜索條件的第一候選 節(jié)點列表,所述第 一候選節(jié)點列表是其值符合所述值搜索條件的候 選節(jié)點的列表,基于搜索到的結(jié)構(gòu)索引來獲取相應(yīng)于所述值搜索條件的第二候選節(jié)點列表,所述第二候選節(jié)點列表是其結(jié)構(gòu)符合所述值搜索條件 的候選節(jié)點和所述候選節(jié)點的相關(guān)節(jié)點的列表,以及從包含在所述第 一候選節(jié)點列表和所述第二候選節(jié)點列表中的候選節(jié)點的相關(guān)節(jié)點中獲取為所述第二候選節(jié)點列表所共有的相關(guān)節(jié)點作為搜索結(jié)果。
全文摘要
一種結(jié)構(gòu)化文檔搜索系統(tǒng)(50)包括一索引存儲單元(58)和一搜索單元(53)。所述索引存儲單元(58)存儲被對應(yīng)附加給節(jié)點的索引,所述節(jié)點包含在數(shù)據(jù)庫(42)中存儲的結(jié)構(gòu)化文檔中。所述索引包括關(guān)于被對應(yīng)附加所述索引的節(jié)點的節(jié)點信息項以及關(guān)于相關(guān)節(jié)點的位置信息項。所述節(jié)點信息項包括關(guān)于被對應(yīng)附加所述索引的節(jié)點的位置信息項。當由客戶作出的搜索請求中指定的搜索條件包括覆蓋所述節(jié)點的值的值搜索條件并且是一指定對為所述節(jié)點所共有的相關(guān)節(jié)點進行搜索的特定搜索條件時,所述搜索單元(53)在所述索引存儲單元(58)中搜索符合所述值搜索條件的索引并且獲取關(guān)于為搜索到的索引所共有的相關(guān)節(jié)點的位置信息項。
文檔編號G06F17/30GK101271474SQ20081009518
公開日2008年9月24日 申請日期2008年3月20日 優(yōu)先權(quán)日2007年3月20日
發(fā)明者中西基起, 松井浩二, 酒井美由紀 申請人:株式會社東芝;東芝解決方案株式會社