具體實(shí)施中,每個(gè)關(guān)鍵字對應(yīng)的索引結(jié)構(gòu)在一般情況下如圖3所示。
[0073] LocateX:記錄置1位是在位圖中的第幾個(gè)位置,每個(gè)位置占用的空間是可以表示 位圖容量的二進(jìn)制位數(shù),例如容量為50000位,則需要2個(gè)字節(jié)來表示locate。
[0074] baselnfo :基礎(chǔ)信息,即頭部信息,有如下內(nèi)容
[0075] CN 104572828 A 卩兀切~P 6/8頁
【主權(quán)項(xiàng)】
1. 一種基于空間位圖模型的輔助索引方法,其特征在于,包括w下步驟: 步驟1;從日志文件生產(chǎn)隊(duì)列里獲取當(dāng)前的日志文件及其文件編號,并將該日志文件 從日志文件生產(chǎn)隊(duì)列中刪除,每個(gè)所述日志文件均包括多個(gè)關(guān)鍵字,獲取當(dāng)前日志文件中 的所有關(guān)鍵字; 步驟2;如果當(dāng)前日志文件中的所有的關(guān)鍵字均處理完畢,執(zhí)行步驟10,否則,從未處 理的關(guān)鍵字中選擇任一關(guān)鍵字作為當(dāng)前關(guān)鍵字并執(zhí)行步驟3 ; 步驟3;對當(dāng)前關(guān)鍵字做檢測,如果當(dāng)前關(guān)鍵字沒有出現(xiàn)在索引數(shù)據(jù)庫中,執(zhí)行步驟4, 如果當(dāng)前關(guān)鍵字出現(xiàn)在索引數(shù)據(jù)庫中、但插入索引空間的最大的文件編號小于索引范圍的 起始位,將當(dāng)前關(guān)鍵字的索引信息從索引數(shù)據(jù)庫中刪除,執(zhí)行步驟4 ;否則,執(zhí)行步驟5 ; 步驟4;重新在索引數(shù)據(jù)庫中為當(dāng)前關(guān)鍵字申請索引空間,在索引空間中插入當(dāng)前關(guān) 鍵字對應(yīng)的日志文件的文件編號,并記錄文件編號的偏移量,并在索引數(shù)據(jù)庫中記錄當(dāng)前 插入索引空間的文件編號,執(zhí)行步驟2 ; 步驟5 ;令用于記錄臨時(shí)有效文件范圍的臨時(shí)有效文件范圍指針指向當(dāng)前關(guān)鍵字的索 引空間,如果當(dāng)前關(guān)鍵字的索引空間中實(shí)際有效文件范圍小于索引空間的預(yù)定臨界值,執(zhí) 行步驟6,否則,執(zhí)行步驟7; 步驟6 ;將有效文件范圍內(nèi)的所有索引信息保存到臨時(shí)有效文件范圍中,執(zhí)行步驟7 ; 步驟7;如果待置位的文件編號在索引范圍的起始位與插入索引空間的最大的文件編 號的范圍內(nèi),在臨時(shí)有效文件范圍內(nèi)查找待置位的文件編號的插入位置,利用順序后移指 針記錄查找到的插入位置及偏移量的信息,如果待置位的文件編號大于插入索引空間的最 大的文件編號,則直接將待置位的文件編號的偏移量賦值給順序后移指針,令插入索引空 間的最大的文件編號更新為待置位的文件編號; 步驟8 ;將臨時(shí)有效文件范圍指針與順序后移指針整合成新的索引空間的信息; 步驟9:如果整合后的索引空間的信息里出現(xiàn)了S個(gè)關(guān)于偏移量的單增區(qū)間,則刪除 其中第一個(gè)形成的單增區(qū)間,保留最后兩個(gè)單增區(qū)間,執(zhí)行步驟2 ; 步驟10 ;結(jié)束處理。
2. 根據(jù)權(quán)利要求1所述的基于空間位圖模型的輔助索引方法,其特征在于,所述步驟4 中還包括:令當(dāng)前關(guān)鍵字的用于記錄最后一個(gè)置位位置的末位索引指針和當(dāng)前單增區(qū)間的 用于記錄最靠近索引空間結(jié)束位的置位位置的末位索引指針都指向新插入的偏移量的位 置。
3. 根據(jù)權(quán)利要求1所述的基于空間位圖模型的輔助索引方法,其特征在于,在索引空 間中插入當(dāng)前關(guān)鍵字對應(yīng)的日志文件的文件編號具體為,在索引空間中將表示文件編號的 位進(jìn)行置位。
4. 根據(jù)權(quán)利要求1所述的基于空間位圖模型的輔助索引方法,其特征在于,所述步驟5 中的索引空間的預(yù)定臨界值為有效文件范圍與容量系數(shù)的乘積。
5. -種基于空間位圖模型的輔助索引系統(tǒng),其特征在于;包括獲取模塊(1)、判斷模 塊(2)、檢測模塊(3)、插入模塊(4)、指向模塊巧)、保存模塊化)、記錄模塊(7)、整合模塊 巧)、刪除模塊(9)和結(jié)束模塊(10); 所述獲取模塊(1),用于從日志文件生產(chǎn)隊(duì)列里獲取當(dāng)前的日志文件及其文件編號,并 將該日志文件從日志文件生產(chǎn)隊(duì)列中刪除,每個(gè)所述日志文件均包括多個(gè)關(guān)鍵字,獲取當(dāng) 前日志文件中的所有關(guān)鍵字; 所述判斷模塊(2),用于如果當(dāng)前日志文件中的所有的關(guān)鍵字均處理完畢,執(zhí)行結(jié)束模 塊(10),否則,從未處理的關(guān)鍵字中選擇任一關(guān)鍵字作為當(dāng)前關(guān)鍵字并執(zhí)行檢測模塊(3); 所述檢測模塊(3),用于對當(dāng)前關(guān)鍵字做檢測,如果當(dāng)前關(guān)鍵字沒有出現(xiàn)在索引數(shù)據(jù)庫 中,執(zhí)行插入模塊(4),如果當(dāng)前關(guān)鍵字出現(xiàn)在索引數(shù)據(jù)庫中、但上一次插入的文件編號小 于索引范圍的起始位,將當(dāng)前關(guān)鍵字的索引信息從索引數(shù)據(jù)庫中刪除,執(zhí)行插入模塊(4); 否則,執(zhí)行指向模塊巧); 所述插入模塊(4),用于重新在索引數(shù)據(jù)庫中為當(dāng)前關(guān)鍵字申請索引空間,在索引空間 中插入當(dāng)前關(guān)鍵字對應(yīng)的日志文件的文件編號、并記錄文件編號的偏移量,并在索引數(shù)據(jù) 庫中記錄當(dāng)前插入索引空間的文件編號,執(zhí)行判斷模塊(2); 所述指向模塊巧),用于令用于記錄臨時(shí)有效文件范圍的臨時(shí)有效文件范圍指針指向 當(dāng)前關(guān)鍵字的索引空間,如果當(dāng)前關(guān)鍵字的索引空間中實(shí)際有效文件范圍小于索引空間的 預(yù)定臨界值,執(zhí)行保存模塊化),否則,執(zhí)行記錄模塊(7); 所述保存模塊化),用于將有效文件范圍內(nèi)的所有索引信息保存到臨時(shí)有效文件范圍 中,執(zhí)行記錄模塊(7); 所述記錄模塊(7),用于如果待置位的文件編號在索引范圍的起始位與插入索引空間 的最大的文件編號的范圍內(nèi),在臨時(shí)有效文件范圍內(nèi)查找待置位的文件編號的插入位置, 利用順序后移指針記錄查找到的插入位置及偏移量的信息,如果待置位的文件編號大于插 入索引空間的最大的文件編號,則直接將待置位的文件編號的偏移量賦值給順序后移指 針,令插入索引空間的最大的文件編號更新為待置位的文件編號; 所述整合模塊巧),用于將臨時(shí)有效文件范圍指針與順序后移指針整合成新的索引空 間的信息; 所述刪除模塊巧),用于如果整合后的索引空間的信息里出現(xiàn)了 S個(gè)關(guān)于偏移量的單 增區(qū)間,則刪除其中第一個(gè)形成的單增區(qū)間,保留最后兩個(gè)單增區(qū)間,執(zhí)行判斷模塊(2); 所述結(jié)束模塊(10),用于結(jié)束處理。
6. 根據(jù)權(quán)利要求5所述的基于空間位圖模型的輔助索引系統(tǒng),其特征在于,所述插入 模塊(4)中還包括;令當(dāng)前關(guān)鍵字的用于記錄最后一個(gè)置位位置的末位索引指針和當(dāng)前單 增區(qū)間的用于記錄最靠近索引空間結(jié)束位的置位位置的末位索引指針都指向新插入的偏 移量的位置。
7. 根據(jù)權(quán)利要求5所述的基于空間位圖模型的輔助索引系統(tǒng),其特征在于,所述插入 模塊(4)中在索引空間中插入當(dāng)前關(guān)鍵字對應(yīng)的日志文件的文件編號具體為,在索引空間 中將表示文件編號的位進(jìn)行置位。
8. 根據(jù)權(quán)利要求5所述的基于空間位圖模型的輔助索引系統(tǒng),其特征在于,所述指向 模塊巧)中的索引空間的預(yù)定臨界值為有效文件范圍與容量系數(shù)的乘積。
【專利摘要】本發(fā)明涉及一種基于空間位圖模型的輔助索引方法及系統(tǒng),包括以下步驟:獲取日志文件、文件編號及其中的關(guān)鍵字;選擇任一關(guān)鍵字作為當(dāng)前關(guān)鍵字;對當(dāng)前關(guān)鍵字做檢測;在重新申請的索引空間中插入當(dāng)前的文件編號;判斷當(dāng)前關(guān)鍵字的索引空間中實(shí)際有效文件范圍是否小于索引空間的預(yù)定臨界值;保存有效文件范圍內(nèi)的所有索引信息;利用順序后移指針記錄插入位置及偏移量的信息;將臨時(shí)有效文件范圍指針與順序后移指針整合成新的索引空間的信息;判斷整合后的索引空間的信息里是否出現(xiàn)了三個(gè)關(guān)于偏移量的單增區(qū)間;結(jié)束處理。本發(fā)明能夠節(jié)省內(nèi)存空間,在置位率較低或者插入位置較靠近最大更新位置時(shí)效率較高,并且能夠進(jìn)行空間動態(tài)調(diào)整。
【IPC分類】G06F17-30
【公開號】CN104572828
【申請?zhí)枴緾N201410743826
【發(fā)明人】李波, 王卓, 陳明雨, 古井子, 張金超, 王偉平, 孟丹
【申請人】中國科學(xué)院信息工程研究所
【公開日】2015年4月29日
【申請日】2014年12月8日