国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于記號(hào)空間資料庫的多級(jí)查詢處理系統(tǒng)與方法

      文檔序號(hào):6423965閱讀:162來源:國(guó)知局
      專利名稱:用于記號(hào)空間資料庫的多級(jí)查詢處理系統(tǒng)與方法
      技術(shù)領(lǐng)域
      總體上講,所公開的實(shí)施例涉及數(shù)據(jù)處理系統(tǒng)與方法,具體地講,涉及用于具有相 關(guān)索引的文檔集合(以下,將其稱為“記號(hào)(token)空間資料庫”)的多級(jí)查詢處理系統(tǒng)與 方法。
      背景技術(shù)
      信息檢索系統(tǒng)(例如,搜索引擎)使得查詢與根據(jù)文檔集(例如萬維網(wǎng))所生成 的文檔的索引相匹配。典型的逆索引(inverse index)包括每個(gè)文檔中的單詞,以及指向 它們?cè)谖臋n中的部位的指針。文檔處理系統(tǒng)通過使用自動(dòng)的或手動(dòng)進(jìn)程處理從文檔集所檢 索到的文檔、頁或地址的內(nèi)容,來制備倒排索引(inverted index)。文檔處理系統(tǒng)還可以把 文檔的內(nèi)容或內(nèi)容的各部分存儲(chǔ)在資料庫中,以供查詢處理器在響應(yīng)查詢時(shí)使用。一直存在著對(duì)更復(fù)雜的搜索和記分技術(shù)(scoring technique)的需求,以確保查 詢結(jié)果與查詢相關(guān)聯(lián)。某些記分技術(shù)可能要求對(duì)候選文檔進(jìn)行部分重構(gòu),例如確定文檔中 所發(fā)現(xiàn)的查詢項(xiàng)或關(guān)鍵字的上下文。令人感到遺憾的是,引入這樣復(fù)雜的技術(shù)可能會(huì)由于 所涉及的額外的處理和開銷而導(dǎo)致搜索性能的降低。

      發(fā)明內(nèi)容
      所公開的實(shí)施例包括與一種用于記號(hào)空間資料庫的多級(jí)查詢處理系統(tǒng)與方法。所 述多級(jí)查詢處理系統(tǒng)與方法通過由多層映射方案所簡(jiǎn)化的遞增文檔重構(gòu)而能夠多級(jí)查詢 記分,包括“片段(snippet)”生成。在多級(jí)查詢處理系統(tǒng)的一或多級(jí),使用相關(guān)性得分集 合,選擇作文檔子集作為有序列表呈現(xiàn)給用戶。該相關(guān)性得分集合可以部分地從所述多級(jí) 查詢處理系統(tǒng)的先前級(jí)中所確定的一個(gè)或多個(gè)相關(guān)性得分集合中導(dǎo)出。在某些實(shí)施例中, 多級(jí)查詢處理系統(tǒng)能夠?qū)τ脩舨樵儓?zhí)行一或多遍,并且能夠使用來自每個(gè)遍的信息,擴(kuò)展 用于后一遍中的用戶查詢,以改進(jìn)有序列表中的文檔的相關(guān)性。具體來講,根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于在多級(jí)查詢處理系統(tǒng)中處理 查詢的方法,所述系統(tǒng)具有一個(gè)或多個(gè)處理器以及用于存儲(chǔ)一個(gè)或多個(gè)程序的存儲(chǔ)器,所述一個(gè)或多個(gè)程序由所述一個(gè)或多個(gè)處理器運(yùn)行以執(zhí)行所述方法,所述方法包括由所述 一個(gè)或多個(gè)處理器執(zhí)行查詢的第一級(jí)處理,包括響應(yīng)于一個(gè)或多個(gè)查詢項(xiàng),由所述一個(gè)或 多個(gè)處理器從索引中檢索第一文檔標(biāo)識(shí)符集合;針對(duì)相應(yīng)于第一文檔標(biāo)識(shí)符集合的至少一 個(gè)子集的第一壓縮文檔集合,基于查詢項(xiàng)的存在、項(xiàng)頻度和文檔流行性中的一個(gè)或多個(gè),由 所述一個(gè)或多個(gè)處理器生成相關(guān)性得分的第一集合,并且將相關(guān)性得分的第一集合存儲(chǔ)在 存儲(chǔ)器中;由所述一個(gè)或多個(gè)處理器執(zhí)行查詢的第二級(jí)處理,包括針對(duì)第一壓縮文檔集 合中的文檔,基于記號(hào)位置的列表、文檔中的查詢項(xiàng)之間的距離、文檔中的記號(hào)的屬性以及 出現(xiàn)在第一文檔集合的文檔中使用的查詢項(xiàng)周圍的文本中的一個(gè)或多個(gè),由所述一個(gè)或多 個(gè)處理器生成相關(guān)性得分的第二集合,并且將相關(guān)性得分的第二集合存儲(chǔ)在存儲(chǔ)器中;由 所述一個(gè)或多個(gè)處理器從存儲(chǔ)器讀取相關(guān)性得分的第一集合和第二集合,并且基于相關(guān)性 得分的第一集合和第二集合生成文檔的有序列表用于進(jìn)一步處理;由所述一個(gè)或多個(gè)處理 器從所述文檔的有序列表中的文檔自動(dòng)地生成附加查詢項(xiàng);由所述一個(gè)或多個(gè)處理器使用 所述附加查詢項(xiàng),制定新查詢;由所述一個(gè)或多個(gè)處理器處理所述新查詢,以從所述索引檢 索第二文檔標(biāo)識(shí)符集合,并且至少部分基于所述附加查詢項(xiàng)生成相關(guān)性得分的第三集合; 以及由所述一個(gè)或多個(gè)處理器使用所述相關(guān)性得分的第三集合來選擇用于呈現(xiàn)給用戶的 頂部文檔的集合。根據(jù)本發(fā)明的另一方面,提供了一種多級(jí)查詢處理系統(tǒng),包括響應(yīng)于一個(gè)或多個(gè) 查詢項(xiàng),從索引中檢索第一文檔標(biāo)識(shí)符集合的部件;針對(duì)相應(yīng)于第一文檔標(biāo)識(shí)符集合的至 少一個(gè)子集的第一壓縮文檔集合,基于查詢項(xiàng)的存在、項(xiàng)頻度和文檔流行性中的一個(gè)或多 個(gè),生成相關(guān)性得分的第一集合,并且將相關(guān)性得分的第一集合存儲(chǔ)在存儲(chǔ)器中的部件;執(zhí) 行查詢的第二級(jí)處理的部件,包括針對(duì)第一壓縮文檔集合中的文檔,基于記號(hào)位置的列 表、文檔中的查詢項(xiàng)之間的距離、文檔中的記號(hào)的屬性以及出現(xiàn)在第一文檔集合的文檔中 使用的查詢項(xiàng)周圍的文本中的一個(gè)或多個(gè),生成相關(guān)性得分的第二集合,并且將相關(guān)性得 分的第二集合存儲(chǔ)在存儲(chǔ)器中的部件;從存儲(chǔ)器讀取相關(guān)性得分的第一集合和第二集合, 并且基于相關(guān)性得分的第一集合和第二集合生成文檔的有序列表用于進(jìn)一步處理的部件; 從所述文檔的有序列表中的文檔自動(dòng)地生成附加查詢項(xiàng)的部件;使用所述附加查詢項(xiàng)制定 新查詢的部件;處理所述新查詢,以從所述索引檢索第二文檔標(biāo)識(shí)符集合,并且至少部分基 于所述附加查詢項(xiàng)生成相關(guān)性得分的第三集合的部件;以及使用所述相關(guān)性得分的第三集 合來選擇用于呈現(xiàn)給用戶的頂部文檔的集合的部件。


      圖1為信息檢索系統(tǒng)的實(shí)施例的方框圖。圖2為圖1的詞典生成器的實(shí)施例的概念性方框圖。圖3A為用于記號(hào)空間資料庫的、對(duì)文檔進(jìn)行編碼的編碼系統(tǒng)的實(shí)施例的方框圖。圖;3B為用于記號(hào)空間資料庫中的、對(duì)文檔進(jìn)行解碼的解碼系統(tǒng)的實(shí)施例的方框 圖。圖3C為用于對(duì)文檔屬性進(jìn)行編碼/解碼的屬性編碼/解碼系統(tǒng)的實(shí)施例的方框 圖。圖4為用于記號(hào)空間資料庫的查詢處理系統(tǒng)的實(shí)施例的方框圖。
      圖5為用于記號(hào)空間資料庫的多級(jí)查詢處理系統(tǒng)的實(shí)施例的方框圖。圖6為記號(hào)空間資料庫服務(wù)器的實(shí)施例的方框圖。圖7為查詢處理服務(wù)器的實(shí)施例的方框圖。圖8A為記號(hào)化文檔資料庫的第二實(shí)施例的方框圖;以及圖8B為圖1的詞典生成 器的第二實(shí)施例的概念方框圖。圖9A為用于詞典生成器的實(shí)施例中的編碼進(jìn)程的概念圖,以及圖9B描述了用于 表示編碼的記號(hào)的示例性數(shù)據(jù)結(jié)構(gòu)。 在這些圖中的多個(gè)圖中,相同的參照標(biāo)記指示相應(yīng)的部分。
      具體實(shí)施例方式系統(tǒng)概述圖1為信息檢索系統(tǒng)100的實(shí)施例的方框圖。信息檢索系統(tǒng)100包括文檔處理系 統(tǒng)102和查詢處理系統(tǒng)104。信息檢索系統(tǒng)100可以為任何一種能夠響應(yīng)查詢而檢索信息 (例如,文件、電子郵件、應(yīng)用程序等)的系統(tǒng),包括但不局限于,用于在諸如Internet (例 如,經(jīng)由萬維網(wǎng))或者內(nèi)部網(wǎng)antranet)的一個(gè)或多個(gè)網(wǎng)絡(luò)上或在本地的用戶的計(jì)算機(jī)上 執(zhí)行明確的或隱含的文檔搜索的一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)。注意,項(xiàng)“文檔”意指文檔、網(wǎng)頁、 電子郵件、專用(application specific)文檔和數(shù)據(jù)結(jié)構(gòu)、即時(shí)消息處理(IM)消息、音頻 文件、視頻文件、以及可以駐留在一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)上的任何其它數(shù)據(jù)或應(yīng)用程序。文檔處理系統(tǒng)文檔處理系統(tǒng)102通常包括一個(gè)或多個(gè)文檔資料庫106、詞典生成器108、編碼/ 解碼系統(tǒng)110以及記號(hào)空間資料庫112。編碼/解碼系統(tǒng)110從一個(gè)或多個(gè)文檔資料庫106 中檢索文檔,將文檔解析為記號(hào),使用來自詞典生成器108的映射,把記號(hào)編碼為一種壓縮 的格式,然后把編碼的記號(hào)存儲(chǔ)在記號(hào)空間資料庫112中?!坝浱?hào)”可以為通常在文檔中所發(fā)現(xiàn)的任何對(duì)象,包括但不局限于,項(xiàng)、短語、標(biāo)點(diǎn)、 HTML標(biāo)簽等。在解析之后,文檔的集合表示為記號(hào)序列。而且,該記號(hào)序列中的每個(gè)記號(hào)都 具有記號(hào)位置,該記號(hào)位置也代表該記號(hào)在文檔集合中的位置。例如,該文檔集合中的第一 個(gè)記號(hào)可以被賦予位置0,該文檔集合中的第二個(gè)記號(hào)可以被賦予位置1,等等。需要注意的是,在某些實(shí)施方式中,采用與用于對(duì)文檔進(jìn)行解碼的計(jì)算機(jī)完全不 同的計(jì)算機(jī)集合來對(duì)文檔進(jìn)行編碼。例如,網(wǎng)蠕動(dòng)(crawling)系統(tǒng)可以包括對(duì)文檔進(jìn)行編 碼的文檔處理系統(tǒng)102,而查詢處理系統(tǒng)104可以對(duì)編碼文檔的所選擇部分進(jìn)行解碼。在這 樣的實(shí)施方式中,由文檔處理系統(tǒng)102所編制的文檔逆索引和記號(hào)空間資料庫112或其拷 貝,由查詢處理系統(tǒng)104使用。詞典生成器108通過對(duì)文檔進(jìn)行解析,生成用于對(duì)文檔集合進(jìn)行編碼的映射 (mapping)。此處,把詞典生成器108所產(chǎn)生的第一映射稱為全局詞典,全局詞典標(biāo)識(shí)文檔 集合中的所有不同的記號(hào)(此處,稱為唯一記號(hào)),并且把全局記號(hào)標(biāo)識(shí)符賦予每個(gè)唯一記 號(hào)。由詞典生成器108所產(chǎn)生的第二映射實(shí)際上為映射的序列,此處,將其中的每個(gè)映射稱 為小詞典。每個(gè)相應(yīng)的小詞典僅用于對(duì)文檔集合中位置的相應(yīng)范圍進(jìn)行編碼和解碼。以下 將更詳細(xì)地解釋全局詞典和小詞典的生成和使用。查詢處理系統(tǒng)
      查詢處理系統(tǒng)104包括耦接于編碼/解碼系統(tǒng)110的一個(gè)或多個(gè)查詢處理器114 以及記號(hào)空間逆索引116。記號(hào)空間逆索引116把文檔集合中的所有GTokenID映射到它們 在文檔中的位置。從概念上講,逆索引116包括針對(duì)每個(gè)GTokenID的記號(hào)位置的列表。為 有效起見,對(duì)每個(gè)GTokenID的記號(hào)位置的列表進(jìn)行編碼,以減小逆索引所占空間量。
      在某些實(shí)施例中,一個(gè)或多個(gè)查詢處理器114把一個(gè)查詢進(jìn)行解析為多個(gè)查詢項(xiàng) (terms),這些查詢項(xiàng)被一個(gè)或多個(gè)查詢處理器114變換成查詢表達(dá)式(例如,布爾樹表達(dá) 式)。使用查詢項(xiàng)對(duì)記號(hào)空間逆索引116編索引,以檢索記號(hào)位置,以下將參照?qǐng)D4更全面地 對(duì)此加以描述。在某些實(shí)施例中,把記號(hào)位置用于多級(jí)查詢處理系統(tǒng),該多級(jí)查詢處理系統(tǒng) 用于對(duì)與查詢相關(guān)的文檔進(jìn)行記分,如針對(duì)圖5所描述的。相應(yīng)于查詢項(xiàng),查詢處理器114 生成經(jīng)由一個(gè)或多個(gè)通信模式(例如顯示設(shè)備、音頻等)呈現(xiàn)給用戶的文檔的有序列表。詞典生成器圖2為圖1的詞典生成器108的實(shí)施例的概念性方框圖。詞典生成器108包括全 局詞典編制器(builder) 202和小詞典編制器204。全局詞典編制器全局詞典編制器202從文檔資料庫106中檢索文檔,并且通過把唯一全局記號(hào)標(biāo) 識(shí)符(GTokenID)賦予包含在文檔中的每個(gè)唯一記號(hào),生成全局詞典206。在某些實(shí)施例中, 文檔資料庫106被邏輯地或物理地劃分成多個(gè)部分,有時(shí)將它們稱為分區(qū)(partition),并 且針對(duì)每個(gè)分區(qū)生成獨(dú)立的全局詞典206。在一個(gè)實(shí)施例中,數(shù)十億個(gè)文檔的集合劃被分成 數(shù)千個(gè)分區(qū),對(duì)每個(gè)分區(qū)進(jìn)行處理,以生成全局詞典206。典型的全局詞典206可以包括數(shù) 百萬個(gè)唯一記號(hào)。在某些實(shí)施例中,在把文檔解析成記號(hào)以及對(duì)記號(hào)進(jìn)行處理之前,要被編碼的文 檔集合(例如,一個(gè)分區(qū)中的文檔)根據(jù)一個(gè)或多個(gè)準(zhǔn)則進(jìn)行分類。對(duì)文檔的這種分類有 助于對(duì)記號(hào)化的文檔進(jìn)行有效的編碼,因?yàn)槭褂昧祟愃频膯卧~集合的文檔將被彼此相近地 放置在文檔集合中。因此,與相反的情況相比,,每個(gè)小詞典(以下所描述的)將平均覆蓋 文檔集合的一個(gè)較大的部分,而且,文檔的編碼將占用較少的空間。在一個(gè)實(shí)施例中,首先 根據(jù)語言對(duì)文檔集合進(jìn)行分類,然后,針對(duì)每種語言,根據(jù)URL對(duì)文檔進(jìn)行分類,其中URL的 主機(jī)名部分的字段依次反轉(zhuǎn)。例如,在根據(jù)語言進(jìn)行分類之后,把所有的法語文檔集合在一 起,然后將根據(jù)URL對(duì)法語文檔進(jìn)行分類。當(dāng)根據(jù)URL進(jìn)行分類時(shí),每個(gè)URL最初包括一 個(gè)hi. h2. . . hy. hz/nl/n2...的模式,其中,hi. h2. . . hy. hz包括URL的主機(jī)名部分,而/nl/ n2代表URL的余留部分。在根據(jù)URL進(jìn)行分類之前,把URL重新映射到模式hy. hz. . . hy. hz/nl/n2. · ·。例如,把 URL "www. ROORle. com/about, html”重新映射至Ij“com. ROORle. www/ about.html”。通過在根據(jù)URL進(jìn)行分類之前反轉(zhuǎn)URL的主機(jī)名字段,可以根據(jù)文檔相互間 的邏輯接近性對(duì)文檔進(jìn)行分類。因此,可以把相似類型的文檔(在針對(duì)某一具體語言的文 檔組中)集合在一起;在針對(duì)每個(gè)文檔類型的文檔組中,把每個(gè)網(wǎng)點(diǎn)上的文檔集合在一起; 在針對(duì)每個(gè)網(wǎng)點(diǎn)的文檔中,把針對(duì)網(wǎng)點(diǎn)的不同分支的文檔集合在一起;等等。在某些實(shí)施例中,使用一種或多種群集技術(shù)對(duì)文檔進(jìn)行排序??梢允褂冒谖?檔中的項(xiàng)(term)、單詞或短語,把文檔組織成與各種概念相關(guān)的群集。例如,可以把關(guān)于文 檔的一般信息(例如,嵌入所標(biāo)識(shí)的文檔或與所標(biāo)識(shí)的文檔相關(guān)的元數(shù)據(jù))、從所標(biāo)識(shí)的文 檔所取樣的內(nèi)容、和/或關(guān)于文檔的類別信息用于對(duì)文檔排序。
      在某些實(shí)施例中,當(dāng)對(duì)文檔進(jìn)解析時(shí),全局詞典編制器202存儲(chǔ)有關(guān)每個(gè)所標(biāo)識(shí) 的唯一記號(hào)的信息(未在圖2中加以描述),例如,文檔集合中的每個(gè)唯一記號(hào)的出現(xiàn)的次 數(shù),以及與所述唯一記號(hào)相關(guān)的語言(如果存在的話)。可以根據(jù)與其中發(fā)現(xiàn)所述唯一記號(hào) 的文檔相關(guān)的語言,來確定與該記號(hào)相關(guān)的語言。當(dāng)在與一種以上的語言相關(guān)的文檔中發(fā) 現(xiàn)特定記號(hào)時(shí),可以使用任何適當(dāng)?shù)姆椒ù_定與該記號(hào)相關(guān)的語言。一種適當(dāng)?shù)姆椒ㄊ墙y(tǒng) 計(jì)方法,該方法在解析文檔集合以便標(biāo)識(shí)唯一記號(hào)時(shí)使用。最初,把每個(gè)記號(hào)賦予其中發(fā)現(xiàn) 該記號(hào)的第一文檔的語言,然后,針對(duì)出現(xiàn)在與賦予該記號(hào)的當(dāng)前語言不同的一種語言的 文檔中的記號(hào)的每次相繼的出現(xiàn),僅當(dāng)在0和1之間隨機(jī)(偽隨機(jī))選擇的數(shù)小于1/N時(shí), 該記號(hào)都被重新賦予另一種語言,其中,N為所述記號(hào)的出現(xiàn)的當(dāng)前次數(shù)。在其它一些實(shí)施 例中,可以使用任何類似或適當(dāng)?shù)恼Z言賦予機(jī)制,使得語言與每個(gè)唯一記號(hào)相關(guān)聯(lián)。在某些 實(shí)施例中,不把語言與代表標(biāo)點(diǎn)符號(hào)的唯一記號(hào)相關(guān)聯(lián)。在又一個(gè)實(shí)施例中,當(dāng)可以把語言 與每個(gè)唯一記號(hào)相關(guān)聯(lián)時(shí),當(dāng)處理N個(gè)(例如256個(gè))最頻繁出現(xiàn)的記號(hào)時(shí),忽略語言關(guān)聯(lián)。 因此,有效地忽略了與標(biāo)點(diǎn)記號(hào)相關(guān)的語言。在某些實(shí)施例中,根據(jù)唯一記號(hào)出現(xiàn)的頻度,對(duì)唯一記號(hào)的列表、以及相關(guān)的頻度 和語言信息進(jìn)行分類。作為選擇,接下來,還可以對(duì)條目進(jìn)行分類,以有助于對(duì)文檔集合進(jìn) 行節(jié)省空間的編碼。例如,在一個(gè)實(shí)施例中,首先根據(jù)出現(xiàn)頻度對(duì)所有唯一記號(hào)進(jìn)行分類。 然后把唯一記號(hào)的所得到的分類列表劃分成頻帶(band)。例如,頂級(jí)頻帶,S卩,頻帶0,可以 包括最多255或256個(gè)記號(hào)(即,那些具有最高頻度的記號(hào))。第二個(gè)頻帶,即頻帶1,可以 包括最多214個(gè)(即65536個(gè))記號(hào),不含頻帶0中的記號(hào)。第三個(gè)頻帶,即頻帶2,可以包 括所分類的唯一記號(hào)的列表中接下來的214個(gè)(即65536個(gè))記號(hào)。當(dāng)然,在其它一些實(shí)施 例中,每個(gè)頻帶中的記號(hào)的數(shù)目可以不同。接下來,根據(jù)第二準(zhǔn)則集合,對(duì)每個(gè)頻帶中的記 號(hào)進(jìn)行分類。例如,在一個(gè)實(shí)施例中,按字母順序、即按數(shù)字和字母的值,對(duì)第一頻帶中的記 號(hào)進(jìn)行分類。首先,按語言對(duì)每個(gè)其它頻帶中的記號(hào)進(jìn)行分類,然后按字母順對(duì)它們進(jìn)行分 類。因此,除頻帶0之外,根據(jù)語言,對(duì)每個(gè)頻帶中所分類的記號(hào)進(jìn)行了分組,而且在每個(gè)語 言組中,按字母順對(duì)記號(hào)進(jìn)行了分類。在其它一些實(shí)施例中,可以使用其它分類準(zhǔn)則,對(duì)每 個(gè)頻帶中的唯一記號(hào)的分類。分類過程產(chǎn)生了唯一記號(hào)的分類的列表,每個(gè)唯一記號(hào)在列表中具有相應(yīng)的 位置。然后,向每個(gè)所分類的唯一記號(hào)賦予唯一的全局記號(hào)標(biāo)識(shí)符(以下,也將其稱為 "GTokenID")。GTokenID根據(jù)用于實(shí)現(xiàn)文檔處理系統(tǒng)102的平臺(tái)可以包括任何適當(dāng)?shù)臄?shù)據(jù) 類型與寬度(例如,32個(gè)比特的無符號(hào)整數(shù))。在某些實(shí)施例中,按遞增次序把GTokenID賦 予所分類的唯一記號(hào),以致可以向高頻度記號(hào)賦予小值的GTokenID,以及向低頻度記號(hào)賦 予大值的GTokenID。更具體地講,在一個(gè)實(shí)施例中,向所分類的記號(hào)列表中的每個(gè)記號(hào)賦予 等于其在唯一記號(hào)的分類列表中的數(shù)值位置的32個(gè)比特的全局記號(hào)標(biāo)識(shí)符。于是,向列表 中的第一個(gè)記號(hào)賦予等于O (即,十六進(jìn)制格式的00000000)的GtokenID,向列表中的第二 個(gè)記號(hào)賦予等于1的GtokenID,等等。此處,把GTokenID映射到唯一記號(hào)值的結(jié)果集合稱為 全局詞典206。在某些實(shí)施例中,全局詞典206實(shí)際上包括兩個(gè)映射結(jié)構(gòu),一個(gè)把GTokenID 映射到記號(hào),另一個(gè)把記號(hào)映射到GTokenID。在編碼過程期間使用記號(hào)向GTokenID的映 射,而在對(duì)文檔的一些部分進(jìn)行解碼時(shí),使用GTokenID向記號(hào)的映射。如以下將更全面地加以解釋的,根據(jù)頻度對(duì)唯一記號(hào)進(jìn)行排序,有助于減小存儲(chǔ)小詞典208所需的空間量。在那些其中根據(jù)除出現(xiàn)頻度之外的其它準(zhǔn)則對(duì)唯一記號(hào)的區(qū) 進(jìn)行分類的實(shí)施例中,情況更是如此,因?yàn)橘x予較低GTokenID的頻帶中的記號(hào)比賦予較高 GTokenID的頻帶中的記號(hào)具有更高的出現(xiàn)頻度。在某些實(shí)施例中,向那些比普通記號(hào)更頻繁出現(xiàn)的“特殊”記號(hào),例如HTML 標(biāo)簽和標(biāo)點(diǎn),賦予占據(jù)了全局詞典206中的GtokenID的前綴205部分(例如, GTokenID0-GTokenID^1)的GtokenID??梢园阉衅渌腉TokenID位移分配給前綴205的 最后特殊的GTokenID。在以上的討論中,把GTokenID描述為固定長(zhǎng)度值,例如32個(gè)比特的無符號(hào)整 數(shù)值。然而,也可以把這些同樣的GTokenID視為可變長(zhǎng)度標(biāo)識(shí)符,因?yàn)楫?dāng)為了存儲(chǔ)對(duì) GTokenID進(jìn)行編碼時(shí),可以在編碼期間截?cái)嗷蚱帘蔚扔贠的最高有效字節(jié)(或比特)。例 如,在某些實(shí)施例中,把具有小于28的值的所有GTokenID編碼為單字節(jié)值,把具有小于216 的值的所有GTokenID編碼為二字節(jié)值,以及把具有小于Z4的值的所有GTokenID編碼為三 字節(jié)值。在這一方式下,與具有低出現(xiàn)頻度的記號(hào)相比,用較短長(zhǎng)度的GTokenID表示文檔 集合中具有最高出現(xiàn)頻度的記號(hào)。在以下所描述的實(shí)施例中,記號(hào)空間資料庫中填充了有固定長(zhǎng)度的LTokenID,而 不是可變長(zhǎng)度的GTokenID。然而,把記號(hào)空間資料庫中的LTokenID映射回原始記號(hào)(當(dāng) 然,它們也為可變長(zhǎng)度的),需要存儲(chǔ)大量的“小詞典”,而且小詞典內(nèi)容包括GTokenID。為 了有效存儲(chǔ)小詞典,可以把每個(gè)小詞典中的GtokenID當(dāng)作可變長(zhǎng)度值。作為選擇,每個(gè)小 詞典中的GtokenID也可以被作為這樣列表首先對(duì)其進(jìn)行Delta編碼,然后使用可變長(zhǎng)度 的編碼方案對(duì)所得到的Delta值進(jìn)行編碼。小詞典編制器在生成了全局詞典206之后,由小詞典編制器204生成小詞典集合208,供編碼 /解碼系統(tǒng)Iio使用。小詞典208中的每個(gè)條目包括GTokenID和相應(yīng)的局部記號(hào)標(biāo)識(shí)符 (LTokenID)。小詞典208中的條目的位置暗示了每個(gè)條目的LTokenID,因此不需要顯式地 存儲(chǔ)。每個(gè)相應(yīng)的小詞典208僅用于對(duì)記號(hào)化文檔中的記號(hào)位置的不同的、相應(yīng)的具體范 圍進(jìn)行編碼和解碼,從而允許每個(gè)小詞典208使用相同的LTokenID集合。例如,當(dāng)小詞典 編制器204對(duì)整個(gè)文檔進(jìn)行解析時(shí),針對(duì)小詞典編制器204所遇到的前P個(gè)唯一記號(hào),生成 具有P個(gè)(例如256個(gè))條目的第一小詞典208(即,小詞典A)。一旦已經(jīng)遇到前P個(gè)唯 一記號(hào),則針對(duì)第一小詞典208對(duì)于其為有效的記號(hào)位置的范圍,產(chǎn)生包括開始記號(hào)位置 Start_PosA的“有效范圍映射” 210中的第一條目。把第一小詞典208中P個(gè)LTokenID中 的每個(gè)LTokenID賦予唯一的GTokenID。當(dāng)已經(jīng)把所有LTokenID賦予GiTokenID時(shí),針對(duì) 小詞典編制器204所有遇到的下P個(gè)唯一記號(hào),生成第二小詞典208 (例如,小詞典B),并 且在有效范圍映射210中產(chǎn)生第二條目,其中有效范圍映射210包括第二小詞典208對(duì)于 其為有效的位置范圍的開始記號(hào)位置Mart_PosB。因此,可以使用小詞典B對(duì)具有落入范 圍Mart_Pc^B ManP0Sf1中的記號(hào)化的文檔中的一個(gè)位置的記號(hào)進(jìn)行解碼,如圖2中 所示。為了提供具體的例子,在一個(gè)實(shí)施例中,每個(gè)小詞典中的LTokenID具有值O 255,每個(gè)值均由8個(gè)比特的無符號(hào)整數(shù)加以表示,而GTokenID為32個(gè)比特的無符號(hào)整數(shù)。 通過從記號(hào)位置O開始,直至標(biāo)識(shí)了預(yù)先規(guī)定數(shù)目的P個(gè)(例如256個(gè))不同的記號(hào),掃描文檔集合,生成第一小詞典。把這P個(gè)不同記號(hào)的GTokenID匯編(assemble)于列表中。在 某些實(shí)施例中,根據(jù)數(shù)值值對(duì)列表中的GTokenID進(jìn)行分類,其中,最小的GTokenID處于列 表的頂部。然后,根據(jù)列表中GTokenID的位置,把LTokenID賦予列表中的GTokenID。例 如,把一個(gè)為O的LTokenID賦予列表中的第一 GTokenID,把一個(gè)為1的LTokenID賦予列表 中的下一個(gè)GTokenID,等等。把所得到的從LTokenID至GTokenID的映射稱為小詞典208。 從Mart_PosA Mart_PosB的記號(hào)位置的范圍與該小詞典相關(guān)聯(lián)。通過從緊隨與第一小 詞典相關(guān)聯(lián)的最后位置的位置Mart_PosB開始掃描文檔集合,生成第二小詞典。這一掃描 繼續(xù),直至識(shí)別出了預(yù)定數(shù)目的P個(gè)不同的記號(hào),在這一位置,使用與以上所描述的相同的 過程,生成第二小詞典。小詞典編制器204繼續(xù)針對(duì)文檔集合中的相繼的記號(hào)位置范圍生 成小詞典208的序列,直至文檔中的所有記號(hào)都被映射到小詞典208。在一個(gè)可選的實(shí)施例中,每個(gè)小詞典208中的前F個(gè)LTokenID保留給文檔集合中 F個(gè)最流行(popular)的記號(hào)。對(duì)于這F個(gè)LTokenID,LTokenID總是等于GTokenID。該賦值 方案有助于對(duì)文檔的快速解碼。凡當(dāng)對(duì)具有F-I或小于F-I的值的LTokenID (在記號(hào)空間 資料庫中)進(jìn)行解碼時(shí),可以根據(jù)全局詞典將其直接映射到記號(hào),而無需首先把LTokenID 映射到相應(yīng)的GTokenID。在每個(gè)小詞典208使用相同的LTokenID集合(例如O 255個(gè))。為了有助于壓 縮文檔,與GTokenID(例如4個(gè)字節(jié))相比,LTokenID具有較小的寬度(例如1個(gè)字節(jié))。 該寬度差(3個(gè)字節(jié))表明用于把記號(hào)化的文檔存儲(chǔ)于記號(hào)空間資料庫112中的每記號(hào)的 字節(jié)數(shù)據(jù)的減少。在一個(gè)其中每個(gè)LtokenID占用一個(gè)字節(jié)的實(shí)施例中,在忽略其它支持?jǐn)?shù) 據(jù)結(jié)構(gòu)所占空間(本文獻(xiàn)中,以下將對(duì)它們加以描述)的情況下,具有10億個(gè)記號(hào)的文檔 集合將占用記號(hào)空間資料庫112中10億個(gè)字節(jié)(IGB)。當(dāng)完成了生成小詞典208的過程時(shí),根據(jù)每個(gè)記號(hào)在記號(hào)化的文檔中的位置,把 記號(hào)化的文檔中的每個(gè)記號(hào)與小詞典208相關(guān)聯(lián)。注意,如果記號(hào)化的文檔中的每個(gè)唯一 記號(hào)出現(xiàn)在一個(gè)以上的位置范圍中,則可以把該記號(hào)與一個(gè)以上的小詞典208相關(guān)聯(lián)。在 一個(gè)實(shí)施例中,一般的文檔具有大約1100個(gè)記號(hào),一般的小詞典208囊括大約1000個(gè)記號(hào)。在生成了每個(gè)小詞典208之后,編碼/解碼系統(tǒng)110把文檔集合的相應(yīng)部分中的 記號(hào)映射到LTokenID,并且將它們存儲(chǔ)在記號(hào)空間資料庫112中,以用于相繼的檢索。通過 這一映射,把文檔資料庫106中的每個(gè)記號(hào)映射到記號(hào)空間資料庫112中的固定長(zhǎng)度(例 如一個(gè)字節(jié))的LTokenID。于是,在解碼/解壓縮期間,在記號(hào)空間資料庫112中,從一個(gè) 記號(hào)位置跳至另一個(gè)記號(hào)位置,而無需可能減慢解碼過程的跳躍表或等效的數(shù)據(jù)結(jié)構(gòu),是 可能的。在某些實(shí)施例中,在需要進(jìn)行文檔重構(gòu)之前,以壓縮的格式對(duì)小詞典208進(jìn)行編 碼,并且將其加以存儲(chǔ)。在一個(gè)實(shí)施例中,對(duì)每個(gè)小詞典208中所分類的GTokenID列表進(jìn) 行Delta編碼,然后按壓縮的格式,較佳的做法是按有助于對(duì)小詞典的快速與有效的解碼 和重構(gòu)的格式,對(duì)所得到的Delta值的列表進(jìn)行編碼。2004年8月13日提出的、序號(hào)為 10/917,745 的、名為"System andMethod for Encoding and Decoding Variable-Length Data”( “用于對(duì)可變長(zhǎng)度數(shù)據(jù)進(jìn)行編碼和解碼的系統(tǒng)和方法”)的待審美國(guó)專利申請(qǐng)中,描 述了一種適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)和編碼/解碼方法。
      為了對(duì)特定文檔進(jìn)行解壓縮,把與該文檔的記號(hào)位置范圍相關(guān)的小詞典208解壓 縮成把LTokenID轉(zhuǎn)換成相應(yīng)GTokenID的轉(zhuǎn)換表或根據(jù)小詞典208的條目所編制(build) 的映射。于是,可以通過讀取存儲(chǔ)在針對(duì)該文檔的記號(hào)空間資料庫112中的固定長(zhǎng)度的 LTokenID,以及訪問該文檔中針對(duì)每個(gè)記號(hào)位置的小詞典以便把LTokenID轉(zhuǎn)換成相應(yīng)的 GTokenID,來完成對(duì)記號(hào)空間資料庫112中的記號(hào)化的文檔的解碼。然后,使用全局詞典 206把GTokenID映射成相應(yīng)的記號(hào)(例如,文本和標(biāo)點(diǎn)),從而重構(gòu)了整個(gè)文檔或文檔的某 一部分。編碼系統(tǒng)圖3A為對(duì)記號(hào)空間資料庫的文檔進(jìn)行編碼的編碼系統(tǒng)300的實(shí)施例的方框圖。編 碼系統(tǒng)300包括可選的前置處理器302、可選的Delta編碼器304以及可變長(zhǎng)度數(shù)據(jù)編碼器 306。例如,可變長(zhǎng)度數(shù)據(jù)類型可以包括各種數(shù)據(jù)類型,但不局限于整數(shù)、字符串、浮點(diǎn)數(shù)、定 點(diǎn)數(shù)等??勺冮L(zhǎng)度數(shù)據(jù)包括,但不局限于文本、圖像、圖形、音頻樣本等。在某些實(shí)施例中,前置處理器302接收信息的列表,該前置處理器為了進(jìn)行有效 編碼對(duì)信息進(jìn)行排序。前置處理器302可以使用一種或多種分類算法,把數(shù)據(jù)排序?yàn)閱握{(diào) 序列。例如,如果根據(jù)值對(duì)整數(shù)集合進(jìn)行分類,則就大小而言相鄰的整數(shù)將互相靠近,于是, 可以使Delta編碼器304生成用于編碼的、為小數(shù)值整數(shù)的Delta值。Delta編碼器304 接收排序的數(shù)據(jù),Delta編碼器304計(jì)算排序的數(shù)據(jù)的相鄰對(duì)兒之間的差,以得到小數(shù)值的 整數(shù)??勺冮L(zhǎng)度數(shù)據(jù)編碼器306接收小數(shù)值的整數(shù),并且把這些數(shù)據(jù)編碼為一種可以有效 加以解碼的壓縮格式。2004年8月13日提出的、序號(hào)為10/917,745的、名為“System and Method for Encoding and Decoding Variable-Length Data,,白勺禾Ij 串i青巾, 述了適當(dāng)?shù)目勺冮L(zhǎng)度數(shù)據(jù)編碼器306的一個(gè)例子??梢允褂镁幋a系統(tǒng)300的全部或一部分,對(duì)文檔處理系統(tǒng)102所生成的各種信息 進(jìn)行編碼。在某些實(shí)施例中,使用前置處理器302對(duì)每個(gè)小詞典208中的GTokenID進(jìn)行分 類,以確保將對(duì)大小上最接近的整數(shù)值進(jìn)行Delta編碼。然后,由Delta編碼器304對(duì)所排 序的GTokenID進(jìn)行Delta編碼,以提供差值或余值。然后,使用可變長(zhǎng)度數(shù)據(jù)編碼器306, 按組(例如,4個(gè)值的組)把差值編碼為一個(gè)壓縮格式。在某些實(shí)施例中,按一個(gè)逆索引,對(duì) 記號(hào)位置的列表進(jìn)行類似的編碼,以有助于對(duì)位置的快速與有效的解碼,如參照?qǐng)D4更全 面加以描述的。盡管可變長(zhǎng)度數(shù)據(jù)編碼器306提供了一種有助于快速和有效解碼的壓縮的格 式,但也可以把其它已知的編碼方案用于文檔處理系統(tǒng)102,以壓縮信息的列表(例如, CCITT-G4、LZW 等)。解碼系統(tǒng)圖;3B為對(duì)記號(hào)空間資料庫中的文檔進(jìn)行解碼的解碼系統(tǒng)308的實(shí)施例的方框 圖。解碼系統(tǒng)308包括可變長(zhǎng)度數(shù)據(jù)解碼器310和可選的Delta解碼器312。在某些實(shí) 施例中,由可變長(zhǎng)度數(shù)據(jù)解碼器310接收所編碼的數(shù)據(jù)組,可變長(zhǎng)度數(shù)據(jù)解碼器310借助 一個(gè)或多個(gè)位移/屏蔽表對(duì)各組進(jìn)行解碼。Delta解碼器312接收所解碼的數(shù)據(jù),Delta 解碼器312計(jì)算運(yùn)行和,從而產(chǎn)生Delta解碼的數(shù)據(jù),這等效于原始的信息列表。2004年 8 月 13 日提出的、序號(hào)為 10/917,745 的、名為 “System and Method for Encoding and DecodingVariable-Length Data”的待審美國(guó)專利申請(qǐng)中,更全面地描述了在對(duì)組編碼的可變長(zhǎng)度整數(shù)值進(jìn)行解碼的過程中對(duì)位移/屏蔽表的使用。屬性編碼/解碼系統(tǒng)圖3C為用于對(duì)文檔屬性進(jìn)行編碼/解碼的屬性編碼/解碼系統(tǒng)314的實(shí)施例的方 框圖。屬性編碼/解碼系統(tǒng)314包括編碼/解碼系統(tǒng)320,編碼/解碼系統(tǒng)320把屬性信息 322編碼為屬性記錄318,以存儲(chǔ)在屬性表316中。逐個(gè)記號(hào)地確定文檔的屬性,其中采用0 或1的比特值來表示給定記號(hào)的每個(gè)屬性的存在或不存在。例如,可以把屬性表中的屬性 記錄318概念性地表示為AXK個(gè)比特的映射,其中,A為所編碼的屬性的數(shù)目,K為其屬性 由屬性記錄318表示的記號(hào)的數(shù)目。如果A為8,1(為32,那么每個(gè)屬性記錄318可以針對(duì) 32個(gè)記號(hào)的每個(gè)存儲(chǔ)8個(gè)屬性??梢詫?duì)每個(gè)屬性記錄318進(jìn)行編碼,以壓縮屬性表所占的 空間量,同時(shí)能夠在查詢處理期間非??斓貙?duì)所選擇的屬性記錄進(jìn)行解碼。2004年8月13 日提出的、序號(hào)為 10/917, 745 的、名為“System and Method for Encoding and Decoding Variable-Length Data”的待審美國(guó)專利申請(qǐng)中,描述了一種用于對(duì)屬性記錄318進(jìn)行編碼 和解碼的適當(dāng)?shù)姆椒?。作為選擇,也可以對(duì)每個(gè)屬性記錄中的信息進(jìn)行運(yùn)行長(zhǎng)度編碼。記錄在屬性表316中的屬性集合,可以包括一個(gè)或多個(gè)字體屬性(例如,粗體、下 劃線等)、一個(gè)或多個(gè)文檔位置屬性(例如,題目、標(biāo)題等)、元數(shù)據(jù)以及可用于對(duì)文檔集合 中的記號(hào)之間加以區(qū)別的任何其它特性或特征。在某些實(shí)施例中,在對(duì)記號(hào)化的文檔進(jìn)行 編碼,并且將它們存儲(chǔ)在記號(hào)空間資料庫中的同時(shí),對(duì)文檔集合中的記號(hào)的屬性進(jìn)行標(biāo)識(shí), 并且對(duì)它們加以編碼,如以上所描述的。把所編碼的屬性用于一個(gè)或多個(gè)相關(guān)性得分的級(jí) 別,如參照?qǐng)D5更全面地加以描述的。文檔資料庫編碼與解碼系統(tǒng)一第二實(shí)施例圖8A和8B為一個(gè)實(shí)施例的方框圖,其中,按與以上所描述的方式略有不同的方 式對(duì)一組記號(hào)化的文檔(“記號(hào)空間資料庫”)進(jìn)行編碼。如以上所描述的,全局詞典編制 器202對(duì)文檔集合106進(jìn)行記號(hào)化、標(biāo)識(shí)所有唯一記號(hào)、以及把全局記號(hào)標(biāo)識(shí)符賦予所有唯 一記號(hào)。結(jié)果為全局詞典206。接下來,區(qū)域詞典編制器804處理該文檔集合(已被記號(hào) 化)。概念地把文檔集合劃分為區(qū)域820,然后把每個(gè)區(qū)域820劃分成塊822。區(qū)域詞典編 制器804針對(duì)每個(gè)區(qū)域編制“詞典”,即字典830,編碼系統(tǒng)810為每個(gè)區(qū)域生成被編碼的記 號(hào)832的集合以及用于每個(gè)區(qū)域的塊位移834的集合。區(qū)域詞典830、編碼的記號(hào)832以 及塊位移834 (以下,將更詳細(xì)地對(duì)它們分別加以描述),共同形成文檔集合的各個(gè)區(qū)域820 的編碼表示法。在一個(gè)實(shí)施例中,文檔集合被劃分成區(qū)域820,每個(gè)區(qū)域820(或許除了最后區(qū)域 之外)具有預(yù)定的固定大小,諸如8192個(gè)記號(hào)(或任何其它適當(dāng)?shù)拇笮?。區(qū)域820的每 個(gè)塊822也具有一個(gè)預(yù)定義的固定大小,諸如64個(gè)記號(hào)(或任何其它適當(dāng)?shù)拇笮?。在一個(gè)實(shí)施例中,針對(duì)相應(yīng)區(qū)域820的“詞典” 830為具有最高重復(fù)率的最長(zhǎng)記號(hào) 序列的有序列表,或任何類似的結(jié)構(gòu)??梢酝ㄟ^在所述區(qū)域中編制候選記號(hào)串的表,確定 它們?cè)谒鰠^(qū)域中的重復(fù)次數(shù),然后選擇最佳候選,直至達(dá)到最大詞典大小,編制詞典830。 在示例性實(shí)施例中,最大詞典大小為64個(gè)記號(hào),然而,在其它實(shí)施例中,也可以使用任何其 它適當(dāng)?shù)拇笮∠拗啤H缫韵聦⒓右悦枋龅?,詞典830用作對(duì)相應(yīng)區(qū)域820的每個(gè)塊822進(jìn) 行編碼的上下文,從而能夠高度壓縮區(qū)域的表示。在某些實(shí)施例中,可以按一種壓縮的格 式對(duì)一個(gè)或多個(gè)區(qū)域詞典830進(jìn)行編碼,例如,使用本文獻(xiàn)中先前所參照的2004年8月13日提出的、序號(hào)為 10/917,745 的、名為 “System andMethod for Encoding and Decoding Variable-Length Data"的美國(guó)專利申請(qǐng)中所描述的編碼方法。參照?qǐng)D9A和9B,在一個(gè)實(shí)施例中,編碼系統(tǒng)810按如下方式對(duì)記號(hào)的每個(gè)塊822 進(jìn)行編碼。把針對(duì)相應(yīng)區(qū)域的詞典830作為緊在所述塊的記號(hào)之前的一個(gè)記號(hào)集合加以對(duì) 待。從第一個(gè)到最后一個(gè),順序地處理所述塊的記號(hào),把每個(gè)記號(hào),并且盡可能多地把相繼 的記號(hào)與先前記號(hào)序列中的最長(zhǎng)匹配記號(hào)序列,包括區(qū)域詞典830,相匹配。如果發(fā)現(xiàn)匹配 的先前序列,則生成“拷貝代碼”。否則,生成“文字代碼”,以表示記號(hào)。然后把當(dāng)前代碼所 覆蓋的所有記號(hào)作為先前記號(hào)加以對(duì)待,以用于塊中下一個(gè)記號(hào)(如果存在的話)的相繼 處理。如圖9B中所示,每個(gè)代表塊中的記號(hào)集合的“代碼”可以包括一個(gè)類型字段902。如 果代碼為“文字代碼”,則代碼的第二部分904代表全局記號(hào)標(biāo)識(shí)符。在某些實(shí)施例中,這一 類型字段902表示代表全局記號(hào)標(biāo)識(shí)符所需的比特的數(shù)目。例如,在一個(gè)實(shí)施例中,類型代 碼902可以最多表示7種不同的文字代碼,每個(gè)種都具有相應(yīng)的全局記號(hào)標(biāo)識(shí)符長(zhǎng)度。在 其它一些實(shí)施例中,不同類型代碼的數(shù)目可以多于或少于8個(gè)(例如,一個(gè)表示拷貝代碼, 其余的表示文字代碼)。如果文字代碼為“拷貝代碼”,則代碼的第二部分906可以包括指 針908和長(zhǎng)度910,其中,指針908指出從先前文本的哪一個(gè)地方開始,長(zhǎng)度910指出匹配 的序列的長(zhǎng)度(即,在解碼期間將加以拷貝的記號(hào)的數(shù)目)。于是,比如,如果編碼系統(tǒng)810 發(fā)現(xiàn)了 4個(gè)從當(dāng)前位置之前的31個(gè)記號(hào)的部位開始的記號(hào)的一個(gè)匹配序列,則針對(duì)這一序 列的代碼將為<type = copy, ptr = 31, length = 4>拷貝代碼的長(zhǎng)度(按比特加以測(cè)量)將依賴于區(qū)域詞典830的最大記號(hào)長(zhǎng)度和塊 的最大記號(hào)長(zhǎng)度、匹配的序列的最大允許長(zhǎng)度、以及不同代碼的數(shù)目。在一個(gè)例子中,類型 字段902為3個(gè)比特(允許8個(gè)類型代碼)、指針字段908為7個(gè)比特,以及長(zhǎng)度字段910 為2個(gè)比特,總共12個(gè)比特。在其它一些實(shí)施例中,也可以使用針對(duì)拷貝代碼的每個(gè)字段 的其它比特長(zhǎng)度。由文字代碼的類型指出每個(gè)文字代碼的長(zhǎng)度(按比特加以測(cè)量)?;剡^頭來參照?qǐng)D8B,當(dāng)編碼系統(tǒng)810對(duì)區(qū)域的塊進(jìn)行編碼時(shí),編碼系統(tǒng)810生成指 示針對(duì)該區(qū)域的每個(gè)塊的編碼的記號(hào)的部位的塊位移834的集合。在一個(gè)實(shí)施例中,該區(qū) 域的第一個(gè)塊的塊位移為進(jìn)入記號(hào)空間資料庫的指針,而且針對(duì)該區(qū)域的每個(gè)其它塊位移 為相對(duì)該區(qū)域中的第一塊的開始位置的相對(duì)位移。在一個(gè)實(shí)施例中,把區(qū)域詞典830和塊 位移834存儲(chǔ)在根據(jù)按固定區(qū)域大小所劃分的區(qū)域820的開始位置加以索引的表或等效的 數(shù)據(jù)結(jié)構(gòu)中。從另一個(gè)角度來看,向每個(gè)區(qū)域820賦予了區(qū)域號(hào)碼,該區(qū)域號(hào)碼包括其按固 定區(qū)域大小所劃分的開始位置,并且按區(qū)域號(hào)碼對(duì)其中存儲(chǔ)了區(qū)域詞典830和塊位移834 的一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)加以索引。通過對(duì)相應(yīng)區(qū)域的區(qū)域詞典830的定位,使用針對(duì)區(qū)域820的塊位移834對(duì)編碼 的塊進(jìn)行定位,然后對(duì)針對(duì)所述塊的代碼集合進(jìn)行解碼,以產(chǎn)生全局記號(hào)標(biāo)識(shí)符的序列,實(shí) 現(xiàn)對(duì)該區(qū)域的塊822的解碼。接下來,可以使用全局詞典206,把所得到的全局記號(hào)標(biāo)識(shí)符 的序列或其任何子集轉(zhuǎn)換成相應(yīng)的符號(hào)或項(xiàng)集合。查詢處理系統(tǒng)圖4為用于記號(hào)空間資料庫的查詢處理系統(tǒng)104的第一級(jí)的實(shí)施例的方框圖。查 詢處理系統(tǒng)104包括全局詞典402、記號(hào)空間逆索引408、第一級(jí)查找表406以及第二級(jí)查
      13找表410。全局詞典402接收查詢項(xiàng)或串,全局詞典402使用根據(jù)全局詞典402的條目所編 制的表或映射,把查詢項(xiàng)轉(zhuǎn)換成GTokenID。逆索引408接收GTokenID,逆索引408包括映 射404,映射404把GTokenID映射到存儲(chǔ)在逆索引408中的索引記錄412。使用映射404所 標(biāo)識(shí)的每個(gè)索引記錄412包括記號(hào)位置的列表,該列表直接對(duì)應(yīng)于記號(hào)空間資料庫112中 的記號(hào)位置。在某些實(shí)施例中,在生成全局詞典之后,生成逆索引408,并且可以在與用于生 成小詞典而遍歷文檔的同一遍期間,生成逆索引408。在某些實(shí)施例中,逆索引408提供了位置列表,該位置列表可用作進(jìn)入第一級(jí)查 找表406的索引。當(dāng)查詢包含多個(gè)項(xiàng)時(shí),逆索引408產(chǎn)生多個(gè)位置列表。為了避免必須針 對(duì)相應(yīng)于一個(gè)或多個(gè)位置列表中的每個(gè)位置的一個(gè)條目搜索整個(gè)DocID映象圖410,第一 級(jí)查找表406具有針對(duì)記號(hào)空間資料庫中每個(gè)位置塊的條目。例如,每個(gè)塊可以具有32768 個(gè)位置的大小,而且每個(gè)條目可以具有指向針對(duì)相應(yīng)位置塊的DocID查找表410中的第一 條目的指針。于是,第一級(jí)查找表406可以把一個(gè)或多個(gè)位置列表轉(zhuǎn)換成第二級(jí)查找表410 中的文檔標(biāo)識(shí)符(DocID條目)412的開始點(diǎn)位置。作為選擇,也可以把表406和410統(tǒng)稱 為DocID查找表。第二級(jí)查找表410中的每個(gè)條目412包括DocID (文檔標(biāo)識(shí)符)以及相應(yīng) 文檔的開始資料庫位置。在第二級(jí)查找表410中,任何文檔中的最后一個(gè)記號(hào)均處于緊在 下一個(gè)標(biāo)目412所標(biāo)識(shí)的開始位置之前的位置。第二級(jí)查找表410接收針對(duì)DocID的開始 點(diǎn)位置Mart_PosA_z,第二級(jí)查找表410把開始點(diǎn)位置轉(zhuǎn)換成針對(duì)每個(gè)查詢項(xiàng)的一個(gè)DocID 的列表。在某些實(shí)施例中,第一級(jí)查詢處理器416包括用于產(chǎn)生結(jié)果集合的邏輯416。邏輯 416根據(jù)查詢或查詢樹所指定的布爾邏輯合并DocID的列表,以形成DocID的結(jié)果集合。邏 輯416還可以有選擇地過濾記號(hào)位置的列表,以消除沒有位于相應(yīng)于結(jié)果集合中的DocID 的文檔中的記號(hào)位置。而且,還可以使用DocID的所標(biāo)識(shí)的每個(gè)文檔中的DocID和記號(hào)位 置,將記分功能施加到結(jié)果集合,以使得得分(有時(shí)將其稱為查詢得分)與結(jié)果集合中的每 個(gè)DocID相關(guān)聯(lián)。多級(jí)查詢處理圖5為利用記號(hào)空間資料庫524的多級(jí)查詢處理系統(tǒng)500的實(shí)施例的方框圖。在 某些實(shí)施例中,查詢處理系統(tǒng)500包括4個(gè)查詢處理和相關(guān)性得分生成級(jí),即包括第一級(jí)查 詢處理器510、第二級(jí)查詢處理器514、第三級(jí)查詢處理器518以及第四查詢級(jí)處理器520。 注意,在系統(tǒng)500中,可以使用或多或少的查詢處理器級(jí),取決于具體的應(yīng)用。根據(jù)應(yīng)用場(chǎng) 合,每級(jí)計(jì)算一個(gè)或多個(gè)可以返回給用戶的相關(guān)性得分集合與/或把它們與先前級(jí)中所生 成的相關(guān)性得分加以組合。查詢處理一級(jí)1已針對(duì)圖4 一般性地描述了第一級(jí)查詢處理器510。查詢解析器504對(duì)查詢串502 進(jìn)行記號(hào)化,并且將其解析成查詢項(xiàng)(即,把查詢中的每個(gè)不同的項(xiàng)作為記號(hào)加以對(duì)待)。 記號(hào)化的查詢項(xiàng)被全局詞典映射508使用轉(zhuǎn)換表或映射轉(zhuǎn)換成相應(yīng)的GTokenID,如先前參 照?qǐng)D2和4所描述的。由于用戶可以在他們的查詢串中使用特定的操作符(operator),包 括布爾、鄰接、或相近性操作符,所以系統(tǒng)500可以將查詢解析成查詢項(xiàng)和操作符。操作符 可以按特定化格式(例如,AND、0R),以保留的標(biāo)點(diǎn)(例如,問號(hào))或者保留的項(xiàng)(term)的 形式出現(xiàn)。在自然語言處理(NLP)系統(tǒng)的情況下,無論可以如何表達(dá)操作符,都能夠在所使
      14用的語言中隱含地識(shí)別操作符(例如,介詞、連接詞、次序關(guān)系等)。第一級(jí)查詢處理器510 中也可以包括其它的查詢處理,例如刪除結(jié)束單詞(例如“a”、“the”等)以及項(xiàng)干(S卩,去 除單詞前綴)。接下來,查詢擴(kuò)展器506處理GTokenID的列表,查詢擴(kuò)展器506生成查詢樹或其 它的查詢表示,并且考慮到查詢串中所使用的任何操作符(例如布爾表達(dá)式)。作為選擇, 查詢擴(kuò)展器506還可以按各種方式擴(kuò)展查詢。例如,可以把查詢項(xiàng)轉(zhuǎn)換成子樹,該子樹包含 所述項(xiàng)和一個(gè)或多個(gè)同義詞項(xiàng),或者與查詢項(xiàng)相關(guān)的其它項(xiàng),子樹中的項(xiàng)通過OR操作符或 者父結(jié)點(diǎn)而彼此相關(guān)。如以下將更詳細(xì)地加以描述的,在某些實(shí)施例中,根據(jù)圖5中所示的查詢處理級(jí) 的序列,一次或多次地處理查詢。在每個(gè)遍(除最后一遍)中,生成附加查詢擴(kuò)展項(xiàng)(以下 將對(duì)此加以解釋),然后,把這些附加項(xiàng)添加到查詢樹。也可以把查詢樹用作記分樹,記分樹 具有與查詢樹中的項(xiàng)相關(guān)的權(quán)重。所擴(kuò)展的查詢樹還可以包括不要求出現(xiàn)在相應(yīng)于查詢的 文檔中,但將它們用于對(duì)相應(yīng)于查詢的文檔的相關(guān)性的記分的補(bǔ)充的項(xiàng)和項(xiàng)的子樹。如果 存在一個(gè)以上的查詢項(xiàng),則在第一遍期間,可以針對(duì)查詢項(xiàng)計(jì)算權(quán)重,以改進(jìn)搜索結(jié)果。在某些實(shí)施例中,遍歷系統(tǒng)500的第一遍處理來自文檔集的文檔的隨機(jī)樣本???以根據(jù)能夠由系統(tǒng)500使用的一個(gè)或多個(gè)較小的隨機(jī)樣本,選擇隨機(jī)樣本的大小,以估計(jì) 整個(gè)文檔集中匹配查詢的文檔的數(shù)目。在其它一些實(shí)施例中,在遍歷系統(tǒng)500的第一遍中, 使用第一文檔集(例如,查詢對(duì)話期的一個(gè)集合),以及在遍歷系統(tǒng)500的第二或相繼的遍, 使用第二、不同的文檔集。使用先前的查詢對(duì)話期集合,可以使系統(tǒng)500能夠確定通常共同 出現(xiàn)在類似查詢中的其它相關(guān)的項(xiàng)。查詢擴(kuò)展器506可以使用這些相關(guān)項(xiàng)擴(kuò)展相繼各遍的 查詢。第一級(jí)查詢處理器510使用查詢項(xiàng)搜索一個(gè)記號(hào)空間逆索引512,并且標(biāo)識(shí)與查 詢相匹配的文檔。第一級(jí)查詢處理器510訪問記號(hào)空間逆索引512,以產(chǎn)生查詢樹中項(xiàng)的 記號(hào)位置(也稱為記號(hào)空間資料庫位置)的列表,并且訪問DocID映象圖516,以產(chǎn)生針對(duì) 相應(yīng)于記號(hào)位置的文檔的DocID的集合。另外,第一級(jí)處理器510還執(zhí)行由查詢或查詢樹 所指出的布爾邏輯,以生成相應(yīng)于查詢的DocID的集合。在某些實(shí)施例中,第一級(jí)查詢處 理器510還根據(jù)一個(gè)或多個(gè)記分算法,計(jì)算查詢和每個(gè)文檔之間的相關(guān)性得分的第一集合 Sp總之,記分算法根據(jù)一個(gè)或多個(gè)查詢特性向每個(gè)匹配的文檔提供相關(guān)性,所述查詢特性 包括,但不局限于一個(gè)或多個(gè)查詢項(xiàng)的存在或不存在、項(xiàng)頻度、布爾邏輯實(shí)現(xiàn)、查詢項(xiàng)權(quán)重、 文檔的流行性(例如,一個(gè)獨(dú)立于文檔的重要性、或流行性、或互連性的得分)、查詢項(xiàng)相互 間的相近性、上下文、屬性等。在一個(gè)實(shí)施例中,相關(guān)性得分S1的第一集合基于包括查詢項(xiàng) 的存在性、項(xiàng)頻度以及文檔流行性的一組因素。在某些實(shí)施例中,相關(guān)性得分的第一集合S1可用于選擇作為有序列表呈現(xiàn)給用戶 的文檔,然后,用戶可以簡(jiǎn)單地點(diǎn)擊和跟隨指向所選擇的文檔的內(nèi)部指針。在其它一些實(shí)施 例中,把相關(guān)性得分的第一集合S1以及DocID和相應(yīng)的位置提供于第二級(jí)查詢處理器514, 以進(jìn)行進(jìn)一步的處理。查詢處理一級(jí)2第二級(jí)查詢處理器514從第一級(jí)查詢處理器510接收DocID的集合、針對(duì)相應(yīng)文 檔的記號(hào)空間資料庫位置的列表、以及相關(guān)性得分的第一集合Sp第二級(jí)查詢處理器514使用所述位置列表,根據(jù)文檔中所發(fā)現(xiàn)的查詢項(xiàng)的相近性或相對(duì)位置,生成相關(guān)性得分的 第二集合&。當(dāng)在一個(gè)文檔中,查詢中的項(xiàng)相互靠近地出現(xiàn)時(shí),與各項(xiàng)按較大距離出現(xiàn)時(shí)相 比,所述文檔更可能與所述查詢相關(guān)。因此,與其中項(xiàng)按某一距離出現(xiàn)的文檔相比,如果查 詢項(xiàng)互相相鄰地出現(xiàn),即相近地出現(xiàn),則相關(guān)性得分的第二集合&被用于將文檔的等級(jí)排 得較高。在某些實(shí)施例中,相關(guān)性得分的第二集合&可用于選擇作為有序列表用于呈現(xiàn)給 用戶的頂部的X文檔,然后,用戶可以簡(jiǎn)單地點(diǎn)擊和跟隨指向所選擇的文檔的內(nèi)部指針。在 某些實(shí)施例中,部分地根據(jù)相關(guān)性得分的第一集合S1導(dǎo)出相關(guān)性得分的第二集合& (例如, 通過根據(jù)第二級(jí)查詢處理器514所使用的附加的得分因素,調(diào)整S1得分),以生成一個(gè)向用 戶提交的、與/或由第三級(jí)查詢處理器518進(jìn)一步處理的文檔的有序列表。查詢處理一級(jí)3在某些實(shí)施例中,把第二級(jí)查詢處理器514耦接于第三級(jí)查詢處理器518,以處理 已經(jīng)在一個(gè)屬性表522中加以編碼的項(xiàng)屬性(例如字體屬性、題目、標(biāo)題、元數(shù)據(jù)等),如以 上參照?qǐng)D3C所描述的。第三級(jí)查詢處理器518從第二級(jí)查詢處理器514接收DocID的集合、 針對(duì)相應(yīng)文檔的記號(hào)空間資料庫位置的列表,以及相關(guān)性得分的第二集合S2。作為選擇,第 三級(jí)查詢處理器也可以接收相關(guān)性得分的第一集合S1以及相關(guān)性得分的第二集合&。某些研究表明,文檔中的項(xiàng)的部位表示其對(duì)文檔的重要性。例如,在權(quán)重方面,出 現(xiàn)在與某一查詢相匹配的文檔的題目中的項(xiàng),可能重于出現(xiàn)在該文檔的體中的查詢項(xiàng)。相 類似,出現(xiàn)在章節(jié)標(biāo)題或文檔第一段中的查詢項(xiàng)與出現(xiàn)在文檔中的不太重要位置中的項(xiàng)相 比,很可能更能說明文檔與所述查詢的相關(guān)性??梢杂糜谥甘鞠嚓P(guān)性的其它屬性包括粗體 文本、下劃線文本以及字體大小。因此,使用與所述查詢項(xiàng)相匹配的文檔中的記號(hào)的屬性, 確定相關(guān)性得分的第三集合&。參照?qǐng)D3C,為了訪問文檔中的查詢項(xiàng)的屬性(即,與查詢 項(xiàng)相匹配或相關(guān)聯(lián)的記號(hào)的屬性),使用該文檔中的查詢項(xiàng)的記號(hào)位置,執(zhí)行進(jìn)入屬性表 316(圖5中的52 的索引操作。更具體地講,如果由每個(gè)屬性記錄318對(duì)其屬性進(jìn)行編碼 的記號(hào)的數(shù)目為K,則把除以K的記號(hào)位置用于進(jìn)入屬性表316的索引。在某些實(shí)施例中, 把所標(biāo)識(shí)的屬性一個(gè)或多個(gè)記錄318以編碼的、壓縮的格式加以存儲(chǔ),因此,為了確定與每 個(gè)查詢項(xiàng)相關(guān)的屬性,必須對(duì)其進(jìn)行解碼。在某些實(shí)施例中,相關(guān)性得分的第三集合&可用于選擇作為有序列表向用戶提交 的頂部的Y個(gè)文檔,然后,用戶可以簡(jiǎn)單地點(diǎn)擊和跟隨指向所選擇的文檔的內(nèi)部指針。在某 些實(shí)施例中,部分地根據(jù)一個(gè)或多個(gè)相關(guān)性得分的第一和第二集合S1和&導(dǎo)出相關(guān)性得分 的第三集合&,以生成呈現(xiàn)給用戶的、與/或由第四查詢級(jí)處理器520進(jìn)一步處理的文檔的 有序列表。在某些實(shí)施例中,通過根據(jù)第三級(jí)查詢處理器518所產(chǎn)生的附加的得分因素,調(diào) 整&得分,產(chǎn)生&得分。查詢處理一級(jí)4第四查詢級(jí)處理器520從第三級(jí)查詢處理器518接收DocID的集合、相應(yīng)于所述 DocID的文檔中的位置的列表、以及相關(guān)性得分的第三集合&。第四查詢級(jí)處理器520還 可以有選擇地接收相關(guān)性得分的第一與/或第二集合S1和&。第四查詢級(jí)處理器520耦 接于解碼系統(tǒng)527,接著解碼系統(tǒng)527耦接于一個(gè)或多個(gè)小詞典映射523、記號(hào)空間資料庫 524以及一個(gè)或多個(gè)全局詞典映射508。以上,針對(duì)圖1和圖2,描述了小詞典映射523、記 號(hào)空間資料庫524以及全局詞典映射508。
      第四查詢級(jí)處理器520根據(jù)上下文生成相關(guān)性得分的第四集合、,并且還可以為 結(jié)果集合中所列的一個(gè)或多個(gè)文檔生成“片段”。片段來自文檔的小部分文本,通常包括出 現(xiàn)在將加以搜索的關(guān)鍵字周圍的文本。在一個(gè)實(shí)施例中,為了生成針對(duì)結(jié)果集合中所列的 文檔的片段,查詢處理器對(duì)位于出現(xiàn)在文檔中的每個(gè)查詢項(xiàng)第一次出現(xiàn)之前和之后的預(yù)確 定數(shù)目的記號(hào)進(jìn)行解碼,從而重構(gòu)了文檔的一個(gè)或多個(gè)文本部分,然后選擇將包括在片段 中的文本部分的子集。使用結(jié)果集合中的位置列表,解碼系統(tǒng)527可以選擇對(duì)文檔的一些 部分進(jìn)行解碼所需的小詞典523,其中文檔的所述一些部分為文檔中查詢項(xiàng)出現(xiàn)之前和之 后的一些部分。所選擇的小詞典523和全局詞典508用于把記號(hào)空間資料庫中的LTokenID 轉(zhuǎn)換成GTokenID,然后用于把GTokenID轉(zhuǎn)換成記號(hào),如以上針對(duì)圖2所描述的。在某些實(shí)施例中,相關(guān)性得分的第四集合、可用于選擇作為有序列表向用戶提交 的頂部的Z個(gè)文檔,然后,用戶可以簡(jiǎn)單地點(diǎn)擊和跟隨指向所選擇的文檔的內(nèi)部指針。在某 些實(shí)施例中,部分地根據(jù)一個(gè)或多個(gè)相關(guān)性得分的第一、第二以及第三集合S1A2以及&導(dǎo) 出相關(guān)性得分的第四集合、,以生成向用戶提交的、與/或由相關(guān)性反饋模塊517進(jìn)一步加 以處理的文檔的有序列表。在一個(gè)可選的實(shí)施例中,最后級(jí)查詢處理器為那些在先前查詢 處理器級(jí)所產(chǎn)生的相關(guān)性得分方面具有最高得分的文檔生成片段,但不生成相關(guān)性得分的 一個(gè)新的集合、。在某些實(shí)施例中,把相關(guān)性得分的最終集合提供于一個(gè)相關(guān)性反饋模塊517,相關(guān) 性反饋模塊517根據(jù)最后查詢級(jí)所產(chǎn)生的結(jié)果集合中的文檔,生成一個(gè)或多個(gè)新的查詢擴(kuò) 展項(xiàng)。例如,相關(guān)性反饋模塊517可以實(shí)現(xiàn)一個(gè)或多個(gè)已知的相關(guān)性反饋算法,包括,但不 局限于基于一個(gè)全文檔方案的偽相關(guān)性反饋算法(基于某一完整Web頁的偽相關(guān)性反饋算 法),文檔對(duì)象模型(DOM)分段、基于頁分段的顯示(VIPS)、使用概念點(diǎn)陣的概念相關(guān)反饋 等。相關(guān)性反饋算法可以分析根據(jù)先前查詢處理級(jí)所核實(shí)(vet)的文檔,并且可以根據(jù)分 析結(jié)果生成查詢擴(kuò)展項(xiàng)。把新的查詢擴(kuò)展項(xiàng)提供于查詢擴(kuò)展器506,查詢擴(kuò)展器506生成將 由一個(gè)或多個(gè)查詢處理器510、514、518以及520所處理的新的查詢表達(dá)式。于是,多級(jí)查 詢處理系統(tǒng)500能夠針對(duì)一個(gè)查詢執(zhí)行兩遍或兩遍以上,并且使用來自每個(gè)遍的信息,生 成改進(jìn)了的查詢,從而將最終致使用戶可以接收更多相關(guān)的文檔。在一個(gè)實(shí)施例中,當(dāng)執(zhí)行查詢的第一遍處理時(shí),最后查詢級(jí)處理器520產(chǎn)生一些 長(zhǎng)的片段,例如包括文檔中查詢項(xiàng)每次出現(xiàn)之前和之后的N個(gè)(例如10 40個(gè))記號(hào)。如 果片段超過一個(gè)預(yù)先定義的長(zhǎng)度,則可以截?cái)嘣撈?。把查詢和最后查詢?jí)520所產(chǎn)生的 片段與相關(guān)性得分一起提供于相關(guān)性反饋模塊517,以生成查詢擴(kuò)展項(xiàng)的集合,而且作為選 擇,也可生成查詢項(xiàng)權(quán)重的集合。在擴(kuò)展的查詢的第二遍處理期間,最后查詢級(jí)520產(chǎn)生一 些長(zhǎng)度適當(dāng)?shù)亩痰钠?,以及用于隨具有最高,即最佳得分的結(jié)果集合中的文檔列表一起 顯示的內(nèi)容。在一個(gè)實(shí)施例中,查詢處理系統(tǒng)包括L個(gè)并行的查詢處理子系統(tǒng),每個(gè)查詢處理 子系統(tǒng)包括針對(duì)一組文檔的相應(yīng)子集的逆索引512和記號(hào)空間資料庫524。例如,查詢處 理系統(tǒng)可以包括1000多個(gè)并行查詢處理子系統(tǒng)。所有查詢處理子系統(tǒng)可以共享相關(guān)性反 饋模塊517(圖5)。在遍歷查詢處理系統(tǒng)的第一遍期間,由并行查詢處理子系統(tǒng)的一小部 分處理查詢,而在第二遍期間,由整個(gè)查詢處理系統(tǒng)處理查詢。例如,可以把查詢處理系統(tǒng) 劃分成S個(gè)子集(例如32個(gè)子集),并且根據(jù)把雜湊函數(shù)施加到查詢的正?;陌姹镜慕Y(jié)果,把每個(gè)查詢賦予這些子集之一,然后把取模函數(shù)施加到雜湊函數(shù)所產(chǎn)生的結(jié)果??梢园?查詢處理系統(tǒng)的每個(gè)子集稱為查詢處理系統(tǒng)的“分區(qū)”,并且可以把每個(gè)查詢處理子系統(tǒng)稱 為“子分區(qū)”。查詢的第一遍處理的主要目的是,產(chǎn)生查詢擴(kuò)展項(xiàng)的集合,以及查詢項(xiàng)權(quán)重,以改 進(jìn)由查詢的第二遍處理所產(chǎn)生的查詢結(jié)果的質(zhì)量。只要在查詢處理系統(tǒng)中把文檔適當(dāng)、隨 機(jī)地在所有查詢處理子系統(tǒng)之間加以分布,則查詢僅需少數(shù)子系統(tǒng)加以處理,就可以產(chǎn)生 查詢擴(kuò)展項(xiàng)的一個(gè)集合。查詢擴(kuò)展器506使用查詢擴(kuò)展項(xiàng)產(chǎn)生擴(kuò)展的查詢樹或查詢表達(dá) 式,然后由查詢處理級(jí)(在查詢的一個(gè)第二遍處理中)對(duì)它們加以處理,如以上所描述的。 例如,可以把查詢“紐約的照片”擴(kuò)展為“紐約(照片或圖像,或者圖像或照片)”??梢詫?duì) 第二遍期間最后查詢級(jí)所產(chǎn)生的結(jié)果集合和片段進(jìn)行格式化,以由從其處接收查詢的計(jì)算 機(jī)或設(shè)備加以顯示(或者更一般地講,加以提交)。在一個(gè)實(shí)施例中,在與相繼遍不同的數(shù)據(jù)資料庫上執(zhí)行查詢的第一遍處理。例如, 針對(duì)第一遍的初始數(shù)據(jù)資料庫,可以為先前處理過的查詢的一個(gè)數(shù)據(jù)資料庫,而用于相繼 遍的數(shù)據(jù)資料庫可以為具有用于把查詢映射到該數(shù)據(jù)資料庫中的文檔的一個(gè)逆索引的文 檔集合。文檔處理服務(wù)器圖6為記號(hào)空間資料庫服務(wù)器600的實(shí)施例的方框圖。服務(wù)器600可以為獨(dú)立的 計(jì)算機(jī)系統(tǒng)或是包括多個(gè)計(jì)算機(jī)系統(tǒng)的分布式處理系統(tǒng)的一部分。通常,服務(wù)器600包括 一個(gè)或多個(gè)處理單元(CPU)604、一個(gè)或多個(gè)網(wǎng)絡(luò)或其它通信接口 608、存儲(chǔ)器602、以及用 于互連這些部件的一條或多條通信總線606。服務(wù)器600可以有選擇地包括用戶接口,例 如,顯示器和鍵盤。存儲(chǔ)器602可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失存儲(chǔ)器, 例如一個(gè)或多個(gè)磁盤存儲(chǔ)設(shè)備。存儲(chǔ)器602可以包括遠(yuǎn)離一個(gè)或多個(gè)中央處理器604的海 量存儲(chǔ)器。存儲(chǔ)器602存儲(chǔ)操作系統(tǒng)610 (例如,Linux或者Unix)、網(wǎng)絡(luò)通信模塊612、詞典 生成器614 (例如詞典生成器108)、編碼系統(tǒng)616 (例如,編碼系統(tǒng)300)、一個(gè)或多個(gè)全局詞 典618(例如,全局詞典206)、一個(gè)或多個(gè)小詞典620(例如,小詞典208)、記號(hào)空間資料庫 622(例如,記號(hào)空間資料庫112)、屬性記錄624(例如,屬性記錄表316)、以及有效范圍映 射626(例如,有效范圍映射210)。以上已經(jīng)針對(duì)圖1 5描述了這些部件中每個(gè)部件的操 作。查詢處理服務(wù)器圖7為查詢處理服務(wù)器700的實(shí)施例的方框圖。服務(wù)器700可以為獨(dú)立的計(jì)算機(jī) 系統(tǒng)或?yàn)榘ǘ鄠€(gè)計(jì)算機(jī)系統(tǒng)的分布式處理系統(tǒng)的一部分。通常,服務(wù)器700包括一個(gè)或 多個(gè)處理單元(CPU) 704、一個(gè)或多個(gè)網(wǎng)絡(luò)或其它通信接口 708、存儲(chǔ)器702、用于互連這些 部件的一條或多條通信總線706。服務(wù)器700可以有選擇地包括用戶接口,例如,顯示器和 鍵盤。存儲(chǔ)器702可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失存儲(chǔ)器,例如一個(gè)或多 個(gè)磁盤存儲(chǔ)設(shè)備。存儲(chǔ)器702可以包括遠(yuǎn)離一個(gè)或多個(gè)中央處理器704的海量存儲(chǔ)器。存儲(chǔ)器702存儲(chǔ)操作系統(tǒng)710 (例如,Linux或者Unix)、網(wǎng)絡(luò)通信模塊712、記號(hào) 空間逆索引714(例如,記號(hào)空間逆索引408)、解碼系統(tǒng)716(例如,解碼系統(tǒng)308)、一個(gè)或 多個(gè)詞典轉(zhuǎn)換表或映射718(例如,從全局詞典206和小詞典小詞典208所導(dǎo)出的)、有效范圍映射720(例如,有效范圍映射210)、DocID映射722(例如,DocID映射410)、查詢解 析器724(例如,查詢解析器504)、查詢樹726、一個(gè)或多個(gè)查詢處理器7 (例如,查詢處 理器510,514,518以及520)、屬性記錄730 (例如,屬性記錄表316)、以及記號(hào)空間資料庫 732(例如,記號(hào)空間資料庫11 。以上已經(jīng)針對(duì)圖1 5描述了這些部件中每個(gè)部件的操作。 已參照具體的實(shí)施例,解釋性地進(jìn)行以上的描述。然而,這些說明性的討論,不旨 在窮舉性地描述本發(fā)明,也不旨在把本發(fā)明限制于所公開的精確形式。鑒于以上的描述,對(duì) 本發(fā)明的許多修改與改變是可能的。這些實(shí)施例的選擇與描述,旨在充分地解釋本發(fā)明的 原理及其實(shí)際的應(yīng)用,從而可使這一技術(shù)領(lǐng)域中的其他熟練技術(shù)人員能夠?qū)Ρ景l(fā)明和不同 的實(shí)施例進(jìn)行多方面的修改,以適應(yīng)所考慮的具體應(yīng)用,從而可充分利用本發(fā)明和不同的 實(shí)施例。
      權(quán)利要求
      1.一種用于在多級(jí)查詢處理系統(tǒng)中處理查詢的方法,所述多級(jí)查詢處理系統(tǒng)具有一個(gè) 或多個(gè)處理器以及用于存儲(chǔ)一個(gè)或多個(gè)程序的存儲(chǔ)器,所述一個(gè)或多個(gè)程序由所述一個(gè)或 多個(gè)處理器運(yùn)行以執(zhí)行所述方法,所述方法包括由所述一個(gè)或多個(gè)處理器執(zhí)行查詢的第一級(jí)處理,包括響應(yīng)于一個(gè)或多個(gè)查詢項(xiàng),由所述一個(gè)或多個(gè)處理器從索引中檢索第一文檔標(biāo)識(shí)符集合;針對(duì)相應(yīng)于第一文檔標(biāo)識(shí)符集合的至少一個(gè)子集的第一壓縮文檔集合,基于查詢項(xiàng)的 存在、項(xiàng)頻度和文檔流行性中的一個(gè)或多個(gè),由所述一個(gè)或多個(gè)處理器生成相關(guān)性得分的 第一集合,并且將相關(guān)性得分的第一集合存儲(chǔ)在存儲(chǔ)器中; 由所述一個(gè)或多個(gè)處理器執(zhí)行查詢的第二級(jí)處理,包括針對(duì)第一壓縮文檔集合中的文檔,基于記號(hào)位置的列表、文檔中的查詢項(xiàng)之間的距離、 文檔中的記號(hào)的屬性以及出現(xiàn)在第一文檔集合的文檔中使用的查詢項(xiàng)周圍的文本中的一 個(gè)或多個(gè),由所述一個(gè)或多個(gè)處理器生成相關(guān)性得分的第二集合,并且將相關(guān)性得分的第 二集合存儲(chǔ)在存儲(chǔ)器中;由所述一個(gè)或多個(gè)處理器從存儲(chǔ)器讀取相關(guān)性得分的第一集合和第二集合,并且基于 相關(guān)性得分的第一集合和第二集合生成文檔的有序列表用于進(jìn)一步處理;由所述一個(gè)或多個(gè)處理器從所述文檔的有序列表中的文檔自動(dòng)地生成附加查詢項(xiàng); 由所述一個(gè)或多個(gè)處理器使用所述附加查詢項(xiàng),制定新查詢; 由所述一個(gè)或多個(gè)處理器處理所述新查詢,以從所述索引檢索第二文檔標(biāo)識(shí)符集合, 并且至少部分基于所述附加查詢項(xiàng)生成相關(guān)性得分的第三集合;以及由所述一個(gè)或多個(gè)處理器使用所述相關(guān)性得分的第三集合來選擇用于呈現(xiàn)給用戶的 頂部文檔的集合。
      2.根據(jù)權(quán)利要求1所述的方法,其中,所述相關(guān)性得分的第二集合至少基于文檔中的 記號(hào)的屬性,其中所述屬性包括文檔中的記號(hào)的字體屬性。
      3.根據(jù)權(quán)利要求1所述的方法,還包括由所述一個(gè)或多個(gè)處理器解壓縮第一壓縮文 檔集合的至少一部分,以恢復(fù)第一記號(hào)集合,其中,所恢復(fù)的第一記號(hào)集合與相應(yīng)于第一文 檔標(biāo)識(shí)符集合的第一壓縮文檔集合中的位置相關(guān)聯(lián)。
      4.根據(jù)權(quán)利要求3所述的方法,還包括由所述一個(gè)或多個(gè)處理器使用所恢復(fù)的第一記號(hào)集合,重構(gòu)第一壓縮文檔集合的一個(gè) 或多個(gè)部分。
      5.根據(jù)權(quán)利要求4所述的方法,還包括由所述一個(gè)或多個(gè)處理器把所重構(gòu)的部分在頂部文檔的集合的有序列表中呈現(xiàn)給用戶。
      6.根據(jù)權(quán)利要求1所述的方法,其中,所述相關(guān)性得分的第三集合基于在相應(yīng)于第二 文檔標(biāo)識(shí)符集合的所述壓縮文檔集合中的查詢項(xiàng)的一個(gè)或多個(gè)位置。
      7.根據(jù)權(quán)利要求1所述的方法,其中,所述第一文檔標(biāo)識(shí)符集合相應(yīng)于與存儲(chǔ)壓縮文 檔集合的記號(hào)空間資料庫中的查詢項(xiàng)相應(yīng)的記號(hào)的部位。
      8.根據(jù)權(quán)利要求1所述的方法,其中,所述檢索第一文檔標(biāo)識(shí)符集合包括針對(duì)一個(gè)或 多個(gè)查詢項(xiàng)使用所述索引來產(chǎn)生記號(hào)位置的列表,并且訪問映射來產(chǎn)生相應(yīng)于所述記號(hào)位置的文檔標(biāo)識(shí)符集合。
      9.一種多級(jí)查詢處理系統(tǒng),包括響應(yīng)于一個(gè)或多個(gè)查詢項(xiàng),從索引中檢索第一文檔標(biāo)識(shí)符集合的部件;針對(duì)相應(yīng)于第一文檔標(biāo)識(shí)符集合的至少一個(gè)子集的第一壓縮文檔集合,基于查詢項(xiàng)的 存在、項(xiàng)頻度和文檔流行性中的一個(gè)或多個(gè),生成相關(guān)性得分的第一集合,并且將相關(guān)性得 分的第一集合存儲(chǔ)在存儲(chǔ)器中的部件;執(zhí)行查詢的第二級(jí)處理的部件,包括針對(duì)第一壓縮文檔集合中的文檔,基于記號(hào)位置的列表、文檔中的查詢項(xiàng)之間的距離、 文檔中的記號(hào)的屬性以及出現(xiàn)在第一文檔集合的文檔中使用的查詢項(xiàng)周圍的文本中的一 個(gè)或多個(gè),生成相關(guān)性得分的第二集合,并且將相關(guān)性得分的第二集合存儲(chǔ)在存儲(chǔ)器中的 部件;從存儲(chǔ)器讀取相關(guān)性得分的第一集合和第二集合,并且基于相關(guān)性得分的第一集合和 第二集合生成文檔的有序列表用于進(jìn)一步處理的部件;從所述文檔的有序列表中的文檔自動(dòng)地生成附加查詢項(xiàng)的部件;使用所述附加查詢項(xiàng)制定新查詢的部件;處理所述新查詢,以從所述索引檢索第二文檔標(biāo)識(shí)符集合,并且至少部分基于所述附 加查詢項(xiàng)生成相關(guān)性得分的第三集合的部件;以及使用所述相關(guān)性得分的第三集合來選擇用于呈現(xiàn)給用戶的頂部文檔的集合的部件。
      10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述相關(guān)性得分的第二集合至少基于文檔中的 記號(hào)的屬性,其中所述屬性包括文檔中的記號(hào)的字體屬性。
      11.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括解壓縮第一壓縮文檔集合的至少一部分,以 恢復(fù)第一記號(hào)集合的部件,其中,所恢復(fù)的第一記號(hào)集合與相應(yīng)于第一文檔標(biāo)識(shí)符集合的 第一壓縮文檔集合中的位置相關(guān)聯(lián)。
      12.根據(jù)權(quán)利要求11所述的系統(tǒng),還包括使用所恢復(fù)的第一記號(hào)集合,重構(gòu)第一壓縮文檔集合的一個(gè)或多個(gè)部分的部件。
      13.根據(jù)權(quán)利要求12所述的系統(tǒng),還包括把所重構(gòu)的部分在頂部文檔的集合的有序列表中呈現(xiàn)給用戶的部件。
      14.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述相關(guān)性得分的第三集合基于在相應(yīng)于第 二文檔標(biāo)識(shí)符集合的所述壓縮文檔集合中的查詢項(xiàng)的一個(gè)或多個(gè)位置。
      15.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述第一文檔標(biāo)識(shí)符集合相應(yīng)于與存儲(chǔ)壓縮文 檔集合的記號(hào)空間資料庫中的查詢項(xiàng)相應(yīng)的記號(hào)的部位。
      16.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述檢索第一文檔標(biāo)識(shí)符集合的部件包括針 對(duì)一個(gè)或多個(gè)查詢項(xiàng)使用所述索引來產(chǎn)生記號(hào)位置的列表,并且訪問映射來產(chǎn)生相應(yīng)于所 述記號(hào)位置的文檔標(biāo)識(shí)符集合的部件。
      全文摘要
      一種用于在多級(jí)查詢處理系統(tǒng)中處理查詢的方法,所述方法包括響應(yīng)于一個(gè)或多個(gè)查詢項(xiàng)從索引中檢索第一文檔標(biāo)識(shí)符集合;針對(duì)相應(yīng)于第一文檔標(biāo)識(shí)符集合的至少一個(gè)子集的第一壓縮文檔集合,生成相關(guān)性得分的第一集合;針對(duì)第一壓縮文檔集合中的文檔,生成相關(guān)性得分的第二集合;讀取相關(guān)性得分的第一集合和第二集合,生成文檔的有序列表用于進(jìn)一步處理;從所述文檔的有序列表中的文檔自動(dòng)地生成附加查詢項(xiàng);使用所述附加查詢項(xiàng)制定新查詢;處理所述新查詢,以從所述索引檢索第二文檔標(biāo)識(shí)符集合,并且至少部分基于所述附加查詢項(xiàng)生成相關(guān)性得分的第三集合;以及使用所述相關(guān)性得分的第三集合來選擇用于呈現(xiàn)給用戶的頂部文檔的集合。
      文檔編號(hào)G06F17/30GK102142038SQ201110121210
      公開日2011年8月3日 申請(qǐng)日期2005年8月8日 優(yōu)先權(quán)日2004年8月13日
      發(fā)明者保羅.G.哈爾, 奧爾坎.瑟齊諾格魯, 杰弗里.A.迪安, 阿米塔布.K.辛加爾 申請(qǐng)人:谷歌股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1