專利名稱:索引合并方法和索引合并裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及信息處理領(lǐng)域,尤其是涉及利用索 引技術(shù)的索引合并方法和索 引合并裝置。
背景技術(shù):
在動(dòng)態(tài)文檔集環(huán)境中通常需要頻繁且高效地更新索引。由于實(shí)時(shí)檢索系統(tǒng)要求支 持動(dòng)態(tài)文檔集以及并發(fā)的索引和查詢,即,要求允許用戶在進(jìn)行索引更新的同時(shí)進(jìn)行查詢。 然而,頻繁的索引更新非常消耗系統(tǒng)性能。在動(dòng)態(tài)文檔集環(huán)境中,對(duì)索引更新的主要要求 是使索引更新的性能和查詢的性能相折衷以達(dá)到更加優(yōu)化的整體性能。在例如Strohman, Τ·所著的“Dynamic Collections in Indri. CIIR Technical R印ort (2005) ”中,分析了動(dòng) 態(tài)文檔集環(huán)境對(duì)于索引更新技術(shù)的要求。關(guān)于如何在動(dòng)態(tài)文檔集環(huán)境中進(jìn)行索引更新,在現(xiàn)有的許多專利、專利申請(qǐng) 或者論文等中公開(kāi)了多種方法。例如在N. Lester、J. Zobel和H. Ε. Williams所著的 “In-place versus re-build versus re-merge Indexmaintenance strategies for text retrieval systems,,(Proc. Twenty-SeventhAustralasian Computer Science Conference (ACSC2004),第15-22頁(yè))中列舉了目前三種主要的索引更新方法。第一種方 法是重建索引,即,在添加新文檔時(shí)丟棄所有舊索引,對(duì)整個(gè)文檔集和新的文檔一起重新建 立新索引。這種方法對(duì)于大規(guī)模文檔集的效率很低。第二種方法是原地索引,即,在建索引 時(shí)給每個(gè)索引項(xiàng)的倒排項(xiàng)預(yù)留一定的空間,當(dāng)有新文檔加入索引時(shí),如果預(yù)留的空間足夠, 就將新文檔的索引信息直接寫(xiě)入預(yù)留的空間,如果預(yù)留的空間不足,則將這些新的索引信 息寫(xiě)到新的位置,同時(shí)在原來(lái)的索引中添加一個(gè)指向新的存儲(chǔ)區(qū)域的指針,從而將同一索 引項(xiàng)的倒排項(xiàng)通過(guò)指針串連起來(lái)。第三種方法是重新合并,即,在每次新加入文檔時(shí),首先 對(duì)新加入的文檔建立一個(gè)子索引,然后將該子索引和磁盤(pán)上的索引進(jìn)行合并,并將合并結(jié) 果寫(xiě)至新的磁盤(pán)位置。這種方法能夠保證索引庫(kù)中每個(gè)索引項(xiàng)的索引信息在磁盤(pán)上連續(xù)存 放,在查詢時(shí)僅需一次磁盤(pán)定位操作,但是在使用重新合并方法時(shí)會(huì)在磁盤(pán)上形成多個(gè)子 索引,在查詢時(shí)需要逐個(gè)訪問(wèn)這些子索引以獲取查詢項(xiàng)的倒排列表。這意味著要進(jìn)行多次 磁盤(pán)訪問(wèn),從而降低了查詢效率。因此,需要在合適的時(shí)機(jī)進(jìn)行索引合并,將多個(gè)子索引合 并為單個(gè)索引,以降低查詢時(shí)的磁盤(pán)訪問(wèn)次數(shù)。在實(shí)際系統(tǒng)中絕大多數(shù)情況下重新合并方 法的效果要優(yōu)于原地索引方法和重建索引方法。在現(xiàn)有的許多文章或?qū)@袑?duì)第三種方法即重新合并方法進(jìn)行了不同程度的改 進(jìn),減少了讀取和寫(xiě)入次數(shù),使效率得到一定的提高。索引重新合并的方式包括立即合并方式和按策略合并方式。立即合并是指在每次 將索引從內(nèi)存寫(xiě)入磁盤(pán)時(shí)都進(jìn)行合并,這種方式的合并頻率過(guò)高,因此非常消耗系統(tǒng)資源 并將降低系統(tǒng)速度。在現(xiàn)有的許多專利或論文等中公開(kāi)了多種按策略合并的方法,例如,提 出了如下的對(duì)數(shù)合并策略對(duì)子索引進(jìn)行分代,每次從內(nèi)存中形成的索引為0代,經(jīng)過(guò)一次 合并之后的索引為1代,依次類(lèi)推;假設(shè)第i代觸發(fā)一次合并,則生成第i+1代子索引;同一代中不允許出現(xiàn)超過(guò)兩個(gè)索引,如果超過(guò)兩個(gè)索引就對(duì)其進(jìn)行合并。另一種類(lèi)似的合并策 略的核心思想是將待索引的數(shù)據(jù)集分為多個(gè)數(shù)目可控的劃分,對(duì)劃分的數(shù)目進(jìn)行限制可以 有策略地控制索引合并,最終達(dá)到減少索引和檢索總代價(jià)的目的。此外還提出了根據(jù)詞的 倒排項(xiàng)的長(zhǎng)短對(duì)其實(shí)施不同的索引及合并策略。然而,從目前公開(kāi)的諸多文章、專利和專利申請(qǐng)來(lái)看,大多數(shù)的索引合并方案都關(guān) 注于對(duì)新加入的索引的直接合并或根據(jù)加入的時(shí)間順序進(jìn)行合并,而沒(méi)有考慮索引的尺寸 對(duì)合并代價(jià)的影響,并且無(wú)法對(duì)索引合并過(guò)程進(jìn)行動(dòng)態(tài)調(diào)節(jié),因此在動(dòng)態(tài)文本集環(huán)境下導(dǎo) 致了不穩(wěn)定的尚需優(yōu)化的系統(tǒng)性能。因此,目前仍然需要一種能夠在動(dòng)態(tài)文本集環(huán)境下獲 得較為穩(wěn)定的優(yōu)化的系統(tǒng)性能的索引合并方法和/或裝置。
發(fā)明內(nèi)容
在下文中給出了關(guān)于本發(fā)明的簡(jiǎn)要概述,以便提供關(guān)于本發(fā)明的某些方面的基本 理解。應(yīng)當(dāng)理解,這個(gè)概述并不是關(guān)于本發(fā)明的窮舉性概述。它并不是意圖確定本發(fā)明的 關(guān)鍵或重要部分,也不是意圖限定本發(fā)明的范圍。其目的僅僅是以簡(jiǎn)化的形式給出某些概 念,以此作為稍后論述的更詳細(xì)描述的前序。為了解決現(xiàn)有技術(shù)的上述問(wèn)題,本發(fā)明的一個(gè)目的是提供一種索引合并方法以及 相應(yīng)的索引合并裝置,它們能夠在動(dòng)態(tài)文本集環(huán)境下獲得較為穩(wěn)定的優(yōu)化的系統(tǒng)性能。本發(fā)明的另一個(gè)目的是提供相應(yīng)的計(jì)算機(jī)程序產(chǎn)品和/或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種索引合并方法,該索引合 并方法包括以下步驟確定在索引庫(kù)中是否存在不少于η個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的 預(yù)定合并條件的子索引,其中η為整數(shù)且η大于等于2,并且所述預(yù)定基準(zhǔn)與預(yù)定子索引 的尺寸相關(guān);在確定索引庫(kù)中存在不少于η個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件 的子索引的情況下,將所確定的子索引作為子索引集;計(jì)算如果對(duì)所述子索引集中的子索 引進(jìn)行合并將會(huì)獲得的新子索引的尺寸;在所述索引庫(kù)中剩余的子索引中查找不少于m個(gè) 的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,其中m為 整數(shù)且m大于等于1 ;如果在所述索引庫(kù)中剩余的子索引中找到了不少于m個(gè)的、尺寸符合 基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則將所找到的子索引加 入所述子索引集中,然后對(duì)新的子索引集執(zhí)行所述計(jì)算的步驟和所述查找的步驟;以及如 果在所述索引庫(kù)中剩余的子索引中未找到不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索 引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則對(duì)所述子索引集中的子索引進(jìn)行合并。根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種索引合并裝置,包括確定單元,被配置 用于確定在索引庫(kù)中是否存在不少于η個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的 子索引,其中η為整數(shù)且η大于等于2,并且所述預(yù)定基準(zhǔn)與預(yù)定子索引的尺寸相關(guān),以及 在確定索引庫(kù)中存在不少于η個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引的情 況下,將所確定的子索引作為子索引集;合并控制單元,被配置用于計(jì)算如果對(duì)所述子索 引集中的子索引進(jìn)行合并將會(huì)獲得的新子索引的尺寸;在所述索引庫(kù)中剩余的子索引中查 找不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索 弓丨。其中m為整數(shù)且m大于等于1 ;如果在所述索引庫(kù)中剩余的子索引中找到了不少于m個(gè) 的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則將所找到的子索引加入所述子索引集中,然后對(duì)新的子索引集執(zhí)行所述計(jì)算的操作和所述查找的 操作;如果在所述索引庫(kù)中剩余的子索引中未找到不少于m個(gè)的、尺寸符合基于與所計(jì)算 的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則輸出指示對(duì)所述子索引集中的子索 引進(jìn)行合并的信息;以及合并單元,被配置用于對(duì)所述合并控制單元輸出的信息所指示的 子索引集中的子索引進(jìn)行合并。依據(jù)本發(fā)明的其它方面,還提供了相應(yīng)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn) 品。本發(fā)明的一個(gè)優(yōu)點(diǎn)在于,在根據(jù)本發(fā)明實(shí)施例的索引合并方法和/或索引合并裝 置中,通過(guò)在所選擇的要進(jìn)行合并的子索引集還能夠與索引庫(kù)中剩余的子索引進(jìn)行合并的 情況下將可以進(jìn)行合并的子索引加入該子索引集中,并且只在索引庫(kù)中剩余的子索引中不 存在能夠合并的子索引的情況下才真正地對(duì)子索引集執(zhí)行合并操作,從而能夠根據(jù)索引庫(kù) 中實(shí)時(shí)存在的子索引的情況而動(dòng)態(tài)地調(diào)節(jié)對(duì)子索引的合并操作,使得每次合并操作對(duì)盡可 能多的子索引進(jìn)行合并,減少了合并次數(shù)和對(duì)索引的讀寫(xiě)次數(shù)。因此,通過(guò)對(duì)索引合并過(guò)程 的所述動(dòng)態(tài)調(diào)節(jié),能夠在動(dòng)態(tài)文檔集環(huán)境下大大降低索引合并的性能代價(jià),獲得較為穩(wěn)定 的優(yōu)化的系統(tǒng)性能,同時(shí)也實(shí)現(xiàn)了索引合并與索引檢索之間的更好的平衡,有利于改善索 引檢索的性能。本發(fā)明的另一個(gè)優(yōu)點(diǎn)在于,在根據(jù)本發(fā)明實(shí)施例的索引合并方法和/或索引合并 裝置中,通過(guò)根據(jù)影響索引合并效率的主要因素,即,索引尺寸來(lái)選擇要進(jìn)行合并的子索 弓丨,可以大大降低索引尺寸對(duì)索引合并代價(jià)的影響,從而進(jìn)一步改善了索引合并的性能,同 時(shí)也實(shí)現(xiàn)了索引合并與索引檢索之間的更好的平衡,有利于改善索引檢索的性能。本發(fā)明的又一個(gè)優(yōu)點(diǎn)在于,通過(guò)根據(jù)本發(fā)明實(shí)施例的索引合并方法和/或索引合 并裝置對(duì)索引合并過(guò)程的所述動(dòng)態(tài)調(diào)節(jié),能夠在動(dòng)態(tài)文檔集環(huán)境下增強(qiáng)系統(tǒng)的規(guī)??蓴U(kuò)展 性。通過(guò)以下結(jié)合附圖對(duì)本發(fā)明的最佳實(shí)施例的詳細(xì)說(shuō)明,本發(fā)明的這些以及其他優(yōu) 點(diǎn)將更加明顯。
本發(fā)明可以通過(guò)參考下文中結(jié)合附圖所給出的描述而得到更好的理解,其中在所 有附圖中使用了相同或相似的附圖標(biāo)記來(lái)表示相同或者相似的部件。所述附圖連同下面的 詳細(xì)說(shuō)明一起包含在本說(shuō)明書(shū)中并且形成本說(shuō)明書(shū)的一部分,而且用來(lái)進(jìn)一步舉例說(shuō)明本 發(fā)明的優(yōu)選實(shí)施例和解釋本發(fā)明的原理和優(yōu)點(diǎn)。在附圖中圖1示出了索引庫(kù)的簡(jiǎn)單示意圖;圖2示出了根據(jù)本發(fā)明的實(shí)施例的索引合并裝置所應(yīng)用于的信息檢索系統(tǒng)的示 意圖;圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的、在圖2所示的信息檢索系統(tǒng)中進(jìn)行索引 合并的方法的流程圖;圖4示出了根據(jù)本發(fā)明的另一實(shí)施例的、在圖2所示的信息檢索系統(tǒng)中進(jìn)行索引 合并的方法的流程圖;圖5示出了根據(jù)本發(fā)明的索引合并方法流程的示例一的示意圖6示出了根據(jù)本發(fā)明的索引合并方法流程的示例二的示意圖;圖7示出了根據(jù)本發(fā)明的索引合并方法流程的示例三的示意圖;圖8示出了根據(jù)本發(fā)明的索引合并方法流程的示例四的示意圖;以及
圖9示出了根據(jù)本發(fā)明的實(shí)施例的索引合并裝置的結(jié)構(gòu)示意圖。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,附圖中的元件僅僅是為了簡(jiǎn)單和清楚起見(jiàn)而示出的, 而且不一定是按比例繪制的。例如,附圖中某些元件的尺寸可能相對(duì)于其他元件放大了,以 便有助于提高對(duì)本發(fā)明實(shí)施例的理解。
具體實(shí)施例方式在下文中將結(jié)合附圖對(duì)本發(fā)明的示范性實(shí)施例進(jìn)行描述。為了清楚和簡(jiǎn)明起見(jiàn), 在說(shuō)明書(shū)中并未描述實(shí)際實(shí)施方式的所有特征。然而,應(yīng)該了解,在開(kāi)發(fā)任何這種實(shí)際實(shí)施 例的過(guò)程中必須做出很多特定于實(shí)施方式的決定,以便實(shí)現(xiàn)開(kāi)發(fā)人員的具體目標(biāo),例如,符 合與系統(tǒng)及業(yè)務(wù)相關(guān)的那些限制條件,并且這些限制條件可能會(huì)隨著實(shí)施方式的不同而有 所改變。此外,還應(yīng)該了解,雖然開(kāi)發(fā)工作有可能是非常復(fù)雜和費(fèi)時(shí)的,但對(duì)得益于本公開(kāi) 內(nèi)容的本領(lǐng)域技術(shù)人員來(lái)說(shuō),這種開(kāi)發(fā)工作僅僅是例行的任務(wù)。在此,還需要說(shuō)明的一點(diǎn)是,為了避免因不必要的細(xì)節(jié)而模糊了本發(fā)明,在附圖中 僅僅示出了與根據(jù)本發(fā)明的方案密切相關(guān)的裝置結(jié)構(gòu)和/或處理步驟,而省略了與本發(fā)明 關(guān)系不大的其他細(xì)節(jié)。圖1示出了包括一個(gè)或多個(gè)子索引的索引庫(kù)的示意圖。加入索引庫(kù)的子索引被依 次編號(hào),其中,子索引Il是基于第一動(dòng)態(tài)文檔數(shù)據(jù)集創(chuàng)建的子索引,子索引12是基于第二
動(dòng)態(tài)文檔數(shù)據(jù)集創(chuàng)建的子索引,......,子索引In是基于第η個(gè)動(dòng)態(tài)文檔數(shù)據(jù)集創(chuàng)建的子
索引,等等。圖2示出了根據(jù)本發(fā)明的實(shí)施例的索引合并裝置所應(yīng)用于的信息檢索系統(tǒng)的示 意圖。該信息檢索系統(tǒng)包括包括一個(gè)或多個(gè)子索引的索引庫(kù)204;索引添加裝置201,用于 根據(jù)動(dòng)態(tài)文檔集中的數(shù)據(jù)產(chǎn)生相應(yīng)的子索引,并將產(chǎn)生的子索引添加到索引庫(kù)204中;索 引檢索裝置202,用于根據(jù)用戶的查詢指令對(duì)索引庫(kù)204中的子索引進(jìn)行檢索并輸出檢索 結(jié)果;以及根據(jù)本發(fā)明的實(shí)施例的索引合并裝置203,用于對(duì)索引庫(kù)204中的子索引進(jìn)行合 并。為了便于說(shuō)明本發(fā)明的原理,在下文中以圖1所示的索引庫(kù)和圖2所示的信息檢 索系統(tǒng)作為應(yīng)用的場(chǎng)景來(lái)對(duì)本發(fā)明的實(shí)施例進(jìn)行描述,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白, 本發(fā)明并不僅僅局限于應(yīng)用在圖1所示的索引庫(kù)和圖2所示的信息檢索系統(tǒng)中。下面結(jié)合圖1、2和3來(lái)說(shuō)明根據(jù)本發(fā)明的索引合并方法的實(shí)施例。圖3示出了根據(jù)本發(fā)明的實(shí)施例的索引合并方法的流程圖。首先,在步驟S301中, 確定在索引庫(kù)204中是否存在不少于η個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子 索引,其中η為整數(shù)且η大于等于2,并且所述預(yù)定基準(zhǔn)與預(yù)定子索引的尺寸相關(guān)。然后,在 步驟S302中,在確定索引庫(kù)204中存在不少于η個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并 條件的子索引的情況下,將所確定的子索引作為子索引集。這里,如上文所述地通過(guò)根據(jù)影 響索引合并效率的主要因素,即,索引尺寸來(lái)選擇要進(jìn)行合并的子索引,可以大大降低索引 尺寸對(duì)索引合并代價(jià)的影響,從而進(jìn)一步改善了索引合并的性能,同時(shí)也實(shí)現(xiàn)了索引合并與索引檢索之間的更好的平衡,有利于改善索引檢索的性能。此外,對(duì)于動(dòng)態(tài)文檔集而言,由于文檔不斷被加入,因此索引庫(kù)中也不斷地有新的 子索引被加入。因此,在實(shí)時(shí)動(dòng)態(tài)文檔集環(huán)境中,可以循環(huán)執(zhí)行根據(jù)本發(fā)明的實(shí)施例的索引 合并方法。本領(lǐng)域的技術(shù)人員可以根據(jù)實(shí)際系統(tǒng)的性能需求來(lái)選擇該索引合并方法的執(zhí)行 時(shí)機(jī)。例如,可以以預(yù)定的時(shí)間間隔而定期地開(kāi)始執(zhí)行所述確定的步驟,或者也可以在索引 庫(kù)中新加入至少一個(gè)子索引時(shí)開(kāi)始執(zhí)行所述確定的步驟。優(yōu)選地,所述預(yù)定基準(zhǔn)可以是所述預(yù)定子索引的尺寸,所述預(yù)定子索引可以是具 有預(yù)先設(shè)定的尺寸的子索引,也可以是索引庫(kù)中的某個(gè)尺寸的子索引,例如最小尺寸的子 索引。所述第一預(yù)定合并條件可以是預(yù)定的子索引尺寸的范圍。相應(yīng)地,所述預(yù)定合并條 件可以是子索引尺寸在所述預(yù)定基準(zhǔn)的Ι-k倍到所述預(yù)定基準(zhǔn)的Ι+k倍的范圍之內(nèi),其中 0<k<l。在此,根據(jù)實(shí)際情況而可以設(shè)定k = 0.1。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以根 據(jù)實(shí)際系統(tǒng)的性能需求來(lái)靈活地選擇所述預(yù)定基準(zhǔn)和所述預(yù)定合并條件。例如,在步驟S301中,可以先從索引庫(kù)204中選出尺寸最小的子索引Rmin,以其尺 寸s作為預(yù)定基準(zhǔn),并預(yù)先設(shè)定范圍選擇參數(shù)k(0 < k < 1),其中k的值為根據(jù)本發(fā)明的實(shí) 施例的索引合并裝置的可調(diào)節(jié)參數(shù)。然后針對(duì)索引庫(kù)204中的每個(gè)子索引i,計(jì)算其尺寸ri 是否符合下面的公式(1)
(1-k) Xs ^ Ti ^ (1+k) X s,(0 < k < 1)(1)對(duì)于從索引庫(kù)204中找到的所有符合公式(1)的子索引,計(jì)算所有這些子索引的 個(gè)數(shù)I α |。如果所有這些子索引的個(gè)數(shù)I α I滿足下面的公式(2),則在步驟S302中,將所 有這些子索引作為子索引集α,并繼續(xù)執(zhí)行后續(xù)操作。否則,重新對(duì)索引庫(kù)204中剩余的子 索引進(jìn)行步驟S301的操作。在公式(2)中,η為整數(shù)且η大于等于2:I α I ^ η(2)本領(lǐng)域的技術(shù)人員可以根據(jù)實(shí)際系統(tǒng)的性能需求來(lái)選擇η的具體值,例如,在希 望一次合并盡可能多的子索引以盡量減少合并次數(shù)的情況下可以將η選擇為適當(dāng)?shù)妮^大 的值,而在系統(tǒng)性能需求相對(duì)較低的情況下,可以適當(dāng)減小η的值以縮短合并反應(yīng)時(shí)間。例 如,η可以在10到15的范圍之內(nèi),但η也可以取其它的值,例如3甚至是2。優(yōu)選地,如果在步驟S301中確定了索引庫(kù)204中不存在不少于η個(gè)的、尺寸符合 基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引,則可以執(zhí)行以下步驟判定在索引庫(kù)204中是否 存在不少于η個(gè)的、尺寸符合基于與已使用過(guò)的基準(zhǔn)不相同的基準(zhǔn)的合并條件的子索引; 如果存在,則將所判定的子索引作為子索引集,并對(duì)所述子索引集執(zhí)行所述計(jì)算的步驟和 所述查找的步驟;如果不存在,則重新執(zhí)行所述判定的步驟。其中,優(yōu)選地,所述與已使用過(guò) 的基準(zhǔn)不相同的基準(zhǔn)為索引庫(kù)204中的尺寸與和已使用過(guò)的基準(zhǔn)相關(guān)的尺寸不相同的子 索引的尺寸?,F(xiàn)在回到步驟S302,在執(zhí)行了步驟S302之后,在步驟S303中,計(jì)算如果對(duì)所述子 索引集中的子索引進(jìn)行合并將會(huì)獲得的新子索引的尺寸。此時(shí),并不真正對(duì)所述子索引集 中的子索引進(jìn)行合并操作。然后,在步驟S304中,在索引庫(kù)204中剩余的子索引中查找不少于m個(gè)的、尺寸符 合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,其中m為整數(shù)且m大 于等于1。
同樣地,本領(lǐng)域的技術(shù)人員可以根據(jù)實(shí)際系統(tǒng)的性能需求來(lái)選擇m的具體值,例 如,在希望一次合并盡可能多的子索引以盡量減少合并次數(shù)的情況下可以將m選擇為適當(dāng) 的較大的值,而在系統(tǒng)性能需求相對(duì)較低的情況下,可以適當(dāng)減小m的值以縮短合并反應(yīng) 時(shí)間。例如,優(yōu)選地,η可以等于m+1,這樣可以使得在步驟S301和步驟S304中的每次確定 或查找都需要確定不少于相同個(gè)數(shù)的子索引,以保持系統(tǒng)性能的穩(wěn)定。優(yōu)選地,所述與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)可以是所述新子索引的尺 寸。相應(yīng)地,步驟S304可以具體包括在索引庫(kù)204中剩余的子索引中查找不少于m個(gè)的、 尺寸在所述新子索引的尺寸的l_k倍到所述新子索引的尺寸的Ι+k倍的范圍之內(nèi)的子索 弓丨,其中0 < k < 1。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以根據(jù)實(shí)際系統(tǒng)的性能需求來(lái)靈活地 選擇所述與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)以及所述預(yù)定條件。然后,如果在步驟S304中在索引庫(kù)204中剩余的子索引中找到了不少于m個(gè)的、 尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則在步驟S305 中將所找到的子索引加入所述子索引集中,并隨后對(duì)新的子索 引集執(zhí)行步驟S303和步驟 S304。如果在步驟S304中在索引庫(kù)204中剩余的子索引中未找到不少于m個(gè)的、尺寸符 合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則在步驟S306中對(duì) 所述子索引集中的子索引進(jìn)行合并。也就是說(shuō),此時(shí)才真正地對(duì)最終的子索引集執(zhí)行合并 操作。例如,在步驟S303中,可以計(jì)算對(duì)所述子索引集α進(jìn)行合并將得到的子索引ma 的尺寸ra (并不真正進(jìn)行合并操作)。然后在步驟S304中可以以1^為基準(zhǔn)尺寸,根據(jù)公 式(1)在索引集204中剩余的子索引中查找不少于m個(gè)的符合公式(1)的子索引。如果未 找到則繼續(xù)執(zhí)行步驟S306,S卩,對(duì)子索引集α中的子索引執(zhí)行一次合并操作,并將合并后 得到的子索引放入索引庫(kù)204中。如果找到了則執(zhí)行步驟S305。在步驟S305中,將所找 到的不少于m個(gè)的子索引加入所述子索引集α中,得到新的子索引集Y,然后處理轉(zhuǎn)到步 驟S303,g卩,對(duì)該子索引集γ執(zhí)行步驟S303和步驟S304,以此類(lèi)推,直至最終得到子索引 集S。然后在步驟S306中對(duì)該子索引集δ中的子索引執(zhí)行一次合并操作,并將合并后得 到的子索引放入索引庫(kù)204中。如上文所述,通過(guò)上述操作,在所確定的要進(jìn)行合并的子索引集還能夠與索引庫(kù) 中剩余的子索引進(jìn)行合并的情況下,又將仍可進(jìn)行合并的子索引加入該子索引集中,并且 只在索引庫(kù)中剩余的子索引中不存在能夠合并的子索引的情況下才真正地對(duì)子索引集執(zhí) 行合并操作,從而能夠根據(jù)索引庫(kù)中實(shí)時(shí)存在的子索引的情況而動(dòng)態(tài)地調(diào)節(jié)對(duì)子索引的合 并操作,使得每次合并操作對(duì)盡可能多的子索引進(jìn)行合并,減少了合并次數(shù)和對(duì)索引的讀 寫(xiě)次數(shù)。因此,通過(guò)對(duì)索引合并過(guò)程的上述動(dòng)態(tài)調(diào)節(jié)操作,能夠在動(dòng)態(tài)文檔集環(huán)境下大大 降低索引合并的性能代價(jià),獲得較為穩(wěn)定的優(yōu)化的系統(tǒng)性能,同時(shí)也實(shí)現(xiàn)了索引合并與索 引檢索之間的更好的平衡,有利于改善索引檢索的性能。此外,需要說(shuō)明的是,雖然以上結(jié)合圖3所示的流程圖對(duì)根據(jù)本發(fā)明的索引合并 方法進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,圖3所示的流程圖僅僅是示例性的,而不 是對(duì)本發(fā)明的范圍的限制,本領(lǐng)域技術(shù)人員完全可以根據(jù)實(shí)際需要對(duì)圖3所示的流程圖進(jìn)行修改。例如,本領(lǐng)域的技術(shù)人員完全可以根據(jù)實(shí)際系統(tǒng)的便利性的需要,用子索引描述信 息來(lái)描述索引庫(kù)204中的相應(yīng)的子索引的尺寸、位置等,和/或用子索引集描述信息來(lái)描述 所述子索引集中包括的子索引的尺寸、位置等,并根據(jù)所述子索引描述信息和子索引集描 述信息來(lái)執(zhí)行圖3所示的操作。例如,圖4示出了根據(jù)本發(fā)明的另一實(shí)施例的、利用所述子索引描述信息和子索 引集描述信息在圖2所示的信息檢索系統(tǒng)中進(jìn)行索引合并的方法的流程圖。如圖4所示,首先在步驟S401中,針對(duì)索引庫(kù)204中的每個(gè)子索引,創(chuàng)建指示該子 索引的尺寸和位置的、對(duì)應(yīng)的子索引描述信息。然后在步驟S402中,確定在索引庫(kù)204中是否存在不少于η個(gè)的、其對(duì)應(yīng)的子索 引描述信息所指示的尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引,并且所述預(yù)定基準(zhǔn) 與預(yù)定子索引的尺寸相關(guān)。接著在步驟S403中,根據(jù)所述不少于η個(gè)的、其對(duì)應(yīng)的子索引描述信息所指示的 尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引所對(duì)應(yīng)的子索引描述信息,創(chuàng)建指示所述 子索引集中包括的每個(gè)子索引的尺寸和位置的子索引集描述信息。然后在步驟S404中,根據(jù)步驟S403中創(chuàng)建的子索引集描述信息,計(jì)算如果對(duì)所述 子索引集中的子索引進(jìn)行合并將會(huì)獲得的新子索引的尺寸。此時(shí),并不真正對(duì)所述子索引 集中的子索引進(jìn)行合并。隨后在步驟S405中,在所述索引庫(kù)中剩余的子索引中查找不少于m個(gè)的、尺寸符 合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,如果找到則執(zhí)行步驟 S406,如果未找到則執(zhí)行步驟S407。在步驟S406中,根據(jù)所找到的子索引中的每個(gè)子索引所對(duì)應(yīng)的子索引描述信息, 更新所述子索引集描述信息,然后根據(jù)所述子索引集描述信息來(lái)重新執(zhí)行步驟S404和步 驟 S405。在步驟S407中,根據(jù)所述子索引集描述信息,對(duì)對(duì)應(yīng)的子索引進(jìn)行合并。此時(shí)才 真正對(duì)最終的子索引集中的子索引進(jìn)行合并操作。雖然以上結(jié)合圖4所示的流程圖對(duì)根據(jù)本發(fā)明的索引合并方法進(jìn)行了描述,但是 本領(lǐng)域技術(shù)人員同樣應(yīng)當(dāng)理解,圖4所示的流程圖僅僅是示例性的,而不是對(duì)本發(fā)明的范 圍的限制,本領(lǐng)域技術(shù)人員完全可以根據(jù)實(shí)際需要對(duì)圖4所示的流程圖進(jìn)行修改。例如,本 領(lǐng)域的技術(shù)人員可以根據(jù)實(shí)際應(yīng)用的需求來(lái)設(shè)定所述子索引描述信息和/或所述子索引 集描述信息所包括的內(nèi)容。另外,在圖3所示的步驟S306和/或圖4所示的步驟S407中對(duì)所述子索引集中 的子索引執(zhí)行合并操作時(shí),顯然可以根據(jù)實(shí)際情況和需要使用任何已知的具體的索引合并 操作方法,因此,為了說(shuō)明書(shū)的簡(jiǎn)潔起見(jiàn),在此就不再對(duì)上述步驟的具體處理過(guò)程進(jìn)行描述 了。下面將結(jié)合表1-8和圖5-8來(lái)舉例說(shuō)明根據(jù)本發(fā)明的實(shí)施例的子索引合并的過(guò) 程。在表1-8和圖5-8中示出了如上文所述地根據(jù)公式(1)和(2)來(lái)選擇子索引集的四個(gè) 示例。在這四個(gè)示例中均預(yù)設(shè)k = 0. 3,η = 3,m = 2。< 示例一 >在第一個(gè)示例中,如表1所示,索引庫(kù)中包括4個(gè)依次編號(hào)的子索引,其尺寸分別
表 1 從表1可以看出,索引庫(kù)中最小的子索引尺寸s為1。如圖5所示,可以將s = 1 作為所述基準(zhǔn)尺寸,然后可以針對(duì)每個(gè)子索引計(jì)算其尺寸是否符合公式(1),并判斷所有符 合公式(1)的子索引的總的個(gè)數(shù)是否符合公式(2)。由表1可以看出符合公式(1)的子索 引為子索引1、子索引2和子索引3,其總個(gè)數(shù)為3,符合公式(2)。因此,將這些子索引確定 為子索引集{子索引1,子索引2,子索引3}。如果對(duì)該子索引集中的子索引進(jìn)行合并將會(huì) 得到尺寸為3的子索引ml。但是,由于m取2,而索引庫(kù)中只剩下一個(gè)子索引4,因此不能 在子索引庫(kù)中剩余的子索引中找到不少于m個(gè)的、尺寸符合基于與子索引ml的尺寸3相關(guān) 的基準(zhǔn)的預(yù)定條件的子索引。因此,子索引ml不能與索引庫(kù)中剩余的子索引4相合并。因 此,最終的子索引集為{子索引1,子索引2,子索引3}。如表2所示,在對(duì)該最終的子索引集中的子索引進(jìn)行合并且將合并后的子索引放 入索引庫(kù)中后,索引庫(kù)中將包括尺寸為3的子索引ml和尺寸為3的子索引4。表2 < 示例二 >在第二個(gè)示例中,如表3所示,索引庫(kù)中包括5個(gè)依次編號(hào)的子索引,其尺寸分別 為 1、1、1、1、2。表3 從表3可以看出,索引庫(kù)中最小的子索引尺寸s為1。如圖6所示,可以將s = 1 作為所述基準(zhǔn)尺寸,然后可以針對(duì)每個(gè)子索引計(jì)算其尺寸是否符合公式(1),并判斷所有符 合公式(1)的子索引的總的個(gè)數(shù)是否符合公式(2)。由表3可以看出符合公式(1)的子索 引為子索引1、子索引2、子索引3和子索引4,其總個(gè)數(shù)為4,符合公式(2)。因此,將這些 子索引確定為子索引集{子索引1,子索引2,子索引3,子索引4}。如果對(duì)該子索引集中 的子索引進(jìn)行合并將得到尺寸為4的子索引m2。但是,由于m取2,而索引庫(kù)中只剩下一個(gè) 子索引5,因此不能在子索引庫(kù)中剩余的子索引中找到不少于m個(gè)的、尺寸符合基于與子索 引m2的尺寸3相關(guān)的基準(zhǔn)的預(yù)定條件的子索引。因此,子索引m2不能與索引庫(kù)中剩余的子索引5相合并。因此,最終的子索引集為{子索引1,子索引2,子索引3,子索引4}。如表4所示,在對(duì)該子索引集中的子索引進(jìn)行合并且將合并后的子索引放入索引 庫(kù)中后,索引庫(kù)中將包括兩個(gè)子索引,即,子索引m2和子索引5,其尺寸分別為4和2。表 4 <示例三>在第三個(gè)示例中,如表5所示,索引庫(kù)中包括5個(gè)依次編號(hào)的子索引,其尺寸分別 為 1、1、1、3、3。表 5 從表5可以看出,索引庫(kù)中最小的子索引尺寸s為1。如圖7所示,可以將s = 1 作為所述基準(zhǔn)尺寸,然后可以針對(duì)每個(gè)子索引計(jì)算其尺寸是否符合公式(1),,并判斷所有 符合公式(1)的子索引的總的個(gè)數(shù)是否符合公式(2)。由表5可以看出符合公式(1)的子 索引為子索引1、子索引2和子索引3,其總個(gè)數(shù)為3,符合公式(2)。因此,將這些子索引確 定為子索引集{子索引1,子索引2,子索引3}。如果對(duì)該子索引集中的子索引進(jìn)行合并將 會(huì)得到尺寸為3的子索引m3。在與子索引m3的尺寸3相關(guān)的基準(zhǔn)s被設(shè)定為子索引m3的 尺寸3、且基于該基準(zhǔn)s的預(yù)定條件為公式(1)的情況下,由于m取2,且索引庫(kù)中剩余的子 索引4和5的個(gè)數(shù)為2,因此索引庫(kù)中剩余的子索引4和5符合基于該基準(zhǔn)s的該預(yù)定條 件且個(gè)數(shù)滿足不少于m個(gè),因而子索引m3可以與索引庫(kù)中剩余的子索引4和5相合并。因 此,最終的子索引集將為{子索引1,子索引2,子索引3,子索引4,子索引5}。如表6所示,在對(duì)該最終的子索引集中的子索引進(jìn)行合并且將合并后的子索引放 入索引庫(kù)中后,索引庫(kù)中將包括一個(gè)子索引m4,其尺寸為9。表 6 〈示例四〉在第四個(gè)示例中,如表7所示,索引庫(kù)中包括4個(gè)依次編號(hào)的子索引,其尺寸分別 為 1、3、3、30表 7 從表7可以看出,索引庫(kù)中最小的子索引尺寸s為1。如圖8所示,可以將s = 1 作為所述基準(zhǔn)尺寸,然后可以針對(duì)每個(gè)子索引計(jì)算其尺寸是否符合公式(1),并判斷所有符 合公式(1)的子索引的總的個(gè)數(shù)是否符合公式(2)。由表7可以看出符合公式(1)的子索 引為子索引1,但是其總個(gè)數(shù)為1,不符合公式(2)。因此,重新從索引庫(kù)中剩余的子索引中 選擇最小的子索引尺寸s = 3作為基準(zhǔn)尺寸,然后針對(duì)索引庫(kù)中剩余的每個(gè)子索引計(jì)算其 尺寸是否符合公式(1),并判斷所有符合公式(1)的子索引的總的個(gè)數(shù)是否符合公式(2)。 由表7可以看出索引庫(kù)中剩余的子索引中符合公式(1)的子索引為子索引2、子索引3和 子索引4,其總個(gè)數(shù)為3,符合公式(2)。因此,將這些子索引確定為子索引集{子索引2, 子索引3,子索引4}。如果對(duì)該子索引集中的子索引進(jìn)行合并將會(huì)得到尺寸為3的子索引 m5,并且由于m取2,因此子索引m5不能與索引庫(kù)中剩余的子索引1相合并。因此,最終的 子索引集為{子索引2,子索引3,子索引4}。如表8所示,在對(duì)該子索引集中的子索引進(jìn)行合并且將合并后的子索引放入索引 庫(kù)中后,索引庫(kù)中將包括兩個(gè)子索引,即,子索引m5和子索引1,其尺寸分別為9和1。表 8 雖然以上結(jié)合表1-8描述了根據(jù)本發(fā)明的實(shí)施例的、利用公式(1)和(2)的索引 合并的過(guò)程,但是,對(duì)于本領(lǐng)域技術(shù)人員而言,顯然完全可以依照與上述示例相類(lèi)似的方 式,根據(jù)實(shí)際系統(tǒng)的需要來(lái)設(shè)定公式(1)和/或公式(2)和/或其系數(shù),以及決定是否應(yīng)用 公式(1)和/或公式(2),從而實(shí)現(xiàn)在動(dòng)態(tài)文本集環(huán)境下對(duì)索引合并過(guò)程的動(dòng)態(tài)調(diào)節(jié)。上述根據(jù)本發(fā)明的實(shí)施例的索引合并方法是由圖2中的索引合并裝置203來(lái)完成 的。圖9示出了根據(jù)本發(fā)明的實(shí)施例的索引合并裝置的結(jié)構(gòu)示意圖。圖9所示的索引合并裝置包括確定單元901,該確定單元901被配置用于確定在 索引庫(kù)中是否存在不少于η個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引,其中η 為整數(shù)且η大于等于2,并且所述預(yù)定基準(zhǔn)與預(yù)定子索引的尺寸相關(guān),以及在確定索引庫(kù)中 存在不少于η個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引的情況下,將所確定 的子索引作為子索引集。圖9所示的索引合并裝置還包括合并控制單元902,該合并控制單元902被配置 用于計(jì)算如果對(duì)所述子索引集中的子索引進(jìn)行合并將會(huì)獲得的新子索引的尺寸;在所述 索引庫(kù)中剩余的子索引中查找不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相 關(guān)的基準(zhǔn)的預(yù)定條件的子索引,其中m為整數(shù)且m大于等于1 ;如果在所述索引庫(kù)中剩余的 子索引中找到了不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù) 定條件的子索引,則將所找到的子索引加入所述子索引集中,然后對(duì)新的子索引集執(zhí)行所述計(jì)算的操作和所述查找的操作;如果在所述索引庫(kù)中剩余的子索引中未找到不少于m個(gè) 的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則輸出指 示對(duì)所述子索引集中的子索引進(jìn)行合并的信息。圖9所示的索引合并裝置還包括合并單元903,該合并單元903被配置用于對(duì)合并 控制單元902輸出的信息所指示的子索引集中的子索引進(jìn)行合并。優(yōu)選地,確定單元901可以以預(yù)定的時(shí)間間隔定期地或者在索引庫(kù)中新加入至少 一個(gè)子索引時(shí)開(kāi)始執(zhí)行所述確定的操作。所述預(yù)定基準(zhǔn)可以是所述預(yù)定子索引的尺寸,所 述預(yù)定子索引可以是具有預(yù)先設(shè)定的尺寸的子索引,也可以是索引庫(kù)中的某個(gè)尺寸的子索 弓丨,例如最小尺寸的子索引。所述預(yù)定合并條件可以為子索引尺寸在所述預(yù)定基準(zhǔn)的1-k 倍到所述預(yù)定基準(zhǔn)的Ι+k倍的范圍之內(nèi),其中0 < k < 1。優(yōu)選地,η可以在10到15的范 圍之內(nèi),η可以等于m+1。優(yōu)選地,所述與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)可以是所述新子索引的尺 寸。相應(yīng)地,合并控制單元902被配置用于計(jì)算如果對(duì)所述子索引集中的子索引進(jìn)行合并 將會(huì)獲得的新子索引的尺寸;在所述索引庫(kù)中剩余的子索引中查找尺寸在所述新子索引的 尺寸的Ι-k倍到所述新子索引的尺寸的Ι+k倍的范圍之內(nèi)的子索引,其中0 < k < 1 ;如果 在所述索引庫(kù)中剩余的子索引中找到了不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引 的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則將所找到的子索引加入所述子索引集中,然后 對(duì)更新后的子索引集執(zhí)行所述計(jì)算的操作和所述查找的操作;如果在所述索引庫(kù)中剩余的 子索引中未找到不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù) 定條件的子索引,則輸出指示對(duì)所述子索引集中的子索引進(jìn)行合并的信息。優(yōu)選地,確定單元901還可被配置用于在確定了索引庫(kù)中不存在不少于η個(gè)的、 尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引的情況下,判定在所述索引庫(kù)中是否存在 不少于η個(gè)的、尺寸符合基于與已使用過(guò)的基準(zhǔn)不相同的基準(zhǔn)的合并條件的子索引;如果 存在,則將所判定的子索引作為子索引集;如果不存在,則重新執(zhí)行所述判定的操作。其中, 所述與已使用過(guò)的基準(zhǔn)不相同的基準(zhǔn)可以為所述索引庫(kù)中的、尺寸與和已使用過(guò)的基準(zhǔn) 相關(guān)的尺寸不相同的子索引的尺寸。優(yōu)選地,所述索引合并裝置還可包括子索引描述信息創(chuàng)建單元,該子索引描述信 息創(chuàng)建單元被配置用于在確定單元901執(zhí)行所述確定的操作之前,針對(duì)所述索引庫(kù)中的每 個(gè)子索引,創(chuàng)建指示該子索引的尺寸和位置的、對(duì)應(yīng)的子索引描述信息。相應(yīng)地,確定單元 901被配置用于確定在索引庫(kù)中是否存在不少于η個(gè)的、其對(duì)應(yīng)的子索引描述信息所指示 的尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引,并且所述預(yù)定基準(zhǔn)與預(yù)定子索引的尺 寸相關(guān);根據(jù)所述不少于η個(gè)的、其對(duì)應(yīng)的子索引描述信息所指示的尺寸符合基于預(yù)定基 準(zhǔn)的預(yù)定合并條件的子索引所對(duì)應(yīng)的子索引描述信息,創(chuàng)建指示所述子索引集中包括的每 個(gè)子索引的尺寸和位置的子索引集描述信息。合并控制單元902被配置用于根據(jù)所述子 索引集描述信息,計(jì)算如果對(duì)所述子索引集中的子索引進(jìn)行合并將會(huì)獲得的新子索引的尺 寸;在所述索引庫(kù)中剩余的子索引中查找不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索 引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引;如果在所述索引庫(kù)中剩余的子索引中找到了不 少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引, 則根據(jù)所找到的子索引中的每個(gè)子索引對(duì)應(yīng)的子索引描述信息,更新所述子索引集描述信息,然后根據(jù)更新后的子索引集描述信息而對(duì)所述子索引集執(zhí)行所述計(jì)算的操作和所述查 找的操作;如果在所述索引庫(kù)中剩余的子索引中未找到不少于m個(gè)的、尺寸符合基于與所 計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則輸出所述子索引集描述信息。 合并單元903被配置用于根據(jù)合并控制單元902輸出的子索引集描述信息,對(duì)對(duì)應(yīng)的子索 引進(jìn)行合并。通過(guò)閱讀上文所描述的根據(jù)本發(fā)明的實(shí)施例的索引合并方法的操作過(guò)程,圖9所 示的索引合并裝置的上述各個(gè)部件的功能如何實(shí)現(xiàn)就變得非常清楚了,因此,為了說(shuō)明書(shū) 的簡(jiǎn)潔起見(jiàn),在此就不再對(duì)上述各個(gè)部件的功能如何實(shí)現(xiàn)進(jìn)行詳細(xì)描述了。在以上所描述的、根據(jù)本發(fā)明實(shí)施例的索引合并方法和/或索引合并裝置中,通 過(guò)在所選擇的要進(jìn)行合并的子索引集還能夠與索引庫(kù)中剩余的子索引進(jìn)行合并的情況下 將可以進(jìn)行合并的子索引加入該子索引集中,并且只在索引庫(kù)中剩余的子索引中不存在能 夠合并的子索引的情況下才真正地對(duì)子索引集執(zhí)行合并操作,從而能夠根據(jù)索引庫(kù)中實(shí)時(shí) 存在的子索引的情況而動(dòng)態(tài)地調(diào)節(jié)對(duì)子索引的合并操作,使得每次合并操作對(duì)盡可能多的 子索引進(jìn)行合并,減少了合并次數(shù)和對(duì)索引的讀寫(xiě)次數(shù)。因此,通過(guò)對(duì)索引合并過(guò)程的所述 動(dòng)態(tài)調(diào)節(jié),能夠在動(dòng)態(tài)文檔集環(huán)境下大大降低索引合并的性能代價(jià),獲得較為穩(wěn)定的優(yōu)化 的系統(tǒng)性能,同時(shí)也實(shí)現(xiàn)了索引合并與索引檢索之間的更好的平衡,有利于改善索引檢索 的性能。此外,在以上所描述的、根據(jù)本發(fā)明實(shí)施例的索引合并方法和/或索引合并裝置 中,通過(guò)根據(jù)影響索引合并效率的主要因素,即,索引尺寸來(lái)選擇要進(jìn)行合并的子索引,可 以大大降低索引尺寸對(duì)索引合并代價(jià)的影響,從而進(jìn)一步改善了索引合并的性能,同時(shí)也 實(shí)現(xiàn)了索引合并與索引檢索之間的更好的平衡,有利于改善索引檢索的性能。另外,在以上所描述的、根據(jù)本發(fā)明實(shí)施例的索引合并方法和/或索引合并裝置 中,通過(guò)根據(jù)本發(fā)明實(shí)施例的索引合并方法和/或索引合并裝置對(duì)索引合并過(guò)程的所述動(dòng) 態(tài)調(diào)節(jié),能夠在動(dòng)態(tài)文檔集環(huán)境下增強(qiáng)系統(tǒng)的規(guī)模可擴(kuò)展性。此外,顯然,根據(jù)本發(fā)明的上述方法的各個(gè)操作過(guò)程也可以以存儲(chǔ)在各種機(jī)器可 讀的存儲(chǔ)介質(zhì)中的計(jì)算機(jī)可執(zhí)行程序的方式實(shí)現(xiàn)。而且,本發(fā)明的目的也可以通過(guò)下述方式實(shí)現(xiàn)將存儲(chǔ)有上述可執(zhí)行程序代碼的 存儲(chǔ)介質(zhì)直接或者間接地提供給系統(tǒng)或設(shè)備,并且該系統(tǒng)或設(shè)備中的計(jì)算機(jī)或者中央處理 單元(CPU)讀出并執(zhí)行上述程序代碼。此時(shí),只要該系統(tǒng)或者設(shè)備具有執(zhí)行程序的功能,則本發(fā)明的實(shí)施方式不局限于 程序,并且該程序也可以是任意的形式,例如,目標(biāo)程序、解釋器執(zhí)行的程序或者提供給操 作系統(tǒng)的腳本程序等。上述這些機(jī)器可讀存儲(chǔ)介質(zhì)包括但不限于各種存儲(chǔ)器和存儲(chǔ)單元,半導(dǎo)體設(shè)備, 磁盤(pán)單元例如光、磁和磁光盤(pán),以及其它適于存儲(chǔ)信息的介質(zhì)等。另外,計(jì)算機(jī)通過(guò)連接到因特網(wǎng)上的相應(yīng)網(wǎng)站,并且將依據(jù)本發(fā)明的計(jì)算機(jī)程序 代碼下載和安裝到計(jì)算機(jī)中然后執(zhí)行該程序,也可以實(shí)現(xiàn)本發(fā)明。而且,所述實(shí)施本發(fā)明的程序也可以例如采用一個(gè)或多個(gè)信號(hào)的形式。所述信號(hào) 可以是可從互聯(lián)網(wǎng)站點(diǎn)下載的數(shù)據(jù)信號(hào),或是在載波信號(hào)上提供的數(shù)據(jù)信號(hào),或是以任何 其它形式的數(shù)據(jù)信號(hào)。
最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類(lèi)的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將 一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作 之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體 意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括 那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或
者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)......”限定的要素,
并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。以上雖然結(jié)合附圖詳細(xì)描述了本發(fā)明的實(shí)施例,但是應(yīng)當(dāng)明白,上面所描述的實(shí) 施方式只是用于說(shuō)明本發(fā)明,而并不構(gòu)成對(duì)本發(fā)明的限制。對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),可 以在不偏離本發(fā)明的精神和范圍的情況下對(duì)上述實(shí)施方式作出各種修改和變更。因此,本 發(fā)明的范圍僅由所附的權(quán)利要求及其等效內(nèi)容來(lái)限定。
權(quán)利要求
一種索引合并方法,包括以下步驟確定在索引庫(kù)中是否存在不少于n個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引,其中n為整數(shù)且n大于等于2,并且所述預(yù)定基準(zhǔn)與預(yù)定子索引的尺寸相關(guān);在確定索引庫(kù)中存在不少于n個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引的情況下,將所確定的子索引作為子索引集;計(jì)算如果對(duì)所述子索引集中的子索引進(jìn)行合并將會(huì)獲得的新子索引的尺寸;在所述索引庫(kù)中剩余的子索引中查找不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,其中m為整數(shù)且m大于等于1;如果在所述索引庫(kù)中剩余的子索引中找到了不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則將所找到的子索引加入所述子索引集中,然后對(duì)新的子索引集執(zhí)行所述計(jì)算的步驟和所述查找的步驟;以及如果在所述索引庫(kù)中剩余的子索引中未找到不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則對(duì)所述子索引集中的子索引進(jìn)行合并。
2.如權(quán)利要求1所述的索引合并方法,其中以預(yù)定的時(shí)間間隔定期地或者在所述索引 庫(kù)中新加入至少一個(gè)子索引時(shí),開(kāi)始執(zhí)行所述確定的步驟。
3.如權(quán)利要求1所述的索引合并方法,其中所述預(yù)定基準(zhǔn)是所述預(yù)定子索引的尺寸, 所述預(yù)定子索引是索引庫(kù)中的尺寸最小的子索引。
4.如權(quán)利要求3所述的索引合并方法,其中所述預(yù)定合并條件為子索引尺寸在所述預(yù) 定基準(zhǔn)的l_k倍到所述預(yù)定基準(zhǔn)的1+k倍的范圍之內(nèi),其中0 < k < 1。
5.如權(quán)利要求1所述的索引合并方法,其中所述n在10到15的范圍之內(nèi)。
6.如權(quán)利要求1所述的索引合并方法,其中n= m+1。
7.如權(quán)利要求1所述的索引合并方法,其中所述與所計(jì)算的新子索引的尺寸相關(guān)的基 準(zhǔn)是所述新子索引的尺寸。
8.如權(quán)利要求7所述的索引合并方法,其中所述在所述索引庫(kù)中剩余的子索引中查找 不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引 的步驟包括在所述索引庫(kù)中剩余的子索引中查找不少于m個(gè)的、尺寸在所述新子索引的尺寸的 l_k倍到所述新子索引的尺寸的1+k倍的范圍之內(nèi)的子索引,其中0 < k < 1。
9.如權(quán)利要求1所述的索引合并方法,其中在所述確定的步驟中確定了索引庫(kù)中不存 在不少于n個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引的情況下,還包括以下 步驟判定在所述索引庫(kù)中是否存在不少于n個(gè)的、尺寸符合基于與已使用過(guò)的基準(zhǔn)不相同 的基準(zhǔn)的合并條件的子索引;如果存在,則將所判定的子索引作為子索引集,并對(duì)所述子索引集執(zhí)行所述計(jì)算的步 驟和所述查找的步驟;以及如果不存在,則重新執(zhí)行所述判定的步驟。
10.如權(quán)利要求9所述的索引合并方法,其中所述與已使用過(guò)的基準(zhǔn)不相同的基準(zhǔn)為 所述索引庫(kù)中的、尺寸與和已使用過(guò)的基準(zhǔn)相關(guān)的尺寸不相同的子索引的尺寸。
11.如權(quán)利要求1所述的索引合并方法,其中在所述確定的步驟之前還包括針對(duì)所述索引庫(kù)中的每個(gè)子索引,創(chuàng)建指示該子索引 的尺寸和位置的、對(duì)應(yīng)的子索引描述信息;所述確定的步驟包括確定在索引庫(kù)中是否存在不少于n個(gè)的、其對(duì)應(yīng)的子索引描述 信息所指示的尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引,并且所述預(yù)定基準(zhǔn)與所述 索引庫(kù)中的預(yù)定子索引的尺寸相關(guān);所述將所確定的子索引作為子索引集的步驟包括根據(jù)所述不少于n個(gè)的、其對(duì)應(yīng)的 子索引描述信息所指示的尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引所對(duì)應(yīng)的子索 引描述信息,創(chuàng)建指示所述子索引集中包括的每個(gè)子索引的尺寸和位置的子索引集描述信 息;所述計(jì)算的步驟包括根據(jù)所述子索引集描述信息,計(jì)算如果對(duì)所述子索引集中的子 索引進(jìn)行合并將會(huì)獲得的新子索引的尺寸;所述將所找到的子索引加入所述子索引集中的步驟包括根據(jù)所找到的子索引中的每 個(gè)子索引所對(duì)應(yīng)的子索引描述信息,更新所述子索引集描述信息;以及所述對(duì)所述子索引集中的子索引進(jìn)行合并的步驟包括根據(jù)所述子索引集描述信息, 對(duì)對(duì)應(yīng)的子索引進(jìn)行合并。
12.一種索引合并裝置,包括確定單元,被配置用于確定在索引庫(kù)中是否存在不少于n個(gè)的、尺寸符合基于預(yù)定基 準(zhǔn)的預(yù)定合并條件的子索引,其中n為整數(shù)且n大于等于2,并且所述預(yù)定基準(zhǔn)與預(yù)定子索 引的尺寸相關(guān),以及在確定索引庫(kù)中存在不少于n個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合 并條件的子索引的情況下,將所確定的子索引作為子索引集;合并控制單元,被配置用于計(jì)算如果對(duì)所述子索引集中的子索引進(jìn)行合并將會(huì)獲得 的新子索引的尺寸;在所述索引庫(kù)中剩余的子索引中查找不少于m個(gè)的、尺寸符合基于與 所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,其中m為整數(shù)且m大于等于1 ; 如果在所述索引庫(kù)中剩余的子索引中找到了不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子 索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則將所找到的子索引加入所述子索引集中, 然后對(duì)新的子索引集執(zhí)行所述計(jì)算的操作和所述查找的操作;如果在所述索引庫(kù)中剩余的 子索引中未找到不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù) 定條件的子索引,則輸出指示對(duì)所述子索引集中的子索引進(jìn)行合并的信息;以及合并單元,被配置用于對(duì)所述合并控制單元輸出的信息所指示的子索引集中的子索引 進(jìn)行合并。
13.如權(quán)利要求12所述的索引合并裝置,其中所述確定單元以預(yù)定的時(shí)間間隔定期地 或者在所述索引庫(kù)中新加入至少一個(gè)子索引時(shí)開(kāi)始執(zhí)行所述確定的操作。
14.如權(quán)利要求12所述的索引合并裝置,其中所述預(yù)定基準(zhǔn)是所述預(yù)定子索引的尺 寸,所述預(yù)定子索引是索引庫(kù)中的尺寸最小的子索引。
15.如權(quán)利要求14所述的索引合并裝置,其中所述預(yù)定合并條件為子索引尺寸在所述 預(yù)定基準(zhǔn)的l_k倍到所述預(yù)定基準(zhǔn)的1+k倍的范圍之內(nèi),其中0 < k < 1。
16.如權(quán)利要求1所述的索引合并裝置,其中n= m+1。
17.如權(quán)利要求1所述的索引合并裝置,其中所述與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)是所述新子索引的尺寸。
18.如權(quán)利要求17所述的索引合并裝置,其中所述合并控制單元被配置用于計(jì)算如 果對(duì)所述子索引集中的子索引進(jìn)行合并將會(huì)獲得的新子索引的尺寸;在所述索引庫(kù)中剩余 的子索引中查找尺寸在所述新子索引的尺寸的l_k倍到所述新子索引的尺寸的1+k倍的范 圍之內(nèi)的子索弓丨,其中0 < k < 1 ;如果在所述索引庫(kù)中剩余的子索引中找到了不少于m個(gè) 的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則將所找 到的子索引加入所述子索引集中,然后對(duì)新的子索引集執(zhí)行所述計(jì)算的操作和所述查找的 操作;如果在所述索引庫(kù)中剩余的子索引中未找到不少于m個(gè)的、尺寸符合基于與所計(jì)算 的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則輸出指示對(duì)所述子索引集中的子索 引進(jìn)行合并的信息。
19.如權(quán)利要求12所述的索引合并裝置,其中所述確定單元還被配置用于在確定了 索引庫(kù)中不存在不少于n個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引的情況 下,判定在所述索引庫(kù)中是否存在不少于n個(gè)的、尺寸符合基于與已使用過(guò)的基準(zhǔn)不相同 的基準(zhǔn)的合并條件的子索引;如果存在,則將所判定的子索引作為子索引集;如果不存在, 則重新執(zhí)行所述判定的操作。
20.如權(quán)利要求19所述的索引合并裝置,其中所述與已使用過(guò)的基準(zhǔn)不相同的基準(zhǔn) 為所述索引庫(kù)中的、尺寸與和已使用過(guò)的基準(zhǔn)相關(guān)的尺寸不相同的子索引的尺寸。
21.如權(quán)利要求12所述的索引合并裝置,其中還包括子索引描述信息創(chuàng)建單元,被配 置用于在所述確定單元執(zhí)行所述確定的操作之前,針對(duì)所述索引庫(kù)中的每個(gè)子索引,創(chuàng)建 指示該子索引的尺寸和位置的、對(duì)應(yīng)的子索引描述信息;所述確定單元被配置用于確定在索引庫(kù)中是否存在不少于n個(gè)的、其對(duì)應(yīng)的子索引 描述信息所指示的尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引,并且所述預(yù)定基準(zhǔn)與 預(yù)定子索引的尺寸相關(guān);根據(jù)所述不少于n個(gè)的、其對(duì)應(yīng)的子索引描述信息所指示的尺寸 符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引所對(duì)應(yīng)的子索引描述信息,創(chuàng)建指示所述子索 引集中包括的每個(gè)子索引的尺寸和位置的子索引集描述信息;所述合并控制單元被配置用于根據(jù)所述子索引集描述信息,計(jì)算如果對(duì)所述子索引 集中的子索引進(jìn)行合并將會(huì)獲得的新子索引的尺寸;在所述索引庫(kù)中剩余的子索引中查 找不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索 引;如果在所述索引庫(kù)中剩余的子索引中找到了不少于m個(gè)的、尺寸符合基于與所計(jì)算的 新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,則根據(jù)所找到的子索引中的每個(gè)子索引 對(duì)應(yīng)的子索引描述信息,更新所述子索引集描述信息,然后根據(jù)更新后的子索引集描述信 息而對(duì)所述子索引集執(zhí)行所述計(jì)算的操作和所述查找的操作;如果在所述索引庫(kù)中剩余的 子索引中未找到不少于m個(gè)的、尺寸符合基于與所計(jì)算的新子索引的尺寸相關(guān)的基準(zhǔn)的預(yù) 定條件的子索引,則輸出所述子索引集描述信息;以及所述合并單元被配置用于根據(jù)所述合并控制單元輸出的子索引集描述信息,對(duì)對(duì)應(yīng) 的子索引進(jìn)行合并。
全文摘要
公開(kāi)了索引合并方法及裝置。索引合并方法包括確定索引庫(kù)中是否存在不少于n個(gè)的、尺寸符合基于預(yù)定基準(zhǔn)的預(yù)定合并條件的子索引,n為整數(shù)且大于等于2,預(yù)定基準(zhǔn)與預(yù)定子索引的尺寸相關(guān);如果確定存在則將確定的子索引作為子索引集;計(jì)算如果合并子索引集中的子索引將獲得的新子索引的尺寸;在剩余的子索引中查找不少于m個(gè)的、尺寸符合基于與新子索引尺寸相關(guān)的基準(zhǔn)的預(yù)定條件的子索引,m為整數(shù)且大于等于1;如果找到了則將找到的子索引加入子索引集中并對(duì)新的子索引集執(zhí)行計(jì)算步驟和查找步驟;如果未找到則對(duì)子索引集中的子索引進(jìn)行合并。利用根據(jù)本發(fā)明的方法和/或裝置,能夠在動(dòng)態(tài)文本集環(huán)境下獲得較穩(wěn)定的優(yōu)化的系統(tǒng)性能。
文檔編號(hào)G06F17/30GK101882142SQ20091014042
公開(kāi)日2010年11月10日 申請(qǐng)日期2009年5月8日 優(yōu)先權(quán)日2009年5月8日
發(fā)明者于浩, 孟遙, 王主龍, 葛付江 申請(qǐng)人:富士通株式會(huì)社