專利名稱:用于記號(hào)空間資料庫(kù)的多級(jí)查詢處理系統(tǒng)與方法
技術(shù)領(lǐng)域:
總體上講,所公開的實(shí)施例涉及數(shù)據(jù)處理系統(tǒng)與方法,具體地講,涉及用于具有相關(guān)索引的文檔集合(以下,將其稱為“記號(hào)(token)空間資料庫(kù)”)的多級(jí)查詢處理系統(tǒng)與方法。
背景技術(shù):
信息檢索系統(tǒng)(例如,搜索引擎)使得查詢與根據(jù)文檔集(例如萬(wàn)維網(wǎng))所生成的文檔的索引相匹配。典型的逆索引(inverse index)包括每個(gè)文檔中的單詞,以及指向它們?cè)谖臋n中的部位的指針。文檔處理系統(tǒng)通過使用自動(dòng)的或手動(dòng)進(jìn)程處理從文檔集所檢索到的文檔、頁(yè)或地址的內(nèi)容,來制備倒排索引(inverted index)。文檔處理系統(tǒng)還可以把文檔的內(nèi)容或內(nèi)容的各部分存儲(chǔ)在資料庫(kù)中,以供查詢處理器在響應(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)空間資料庫(kù)的多級(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)性。
圖1為信息檢索系統(tǒng)的實(shí)施例的方框圖。
圖2為圖1的詞典生成器的實(shí)施例的概念性方框圖。
圖3A為用于記號(hào)空間資料庫(kù)的、對(duì)文檔進(jìn)行編碼的編碼系統(tǒng)的實(shí)施例的方框圖。
圖3B為用于記號(hào)空間資料庫(kù)中的、對(duì)文檔進(jìn)行解碼的解碼系統(tǒng)的實(shí)施例的方框圖。
圖3C為用于對(duì)文檔屬性進(jìn)行編碼/解碼的屬性編碼/解碼系統(tǒng)的實(shí)施例的方框圖。
圖4為用于記號(hào)空間資料庫(kù)的查詢處理系統(tǒng)的實(shí)施例的方框圖。
圖5為用于記號(hào)空間資料庫(kù)的多級(jí)查詢處理系統(tǒng)的實(shí)施例的方框圖。
圖6為記號(hào)空間資料庫(kù)服務(wù)器的實(shí)施例的方框圖。
圖7為查詢處理服務(wù)器的實(shí)施例的方框圖。
圖8A為記號(hào)化文檔資料庫(kù)的第二實(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àn)維網(wǎng))或者內(nèi)部網(wǎng)(Intranet)的一個(gè)或多個(gè)網(wǎng)絡(luò)上或在本地的用戶的計(jì)算機(jī)上執(zhí)行明確的或隱含的文檔搜索的一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)。注意,項(xiàng)“文檔”意指文檔、網(wǎng)頁(yè)、電子郵件、專用(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è)文檔資料庫(kù)106、詞典生成器108、編碼/解碼系統(tǒng)110以及記號(hào)空間資料庫(kù)112。編碼/解碼系統(tǒng)110從一個(gè)或多個(gè)文檔資料庫(kù)106中檢索文檔,將文檔解析為記號(hào),使用來自詞典生成器108的映射,把記號(hào)編碼為一種壓縮的格式,然后把編碼的記號(hào)存儲(chǔ)在記號(hào)空間資料庫(kù)112中。
“記號(hào)”可以為通常在文檔中所發(fā)現(xiàn)的任何對(duì)象,包括但不局限于,項(xiàng)、短語(yǔ)、標(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)空間資料庫(kù)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映射到它們?cè)谖臋n中的位置。從概念上講,逆索引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從文檔資料庫(kù)106中檢索文檔,并且通過把唯一全局記號(hào)標(biāo)識(shí)符(GTokenID)賦予包含在文檔中的每個(gè)唯一記號(hào),生成全局詞典206。在某些實(shí)施例中,文檔資料庫(kù)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ù)百萬(wàn)個(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ù)語(yǔ)言對(duì)文檔集合進(jìn)行分類,然后,針對(duì)每種語(yǔ)言,根據(jù)URL對(duì)文檔進(jìn)行分類,其中URL的主機(jī)名部分的字段依次反轉(zhuǎn)。例如,在根據(jù)語(yǔ)言進(jìn)行分類之后,把所有的法語(yǔ)文檔集合在一起,然后將根據(jù)URL對(duì)法語(yǔ)文檔進(jìn)行分類。當(dāng)根據(jù)URL進(jìn)行分類時(shí),每個(gè)URL最初包括一個(gè)h1.h2...hy.hz/n1/n2...的模式,其中,h1.h2...hy.hz包括URL的主機(jī)名部分,而/n1/n2代表URL的余留部分。在根據(jù)URL進(jìn)行分類之前,把URL重新映射到模式hy.hz...hy.hz/n1/n2...。例如,把URL“www.google.com/about.html”重新映射到“com.google.www/about.html”。通過在根據(jù)URL進(jìn)行分類之前反轉(zhuǎn)URL的主機(jī)名字段,可以根據(jù)文檔相互間的邏輯接近性對(duì)文檔進(jìn)行分類。因此,可以把相似類型的文檔(在針對(duì)某一具體語(yǔ)言的文檔組中)集合在一起;在針對(duì)每個(gè)文檔類型的文檔組中,把每個(gè)網(wǎng)點(diǎn)上的文檔集合在一起;在針對(duì)每個(gè)網(wǎng)點(diǎn)的文檔中,把針對(duì)網(wǎng)點(diǎn)的不同分支的文檔集合在一起;等等。
在某些實(shí)施例中,使用一種或多種群集技術(shù)對(duì)文檔進(jìn)行排序??梢允褂冒谖臋n中的項(xiàng)(term)、單詞或短語(yǔ),把文檔組織成與各種概念相關(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)的語(yǔ)言(如果存在的話)。可以根據(jù)與其中發(fā)現(xiàn)所述唯一記號(hào)的文檔相關(guān)的語(yǔ)言,來確定與該記號(hào)相關(guān)的語(yǔ)言。當(dāng)在與一種以上的語(yǔ)言相關(guān)的文檔中發(fā)現(xiàn)特定記號(hào)時(shí),可以使用任何適當(dāng)?shù)姆椒ù_定與該記號(hào)相關(guān)的語(yǔ)言。一種適當(dāng)?shù)姆椒ㄊ墙y(tǒng)計(jì)方法,該方法在解析文檔集合以便標(biāo)識(shí)唯一記號(hào)時(shí)使用。最初,把每個(gè)記號(hào)賦予其中發(fā)現(xiàn)該記號(hào)的第一文檔的語(yǔ)言,然后,針對(duì)出現(xiàn)在與賦予該記號(hào)的當(dāng)前語(yǔ)言不同的一種語(yǔ)言的文檔中的記號(hào)的每次相繼的出現(xiàn),僅當(dāng)在0和1之間隨機(jī)(偽隨機(jī))選擇的數(shù)小于1/N時(shí),該記號(hào)都被重新賦予另一種語(yǔ)言,其中,N為所述記號(hào)的出現(xiàn)的當(dāng)前次數(shù)。在其它一些實(shí)施例中,可以使用任何類似或適當(dāng)?shù)恼Z(yǔ)言賦予機(jī)制,使得語(yǔ)言與每個(gè)唯一記號(hào)相關(guān)聯(lián)。在某些實(shí)施例中,不把語(yǔ)言與代表標(biāo)點(diǎn)符號(hào)的唯一記號(hào)相關(guān)聯(lián)。在又一個(gè)實(shí)施例中,當(dāng)可以把語(yǔ)言與每個(gè)唯一記號(hào)相關(guān)聯(lián)時(shí),當(dāng)處理N個(gè)(例如256個(gè))最頻繁出現(xiàn)的記號(hào)時(shí),忽略語(yǔ)言關(guān)聯(lián)。因此,有效地忽略了與標(biāo)點(diǎn)記號(hào)相關(guān)的語(yǔ)言。
在某些實(shí)施例中,根據(jù)唯一記號(hào)出現(xiàn)的頻度,對(duì)唯一記號(hào)的列表、以及相關(guān)的頻度和語(yǔ)言信息進(jìn)行分類。作為選擇,接下來,還可以對(duì)條目進(jìn)行分類,以有助于對(duì)文檔集合進(jìn)行節(jié)省空間的編碼。例如,在一個(gè)實(shí)施例中,首先根據(jù)出現(xiàn)頻度對(duì)所有唯一記號(hào)進(jìn)行分類。然后把唯一記號(hào)的所得到的分類列表劃分成頻帶(band)。例如,頂級(jí)頻帶,即,頻帶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)行分類。首先,按語(yǔ)言對(duì)每個(gè)其它頻帶中的記號(hào)進(jìn)行分類,然后按字母順對(duì)它們進(jìn)行分類。因此,除頻帶0之外,根據(jù)語(yǔ)言,對(duì)每個(gè)頻帶中所分類的記號(hào)進(jìn)行了分組,而且在每個(gè)語(yǔ)言組中,按字母順對(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è)比特的無(wú)符號(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)賦予等于0(即,十六進(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-GTokenIDN-1)的GtokenID。可以把所有其它的GTokenID位移分配給前綴205的最后特殊的GTokenID。
在以上的討論中,把GTokenID描述為固定長(zhǎng)度值,例如32個(gè)比特的無(wú)符號(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é)值,以及把具有小于224的值的所有GTokenID編碼為三字節(jié)值。在這一方式下,與具有低出現(xiàn)頻度的記號(hào)相比,用較短長(zhǎng)度的GTokenID表示文檔集合中具有最高出現(xiàn)頻度的記號(hào)。
在以下所描述的實(shí)施例中,記號(hào)空間資料庫(kù)中填充了有固定長(zhǎng)度的LTokenID,而不是可變長(zhǎng)度的GTokenID。然而,把記號(hào)空間資料庫(kù)中的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)110使用。小詞典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賦予GTokenID時(shí),針對(duì)小詞典編制器204所有遇到的下P個(gè)唯一記號(hào),生成第二小詞典208(例如,小詞典B),并且在有效范圍映射210中產(chǎn)生第二條目,其中有效范圍映射210包括第二小詞典208對(duì)于其為有效的位置范圍的開始記號(hào)位置Start_PosB。因此,可以使用小詞典B對(duì)具有落入范圍Start_PosB~Start_PosC-1中的記號(hào)化的文檔中的一個(gè)位置的記號(hào)進(jìn)行解碼,如圖2中所示。
為了提供具體的例子,在一個(gè)實(shí)施例中,每個(gè)小詞典中的LTokenID具有值0~255,每個(gè)值均由8個(gè)比特的無(wú)符號(hào)整數(shù)加以表示,而GTokenID為32個(gè)比特的無(wú)符號(hào)整數(shù)。通過從記號(hào)位置0開始,直至標(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è)為0的LTokenID賦予列表中的第一GTokenID,把一個(gè)為1的LTokenID賦予列表中的下一個(gè)GTokenID,等等。把所得到的從LTokenID至GTokenID的映射稱為小詞典208。從Start_PosA~Start_PosB的記號(hào)位置的范圍與該小詞典相關(guān)聯(lián)。通過從緊隨與第一小詞典相關(guān)聯(lián)的最后位置的位置Start_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-1或小于F-1的值的LTokenID(在記號(hào)空間資料庫(kù)中)進(jìn)行解碼時(shí),可以根據(jù)全局詞典將其直接映射到記號(hào),而無(wú)需首先把LTokenID映射到相應(yīng)的GTokenID。
在每個(gè)小詞典208使用相同的LTokenID集合(例如0~255個(gè))。為了有助于壓縮文檔,與GTokenID(例如4個(gè)字節(jié))相比,LTokenID具有較小的寬度(例如1個(gè)字節(jié))。該寬度差(3個(gè)字節(jié))表明用于把記號(hào)化的文檔存儲(chǔ)于記號(hào)空間資料庫(kù)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)空間資料庫(kù)112中10億個(gè)字節(jié)(1GB)。
當(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)空間資料庫(kù)112中,以用于相繼的檢索。通過這一映射,把文檔資料庫(kù)106中的每個(gè)記號(hào)映射到記號(hào)空間資料庫(kù)112中的固定長(zhǎng)度(例如一個(gè)字節(jié))的LTokenID。于是,在解碼/解壓縮期間,在記號(hào)空間資料庫(kù)112中,從一個(gè)記號(hào)位置跳至另一個(gè)記號(hào)位置,而無(wú)需可能減慢解碼過程的跳躍表或等效的數(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)空間資料庫(kù)112中的固定長(zhǎng)度的LTokenID,以及訪問該文檔中針對(duì)每個(gè)記號(hào)位置的小詞典以便把LTokenID轉(zhuǎn)換成相應(yīng)的GTokenID,來完成對(duì)記號(hào)空間資料庫(kù)112中的記號(hào)化的文檔的解碼。然后,使用全局詞典206把GTokenID映射成相應(yīng)的記號(hào)(例如,文本和標(biāo)點(diǎn)),從而重構(gòu)了整個(gè)文檔或文檔的某一部分。
編碼系統(tǒng)圖3A為對(duì)記號(hào)空間資料庫(kù)的文檔進(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”的待審美國(guó)專利申請(qǐng)中,描述了適當(dāng)?shù)目勺冮L(zhǎng)度數(shù)據(jù)編碼器306的一個(gè)例子。
可以使用編碼系統(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)空間資料庫(kù)中的文檔進(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概念性地表示為A×K個(gè)比特的映射,其中,A為所編碼的屬性的數(shù)目,K為其屬性由屬性記錄318表示的記號(hào)的數(shù)目。如果A為8,K為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ù)姆椒āW鳛檫x擇,也可以對(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)空間資料庫(kù)中的同時(shí),對(duì)文檔集合中的記號(hào)的屬性進(jìn)行標(biāo)識(shí),并且對(duì)它們加以編碼,如以上所描述的。把所編碼的屬性用于一個(gè)或多個(gè)相關(guān)性得分的級(jí)別,如參照?qǐng)D5更全面地加以描述的。
文檔資料庫(kù)編碼與解碼系統(tǒng)--第二實(shí)施例圖8A和8B為一個(gè)實(shí)施例的方框圖,其中,按與以上所描述的方式略有不同的方式對(duì)一組記號(hào)化的文檔(“記號(hào)空間資料庫(kù)”)進(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ù)拇笮∠拗?。如以下將加以描述的,詞典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)空間資料庫(kù)的指針,而且針對(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)空間資料庫(kù)的查詢處理系統(tǒng)104的第一級(jí)的實(shí)施例的方框圖。查詢處理系統(tǒng)104包括全局詞典402、記號(hào)空間逆索引408、第一級(jí)查找表406以及第二級(jí)查找表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)空間資料庫(kù)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)空間資料庫(kù)中每個(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)文檔的開始資料庫(kù)位置。在第二級(jí)查找表410中,任何文檔中的最后一個(gè)記號(hào)均處于緊在下一個(gè)標(biāo)目412所標(biāo)識(shí)的開始位置之前的位置。第二級(jí)查找表410接收針對(duì)DocID的開始點(diǎn)位置Start_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)空間資料庫(kù)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、OR),以保留的標(biāo)點(diǎn)(例如,問號(hào))或者保留的項(xiàng)(term)的形式出現(xiàn)。在自然語(yǔ)言處理(NLP)系統(tǒng)的情況下,無(wú)論可以如何表達(dá)操作符,都能夠在所使用的語(yǔ)言中隱含地識(shí)別操作符(例如,介詞、連接詞、次序關(guān)系等)。第一級(jí)查詢處理器510中也可以包括其它的查詢處理,例如刪除結(jié)束單詞(例如“a”、“the”等)以及項(xiàng)干(即,去除單詞前綴)。
接下來,查詢擴(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)空間資料庫(kù)位置)的列表,并且訪問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)性得分的第一集合S1??傊浄炙惴ǜ鶕?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)空間資料庫(kù)位置的列表、以及相關(guān)性得分的第一集合S1。第二級(jí)查詢處理器514使用所述位置列表,根據(jù)文檔中所發(fā)現(xiàn)的查詢項(xiàng)的相近性或相對(duì)位置,生成相關(guān)性得分的第二集合S2。當(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)性得分的第二集合S2被用于將文檔的等級(jí)排得較高。在某些實(shí)施例中,相關(guān)性得分的第二集合S2可用于選擇作為有序列表用于呈現(xiàn)給用戶的頂部的X文檔,然后,用戶可以簡(jiǎn)單地點(diǎn)擊和跟隨指向所選擇的文檔的內(nèi)部指針。在某些實(shí)施例中,部分地根據(jù)相關(guān)性得分的第一集合S1導(dǎo)出相關(guān)性得分的第二集合S2(例如,通過根據(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)空間資料庫(kù)位置的列表,以及相關(guān)性得分的第二集合S2。作為選擇,第三級(jí)查詢處理器也可以接收相關(guān)性得分的第一集合S1以及相關(guān)性得分的第二集合S2。
某些研究表明,文檔中的項(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)性。可以用于指示相關(guān)性的其它屬性包括粗體文本、下劃線文本以及字體大小。因此,使用與所述查詢項(xiàng)相匹配的文檔中的記號(hào)的屬性,確定相關(guān)性得分的第三集合S3。參照?qǐng)D3C,為了訪問文檔中的查詢項(xiàng)的屬性(即,與查詢項(xiàng)相匹配或相關(guān)聯(lián)的記號(hào)的屬性),使用該文檔中的查詢項(xiàng)的記號(hào)位置,執(zhí)行進(jìn)入屬性表316(圖5中的522)的索引操作。更具體地講,如果由每個(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)性得分的第三集合S3可用于選擇作為有序列表向用戶提交的頂部的Y個(gè)文檔,然后,用戶可以簡(jiǎn)單地點(diǎn)擊和跟隨指向所選擇的文檔的內(nèi)部指針。在某些實(shí)施例中,部分地根據(jù)一個(gè)或多個(gè)相關(guān)性得分的第一和第二集合S1和S2導(dǎo)出相關(guān)性得分的第三集合S3,以生成呈現(xiàn)給用戶的、與/或由第四查詢級(jí)處理器520進(jìn)一步處理的文檔的有序列表。在某些實(shí)施例中,通過根據(jù)第三級(jí)查詢處理器518所產(chǎn)生的附加的得分因素,調(diào)整S2得分,產(chǎn)生S3得分。
查詢處理--級(jí)4第四查詢級(jí)處理器520從第三級(jí)查詢處理器518接收DocID的集合、相應(yīng)于所述DocID的文檔中的位置的列表、以及相關(guān)性得分的第三集合S3。第四查詢級(jí)處理器520還可以有選擇地接收相關(guān)性得分的第一與/或第二集合S1和S2。第四查詢級(jí)處理器520耦接于解碼系統(tǒng)527,接著解碼系統(tǒng)527耦接于一個(gè)或多個(gè)小詞典映射523、記號(hào)空間資料庫(kù)524以及一個(gè)或多個(gè)全局詞典映射508。以上,針對(duì)圖1和圖2,描述了小詞典映射523、記號(hào)空間資料庫(kù)524以及全局詞典映射508。
第四查詢級(jí)處理器520根據(jù)上下文生成相關(guān)性得分的第四集合S4,并且還可以為結(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)空間資料庫(kù)中的LTokenID轉(zhuǎn)換成GTokenID,然后用于把GTokenID轉(zhuǎn)換成記號(hào),如以上針對(duì)圖2所描述的。
在某些實(shí)施例中,相關(guān)性得分的第四集合S4可用于選擇作為有序列表向用戶提交的頂部的Z個(gè)文檔,然后,用戶可以簡(jiǎn)單地點(diǎn)擊和跟隨指向所選擇的文檔的內(nèi)部指針。在某些實(shí)施例中,部分地根據(jù)一個(gè)或多個(gè)相關(guān)性得分的第一、第二以及第三集合S1、S2以及S3導(dǎo)出相關(guān)性得分的第四集合S4,以生成向用戶提交的、與/或由相關(guān)性反饋模塊517進(jìn)一步加以處理的文檔的有序列表。在一個(gè)可選的實(shí)施例中,最后級(jí)查詢處理器為那些在先前查詢處理器級(jí)所產(chǎn)生的相關(guān)性得分方面具有最高得分的文檔生成片段,但不生成相關(guān)性得分的一個(gè)新的集合S4。
在某些實(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頁(yè)的偽相關(guān)性反饋算法),文檔對(duì)象模型(DOM)分段、基于頁(yè)分段的顯示(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)空間資料庫(kù)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é)果??梢园巡樵兲幚硐到y(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ù)資料庫(kù)上執(zhí)行查詢的第一遍處理。例如,針對(duì)第一遍的初始數(shù)據(jù)資料庫(kù),可以為先前處理過的查詢的一個(gè)數(shù)據(jù)資料庫(kù),而用于相繼遍的數(shù)據(jù)資料庫(kù)可以為具有用于把查詢映射到該數(shù)據(jù)資料庫(kù)中的文檔的一個(gè)逆索引的文檔集合。
文檔處理服務(wù)器圖6為記號(hào)空間資料庫(kù)服務(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)空間資料庫(kù)622(例如,記號(hào)空間資料庫(kù)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è)查詢處理器728(例如,查詢處理器510、514、518以及520)、屬性記錄730(例如,屬性記錄表316)、以及記號(hào)空間資料庫(kù)732(例如,記號(hào)空間資料庫(kù)112)。以上已經(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)中處理查詢的方法,包括響應(yīng)一個(gè)或多個(gè)查詢項(xiàng),從索引檢索第一文檔標(biāo)識(shí)符集合;針對(duì)相應(yīng)于第一文檔標(biāo)識(shí)符集合的至少一個(gè)子集的壓縮文檔集合,生成相關(guān)性得分的第一集合;解壓縮所述壓縮文檔集合的至少一部分,以恢復(fù)第一記號(hào)集合,其中,所恢復(fù)的第一記號(hào)集合與所述相應(yīng)于第一文檔標(biāo)識(shí)符集合的壓縮文檔集合中的位置相關(guān)聯(lián);以及根據(jù)所恢復(fù)的記號(hào)集合的第一集合,生成附加查詢項(xiàng);使用所述附加查詢項(xiàng),制定新查詢;以及處理所述新查詢,以從所述索引檢索第二文檔標(biāo)識(shí)符集合,并且至少部分基于所述附加查詢項(xiàng)生成相關(guān)性得分的第二集合。
2.根據(jù)權(quán)利要求1所述的方法,還包括解壓縮所述壓縮文檔集合的至少一部分,以恢復(fù)第二記號(hào)集合,其中,所恢復(fù)的第二記號(hào)集合與所述相應(yīng)于第二文檔標(biāo)識(shí)符集合的壓縮文檔集合中的位置相關(guān)聯(lián);以及使用所恢復(fù)的第二記號(hào)集合,重構(gòu)所述壓縮文檔集合的一個(gè)或多個(gè)部分。
3.根據(jù)權(quán)利要求1所述的方法,還包括把所重構(gòu)的部分隨至少部分地基于所述相關(guān)性得分的第二集合從所述壓縮文檔集合中選擇的文檔的有序列表一起呈現(xiàn)給用戶。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述相關(guān)性得分的第二集合基于相應(yīng)于第二文檔標(biāo)識(shí)符集合的所述壓縮文檔集合中的查詢項(xiàng)的一個(gè)或多個(gè)位置。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述相關(guān)性得分的第二集合基于相應(yīng)于第二文檔標(biāo)識(shí)符集合的所述壓縮文檔集合中查詢項(xiàng)之間的距離。
6.根據(jù)權(quán)利要求3所述的方法,其中,所述相關(guān)性得分的第二集合基于其中在相應(yīng)于第二文檔標(biāo)識(shí)符集合的所述壓縮文檔集合中使用查詢項(xiàng)的上下文。
7.一種在多級(jí)查詢處理系統(tǒng)中處理查詢的方法,包括響應(yīng)一個(gè)或多個(gè)查詢項(xiàng),檢索第一信息集合;根據(jù)第一信息集合,生成至少一個(gè)附加查詢項(xiàng);使用所述至少一個(gè)附加查詢項(xiàng),制定新查詢,該新查詢具有多個(gè)查詢項(xiàng);以及處理所述新查詢,從索引檢索文檔標(biāo)識(shí)符集合;針對(duì)相應(yīng)于所述文檔標(biāo)識(shí)符集合的至少一個(gè)子集的壓縮文檔集合,生成相關(guān)性得分集合;解壓縮所述壓縮文檔集合的至少一部分,以恢復(fù)記號(hào)集合,其中,所恢復(fù)的記號(hào)集合與相應(yīng)于所述文檔標(biāo)識(shí)符集合的所述壓縮文檔集合中的所述多個(gè)查詢項(xiàng)的一個(gè)或多個(gè)查詢項(xiàng)的位置相關(guān)聯(lián);以及根據(jù)所述文檔標(biāo)識(shí)符集合的至少一部分,生成文檔列表,該列表包括相應(yīng)于所恢復(fù)的記號(hào)集合的至少一部分的信息。
8.一種其上存儲(chǔ)指令的計(jì)算機(jī)可讀介質(zhì),當(dāng)多級(jí)查詢處理系統(tǒng)中的處理器執(zhí)行所述指令時(shí),導(dǎo)致處理器執(zhí)行下列操作響應(yīng)一個(gè)或多個(gè)查詢項(xiàng),從索引檢索第一文檔標(biāo)識(shí)符集合;針對(duì)相應(yīng)于第一文檔標(biāo)識(shí)符集合的至少一個(gè)子集的壓縮文檔集合,生成相關(guān)性得分的第一集合;解壓縮所述壓縮文檔集合的至少一部分,以恢復(fù)第一記號(hào)集合,其中,所恢復(fù)的第一記號(hào)集合與相應(yīng)于第一文檔標(biāo)識(shí)符集合的所述壓縮文檔集合中的位置相關(guān)聯(lián);以及根據(jù)所恢復(fù)的記號(hào)集合的第一集合,生成附加查詢項(xiàng);使用所述附加查詢項(xiàng),制定新查詢;以及處理所述新查詢,以從所述索引檢索第二文檔標(biāo)識(shí)符集合,并且至少部分基于所述附加查詢項(xiàng)生成相關(guān)性得分的第二集合。
9.一種多級(jí)查詢處理系統(tǒng),包括用于響應(yīng)一個(gè)或多個(gè)查詢項(xiàng),從索引檢索第一文檔標(biāo)識(shí)符集合的部件;用于針對(duì)相應(yīng)于第一文檔標(biāo)識(shí)符集合的至少一個(gè)子集的壓縮文檔集合,生成相關(guān)性得分的第一集合的部件;用于解壓縮所述壓縮文檔集合的至少一部分,以恢復(fù)第一記號(hào)集合的部件,其中,所恢復(fù)的第一記號(hào)集合與相應(yīng)于第一文檔標(biāo)識(shí)符集合的所述壓縮文檔集合中的位置相關(guān)聯(lián);以及用于根據(jù)所恢復(fù)的記號(hào)集合的第一集合,生成附加查詢項(xiàng)的部件;用于使用所述附加查詢項(xiàng),制定新查詢的部件;以及用于處理所述新查詢,從所述索引檢索第二文檔標(biāo)識(shí)符集合,并且至少部分基于所述附加查詢項(xiàng)生成相關(guān)性得分的第二集合的部件。
全文摘要
一種多級(jí)查詢處理系統(tǒng)與方法,該多級(jí)查詢處理系統(tǒng)與方法通過一個(gè)多層映射方案所簡(jiǎn)化的遞增的文檔重構(gòu),允許多級(jí)查詢記分,包括“片段”生成。在多級(jí)查詢處理系統(tǒng)的一個(gè)或多個(gè)級(jí),使用一個(gè)相關(guān)性得分集合,選擇作為一個(gè)有序列表向用戶提交的文檔的一個(gè)子集??梢圆糠值貜亩嗉?jí)查詢處理系統(tǒng)的先前級(jí)中所確定的相關(guān)性得分的一個(gè)或多個(gè)集合中導(dǎo)出相關(guān)性得分集合。在某些實(shí)施例中,多級(jí)查詢處理系統(tǒng)能夠一或多遍地執(zhí)行一個(gè)用戶查詢,并且能夠使用來自每個(gè)遍的信息,擴(kuò)展用戶查詢,以在相繼遍中用于改進(jìn)有序列表中的文檔的相關(guān)性。
文檔編號(hào)G06F17/30GK101036143SQ200580034128
公開日2007年9月12日 申請(qǐng)日期2005年8月8日 優(yōu)先權(quán)日2004年8月13日
發(fā)明者杰弗里·A·迪安, 保羅·G·哈爾, 奧爾坎·瑟齊諾格魯, 阿米塔布·K·辛加爾 申請(qǐng)人:谷歌股份有限公司