專(zhuān)利名稱(chēng):倒排索引壓縮的預(yù)處理方法
倒排索引壓縮的預(yù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及倒排索引壓縮領(lǐng)域,特別是涉及倒排索引壓縮的預(yù)處理方法。背景技術(shù):
全文搜索引擎中使用最廣泛的數(shù)據(jù)結(jié)構(gòu)是倒排索引。倒排索引包含兩個(gè)主要部 分字典和倒排列表。其中字典為關(guān)鍵詞和倒排列表之間建立一一對(duì)應(yīng)關(guān)系,而一個(gè)關(guān)鍵詞 的倒排列表由一系列稱(chēng)為張貼的基本單元組成。給定關(guān)鍵詞,其張貼中可能含有該關(guān)鍵詞 出現(xiàn)的網(wǎng)頁(yè)的文檔標(biāo)識(shí)符(稱(chēng)為docID)、頻率和位置等信息,也可能只含有該關(guān)鍵詞出現(xiàn) 的網(wǎng)頁(yè)的docID。在本發(fā)明中,我們假設(shè)每個(gè)倒排列表由一系列docID組成。全文搜索引擎不斷接收用戶查詢請(qǐng)求,對(duì)查詢請(qǐng)求進(jìn)行分詞得到若干關(guān)鍵詞,然 后通過(guò)倒排索引中的字典找到與所有關(guān)鍵詞對(duì)應(yīng)的倒排列表,最后對(duì)它們進(jìn)行集合歸并, 并將歸并結(jié)果按某種方式返回給用戶。隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,互聯(lián)網(wǎng)上的網(wǎng)頁(yè)越來(lái) 越多,倒排列表越來(lái)越長(zhǎng),其中的docID值也越來(lái)越大,使得倒排索引集合越來(lái)越大。主流 搜索引擎通常將倒排索引壓縮保存(主要是壓縮其中的倒排列表),以減少存儲(chǔ)空間,更好 地利用傳輸帶寬,降低系統(tǒng)I/O壓力。參閱
圖1,示出了倒排索引壓縮流程,具體步驟如下所述步驟S101、讀取計(jì)算機(jī)存儲(chǔ)器中待壓縮的倒排索引。步驟S102、對(duì)倒排索引,使用某種方法進(jìn)行壓縮。步驟S103、將壓縮后的數(shù)據(jù)存入計(jì)算機(jī)存儲(chǔ)器。倒排列表中的docID值是非負(fù)整數(shù),通常較大。為了達(dá)到理想的壓縮比,我們必須 對(duì)倒排列表進(jìn)行預(yù)處理,將其轉(zhuǎn)化成等價(jià)的包含較小元素的列表,然后對(duì)上述列表進(jìn)行壓 縮。倒排列表中的docID值呈升序,相鄰docID的差值(稱(chēng)為d-gap)非負(fù),且相對(duì)于docID 值較小。現(xiàn)有的倒排索引壓縮方法都是基于壓縮等價(jià)的d-gap列表,以達(dá)到理想的壓縮比。參閱圖2,示出了現(xiàn)有的倒排索引壓縮方法的預(yù)處理方法(稱(chēng)為d-gap預(yù)處理方 法)的流程,具體步驟如下所述步驟S201、對(duì)每個(gè)倒排列表,求相鄰docID的差值,得到與該倒排列表等價(jià)的 d-gap列表。對(duì)倒排索引預(yù)處理后,可以采用任意壓縮方法對(duì)與倒排列表等價(jià)的列表進(jìn)行壓縮。參閱圖3,示出了 PForDelta (簡(jiǎn)稱(chēng)為PFD)方法的壓縮流程,具體步驟如下所述步驟S301、將待壓縮列表劃分成等長(zhǎng)的段,對(duì)每段選取最小的整數(shù)b,其中b是0 與docID位寬之間的非負(fù)整數(shù),使段內(nèi)大于等于2b的元素的比例少于預(yù)設(shè)值。段長(zhǎng)作為參 數(shù)可調(diào),為了達(dá)到最好的壓縮比,一般取為2的冪,如1觀、256等。我們把大于等于2b的那 部分元素稱(chēng)為異常點(diǎn),異常點(diǎn)的比例的上限作為預(yù)設(shè)值可調(diào),如可設(shè)為10%。步驟S302、對(duì)每段以b位存儲(chǔ)每個(gè)小于2b的元素。步驟S303、對(duì)每段以b位存儲(chǔ)相鄰異常點(diǎn)的偏移。這相當(dāng)于將異常點(diǎn)以鏈表的方式組織起來(lái)了。步驟S304、對(duì)每段壓縮所有異常點(diǎn)的值。這里可以簡(jiǎn)單地以docID位寬存儲(chǔ)異常 點(diǎn)的值,也可以使用壓縮方法(如S16)對(duì)異常點(diǎn)進(jìn)一步壓縮。PFD方法中,當(dāng)相鄰異常點(diǎn)的偏移大于等于2b時(shí),它們之間的某些元素(小于2b) 要強(qiáng)制變?yōu)楫惓|c(diǎn),這使得壓縮比下降。為了提高壓縮比,可以將異常點(diǎn)分成低b位和高若 干位兩部分,低b位與非異常點(diǎn)一起存儲(chǔ),高若干位以及相鄰異常點(diǎn)的偏移單獨(dú)處理,這種 改進(jìn)方法稱(chēng)為NewPFD方法。顯然壓縮比是倒排索引壓縮方法好壞的一個(gè)考量指標(biāo);另外,壓縮只需要離線一 次完成即可,而解壓是在線頻繁被調(diào)用的,因此解壓速度是另外一個(gè)考量指標(biāo)。PFD方法可 以達(dá)到非常好的壓縮比,但是將異常點(diǎn)組織成鏈表的方式使得并行解壓效率低下;所有基 于d-gap預(yù)處理方法的壓縮方法,解壓過(guò)程中都需要對(duì)d-gap列表求前綴和來(lái)恢復(fù)docID, 不允許隨機(jī)訪問(wèn)docID值(因?yàn)樗蕾?lài)于它的前驅(qū)的值),這使得并行解壓效率低下,且不 適合與集合歸并方法結(jié)合。
發(fā)明內(nèi)容本發(fā)明的目的是針對(duì)現(xiàn)有的基于d-gap預(yù)處理方法的倒排索引壓縮方法的并行 解壓效率低下、不適合與集合歸并方法結(jié)合的不足,提供一種新型的基于線性回歸的倒排 索引壓縮的預(yù)處理方法。本發(fā)明提供的倒排索引壓縮的預(yù)處理方法,包括步驟1、對(duì)每個(gè)倒排列表,以docID的索引Xi為橫坐標(biāo)、值yi為縱坐標(biāo)作二維散 點(diǎn)圖,Xi、Yi都是非負(fù)整數(shù),其中i = 1,. . .,η,η為正整數(shù),基于最小二乘法生成一條線
性回歸直線
權(quán)利要求
1.一種倒排索引壓縮的預(yù)處理方法,其特征在于,包括(1)對(duì)每個(gè)倒排列表,以docID的索引Xi為橫坐標(biāo)、值yi為縱坐標(biāo)作二維散點(diǎn)圖,Xi、 Yi都是非負(fù)整數(shù),其中i = 1,...,η,η為正整數(shù),基于最小二乘法生成一條線性回歸直1 y = f (χ) = α + β χ, )3 = -XXyi-y) ^xi-~xf,—-其中;=丄,(=i/ /=1α=γ-μχ ,η (=1―丄 >,,使得圖中所有點(diǎn)(XiA)到該直線的豎直離差yrf (Xi)的平方和 (只_/(x,))2 η =1 /=1最小,得到與該倒排列表等價(jià)的豎直離差列表;⑵對(duì)每個(gè)豎直離差列表,將所有豎直離差yi-f (Xi)向上取整記為「少/(x,y|,得到與 該豎直離差列表等價(jià)的整數(shù)離差列表;(3)對(duì)每個(gè)整數(shù)離差列表,求出最小值記為mill,11^,-/(1,;) ,同時(shí)將所有整數(shù)離差「只-/(Xi)I減去這個(gè)最小值記為「只-/(χ;)]-πι η,,得到與該整數(shù)離差列表等價(jià)的非負(fù)整數(shù)離差列表。
2.如權(quán)利要求1所述的方法,其特征在于,步驟(3)中對(duì)每個(gè)整數(shù)離差列表非負(fù)化還可 以是對(duì)每個(gè)整數(shù)離差列表,若整數(shù)離差-/(x,)>0,則將其左移一位記為 ι,若整數(shù)離差[V,< 0,則將其絕對(duì)值左移一位并將最低位置為1記 為(I「只-/(χ,)1| ι)|ι,得到與該整數(shù)離差列表等價(jià)的非負(fù)整數(shù)離差列表。
3.如權(quán)利要求1或2所述的方法,其特征在于,在步驟(1)中對(duì)每個(gè)倒排列表線性回歸 之后,還包括將每個(gè)豎直離差列表劃分成等長(zhǎng)的段。
4.如權(quán)利要求1或2所述的方法,其特征在于,在步驟(1)中對(duì)每個(gè)倒排列表線性回歸 之前,還包括將每個(gè)倒排列表劃分成等長(zhǎng)的段。
5.如權(quán)利要求1或2所述的方法,其特征在于,在步驟(1)中對(duì)每個(gè)倒排列表線性回歸 之前,還包括根據(jù)docID的高h(yuǎn)位將每個(gè)倒排列表劃分成2h個(gè)Hash段,其中h是0與docID位寬 之間的非負(fù)整數(shù)。
全文摘要
一種倒排索引壓縮的預(yù)處理方法。所述的倒排索引壓縮的預(yù)處理方法包括對(duì)每個(gè)倒排列表,以docID的索引為橫坐標(biāo)、值為縱坐標(biāo)作二維散點(diǎn)圖,基于最小二乘法生成一條線性回歸直線,使得圖中所有點(diǎn)到該直線的豎直離差的平方和最小,得到與該倒排列表等價(jià)的豎直離差列表;對(duì)每個(gè)豎直離差列表,將所有豎直離差向上取整,得到與該豎直離差列表等價(jià)的整數(shù)離差列表;對(duì)每個(gè)整數(shù)離差列表,求出最小值,同時(shí)將所有整數(shù)離差減去這個(gè)最小值,得到與該整數(shù)離差列表等價(jià)的非負(fù)整數(shù)離差列表?;诒景l(fā)明的壓縮算法具有較高的壓縮比,提高了并行解壓效率,可以更好地與集合歸并方法結(jié)合。
文檔編號(hào)G06F17/30GK102081659SQ201110007170
公開(kāi)日2011年6月1日 申請(qǐng)日期2011年1月14日 優(yōu)先權(quán)日2011年1月14日
發(fā)明者劉曉光, 吳迪, 張帆, 敖耐勇, 王剛 申請(qǐng)人:南開(kāi)大學(xué)