两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于HBase的更新增量索引的方法

文檔序號:6536294閱讀:986來源:國知局
一種基于HBase的更新增量索引的方法
【專利摘要】本發(fā)明公開了一種基于HBase的更新增量索引的方法,包括以下步驟:通過待更新文檔D的標識符,從HBase索引庫中獲取待更新文檔D的歷史內(nèi)容C0;解析歷史內(nèi)容C0,獲取其全部術(shù)語的前置表FT0;解析待更新文檔D的當前內(nèi)容C1,獲取其全部術(shù)語的前置表FT1;遍歷前置表FT1,對FT1中每個術(shù)語t,結(jié)合FT0進行判斷,修改前置表FT1和FT0的內(nèi)容,將需要刪除的術(shù)語保留在前置表FT0中,將需要增加或更新的術(shù)語保留在FT1中;將FT0中的所有術(shù)語t從HBase索引庫中刪除;將FT1中的所有術(shù)語提交到HBase索引庫進行更新;將待更新文檔D的內(nèi)容替換為C1,完成待更新文檔的索引更新。
【專利說明】—種基于HBase的更新增量索引的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種在HBase (—個分布式的、面向列的開源數(shù)據(jù)庫,支持百萬列上億行數(shù)據(jù)的存儲)基礎(chǔ)上對增量索引內(nèi)容進行更新的方法,主要解決目前對增量索引的更新效率低的問題。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,信息系統(tǒng)的中存儲的文本數(shù)量日益龐大,為了從中查找所需信息,必須構(gòu)建索引。當需要索引的數(shù)據(jù)量極大時,單個計算機提供的存儲容量無法滿足索引的存儲需求,所以必須使用分布式的計算與存儲環(huán)境滿足需求。一種解決方法是采用基于HBase的倒排索引技術(shù)實現(xiàn)對不斷增加的數(shù)據(jù)構(gòu)建增量索引,另外,隨著時間的積累,部分被索引的數(shù)據(jù)會發(fā)生變化,需要將增量索引系統(tǒng)中的索引數(shù)據(jù)相應的進行更新。因此,如何有效的對不斷變化的內(nèi)容更新其增量索引,滿足用戶在檢索時對索引內(nèi)容及時性的需求,成了亟待解決的難題。
[0003]針對如何有效地構(gòu)建數(shù)據(jù)索引以及存儲和檢索,以下專利和論文提供了不同的技術(shù)方案:
[0004]文獻1.一種全文檢索系統(tǒng)的索引在線更新方法(200610112800.8);
[0005]文 獻 2.Antonopoulos P, Konstantinou I, Tsoumakos D, et al.EfficientUpdates for Web-Scale Indexes over the Cloud[C]:1EEE, 2012:135-142.;
[0006]文獻I將索引庫按照文檔變更的頻繁程度劃分為主索引庫與輔助索引庫兩部分,其中主索引庫由占絕大多數(shù)的很少改變的文檔組成,輔助索引庫由經(jīng)常改變的少數(shù)文檔組成。在更新索引時,不直接對主索引庫進行更新,而是將索引的新增、刪除與更新操作保存在輔助索引庫中,當輔助索引庫的文件大小或數(shù)量超過預先設(shè)置的閾值時,批量的將輔助索引庫中的所有索引操作合并到主索引庫中,或者按照系統(tǒng)的繁忙程度,在系統(tǒng)空閑時進行合并操作。采用這種方式,可以避免索引更新操作對主索引庫大量讀寫造成的性能下降,保證索引服務持續(xù)可用。
[0007]文獻2通過分析索引更新的操作的細節(jié),發(fā)現(xiàn)更新索引時,其操作具有明顯的局部性,不用將一個文檔的所有術(shù)語都進行更新,只需要對發(fā)生變化的術(shù)語進行更新即可,避免了不必要的索引刪除與新增操作。而發(fā)現(xiàn)變化的術(shù)語更新的步驟可以通過對比待更新文檔的新舊前置表實現(xiàn),不需要對文檔原文進行遍歷對比。采用這種方式,可以將索引更新的細節(jié)操作數(shù)量顯著降低,提高索引更新的效率。
[0008]以上文獻所述方法主要存在以下問題:文獻I沒有考慮待更新文檔數(shù)據(jù)持續(xù)增加時,輔助索引庫占用的存儲空間將會顯著提升,占用大量額外的存儲空間,當索引數(shù)據(jù)的規(guī)模極大時,輔助索引庫受限于單機的內(nèi)存容量,無法保存更多索引更新;當總索引數(shù)量超過一定程度時,合并索引的效率會發(fā)生顯著下降,不適應當前海量數(shù)據(jù)資源的索引更新;索引的更新過程的一段時期內(nèi),同時存在兩個不同的索引版本,如輔助索引庫發(fā)生異常,則會丟失索引更新。文獻2在實現(xiàn)索引更新時,需要保存待索引文檔的前置表,而保存前置表需要占用和索引同樣大小的存儲空間,造成存儲浪費;而從索引中重新生成前置表,則需要掃描整個索引庫,十分耗費時間。

【發(fā)明內(nèi)容】

[0009]本發(fā)明的目的在于提出一種新的可提高更新效率的索引更新方法,以解決【背景技術(shù)】的方法中不適合處理海量數(shù)據(jù)索引、額外占用大量存儲空間以及整體更新速度慢的問題,。
[0010]為了達到以上目的,本發(fā)明是采取如下技術(shù)方案予以實現(xiàn)的:
[0011]一種基于HBase的更新增量索引的方法,其特征在于,包括下述步驟:
[0012](I)從HBase索引庫中獲取待更新文檔D的歷史內(nèi)容C。
[0013]待更新文檔D的歷史內(nèi)容在HBase索引庫中已經(jīng)存在,包括其內(nèi)容文本與內(nèi)容文本的索引,通過待更新文檔D的標識符,從HBase索引庫中讀取其歷史內(nèi)容;
[0014](2)解析待更新文檔D的歷史內(nèi)容Ctl,獲取Ctl的前置表FTtl ;
[0015](3)解析待更新文檔D的當前內(nèi)容C1,獲取C1的前置表FT1 ;
[0016](4)遍歷C1的前置表FT1,對FT1中每個術(shù)語t,結(jié)合FTtl進行判斷,修改前置表FTi和FTtl的內(nèi)容,具體方法如下:
[0017]判斷FTtl中是否存在術(shù)語t,分別進行如下處理:
[0018]a、如果不存在,則繼續(xù)判斷FT1的下一個術(shù)語;
[0019]b、如果存在,則判斷該術(shù)語t的出現(xiàn)頻率出現(xiàn)位置與FTtl中術(shù)語t的出現(xiàn)頻率出現(xiàn)位置是否都相同,分別進行如下處理:
[0020]1、如果都相同,則將該術(shù)語t以及t的出現(xiàn)頻率出現(xiàn)位置從FTjP FT1中刪除;
[0021]i1、如果任一不相同,則將該術(shù)語t以及出現(xiàn)頻率出現(xiàn)位置從FTtl中刪除;
[0022](5)將FTtl中的所有術(shù)語t從HBase索引庫中刪除
[0023]步驟(4)執(zhí)行完畢后,F(xiàn)T0中的全部術(shù)語都是待更新文檔D的當前內(nèi)容C1中不再存在的術(shù)語,所以更新時應從HBase索引庫中刪除這些術(shù)語對應的索引信息,在HBase索引庫中,以FTtl中的術(shù)語t作為主鍵,以待索引文檔D的標識符作為列字段,在HBase索引庫中進行查詢,將對應位置的索引信息刪除;
[0024](6)將FT1中的所有術(shù)語提交到HBase索引庫進行更新
[0025]步驟(4)執(zhí)行完畢后,F(xiàn)T1中的全部術(shù)語都是待更新文檔D的當前內(nèi)容C1對比歷史內(nèi)容Ctl發(fā)生變化的術(shù)語,所以更新時應將這些術(shù)語的信息提交給HBase索引庫,更新對應術(shù)語的索引信息,更新索引時,在HBase索引庫中,以FT1中的術(shù)語t作為主鍵,以待索引文檔D作為列字段在HBase索引庫中進行查詢,將對應位置的索引信息替換為FT1中術(shù)語t的出現(xiàn)頻率與出現(xiàn)位置;
[0026](7)將待更新文檔D的內(nèi)容替換為C:。
[0027]上述方法中,步驟(2)、(3)中所述的前置表FTc^FT1是一種實現(xiàn)倒排索引的列表數(shù)據(jù)結(jié)構(gòu),其每行有3列,其內(nèi)容格式為:
[0028]
【權(quán)利要求】
1.一種基于HBase的更新增量索引的方法,其特征在于,包括下述步驟: (1)從HBase索引庫中獲取待更新文檔D的歷史內(nèi)容Ctl 待更新文檔D的歷史內(nèi)容在HBase索引庫中已經(jīng)存在,包括其內(nèi)容文本與內(nèi)容文本的索引,通過待更新文檔D的標識符,從HBase索引庫中讀取其歷史內(nèi)容; (2)解析待更新文檔D的歷史內(nèi)容Ctl,獲取Ctl的前置表FTtl; (3)解析待更新文檔D的當前內(nèi)容C1,獲取C1的前置表FT1; (4)遍歷C1的前置表FT1,對FT1中每個術(shù)語t,結(jié)合FTtl進行判斷,修改前置表FT1和FT0的內(nèi)容,具體方法如下: 判斷FTtl中是否存在術(shù)語t,分別進行如下處理: a、如果不存在,則繼續(xù)判斷FT1的下一個術(shù)語; b、如果存在,則判斷該術(shù)語t的出現(xiàn)頻率出現(xiàn)位置與FTtl中術(shù)語t的出現(xiàn)頻率出現(xiàn)位置是否都相同,分別進行如下處理: 1、如果都相同,則將該術(shù)語t以及t的出現(xiàn)頻率出現(xiàn)位置從FTtl和FT1中刪除; i1、如果任一不相同,則將該術(shù)語t以及出現(xiàn)頻率出現(xiàn)位置從FTtl中刪除; (5)將FTtl中的`所有術(shù)語t從HBase索引庫中刪除 步驟(4)執(zhí)行完畢后,F(xiàn)Ttl中的全部術(shù)語都是待更新文檔D的當前內(nèi)容C1中不再存在的術(shù)語,所以更新時應從HBase索引庫中刪除這些術(shù)語對應的索引信息,在HBase索引庫中,以FTtl中的術(shù)語t作為主鍵,以待索引文檔D的標識符作為列字段,在HBase索引庫中進行查詢,將對應位置的索引信息刪除; (6)將FT1中的所有術(shù)語提交到HBase索引庫進行更新 步驟(4)執(zhí)行完畢后,F(xiàn)T1中的全部術(shù)語都是待更新文檔D的當前內(nèi)容C1對比歷史內(nèi)容Ctl發(fā)生變化的術(shù)語,所以更新時應將這些術(shù)語的信息提交給HBase索引庫,更新對應術(shù)語的索引信息,更新索引時,在HBase索引庫中,以FT1中的術(shù)語t作為主鍵,以待索引文檔D作為列字段在HBase索引庫中進行查詢,將對應位置的索引信息替換為FT1中術(shù)語t的出現(xiàn)頻率與出現(xiàn)位置; (7)將待更新文檔D的內(nèi)容替換為Q。
2.如權(quán)利要求1所述的基于HBase的更新增量索引的方法,其特征在于,步驟(2)、(3)中所述的前置表F!;、FT1是一種實現(xiàn)倒排索引的列表數(shù)據(jù)結(jié)構(gòu),其每行有3列,其內(nèi)容格式為:Wm I出現(xiàn)頻率I出現(xiàn)位置 通過對文檔內(nèi)容進行解析,得到文檔中每個術(shù)語的出現(xiàn)頻率和出現(xiàn)位置,將這些信息綜合在一起,即為該文檔內(nèi)容的前置表。
【文檔編號】G06F17/30GK103778219SQ201410025773
【公開日】2014年5月7日 申請日期:2014年1月20日 優(yōu)先權(quán)日:2014年1月20日
【發(fā)明者】鄭慶華, 賀歡, 李冰, 董博, 李慶喻 申請人:西安交通大學, 上海網(wǎng)達軟件股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
凤台县| 敖汉旗| 蒙山县| 高陵县| 斗六市| 长治县| 体育| 革吉县| 伊川县| 锦屏县| 米易县| 乐清市| 辽宁省| 大安市| 天津市| 凯里市| 特克斯县| 施甸县| 海阳市| 牙克石市| 江口县| 德清县| 察隅县| 南京市| 和顺县| 姜堰市| 九龙县| 临猗县| 临安市| 安塞县| 佳木斯市| 平舆县| 丰顺县| 六盘水市| 定西市| 马关县| 华宁县| 洛浦县| SHOW| 安乡县| 抚远县|