一種更新索引文件的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及索引技術(shù)領(lǐng)域,特別是涉及一種更新索引文件的方法及系統(tǒng)。
【背景技術(shù)】
[0002]目前,全文檢索是指計算機索引程序通過掃描文章中的每一個詞,對每一個詞建立一個索引,指明該詞在文章中出現(xiàn)的次數(shù)和位置,當用戶查詢時,檢索程序就根據(jù)事先建立的索引進行查找,并將查找的結(jié)果反饋給用戶的檢索方式。這個過程類似于通過字典中的檢索字表查字的過程。
[0003]全文檢索系統(tǒng)是按照全文檢索理論建立起來的用于提供全文檢索服務(wù)的軟件系統(tǒng)。一般來說,全文檢索需要具備建立索引和提供查詢的基本功能,此外現(xiàn)代的全文檢索系統(tǒng)還需要具有方便的用戶接口、二次應(yīng)用開發(fā)接口等等。功能上,全文檢索系統(tǒng)核心具有建立索引、處理查詢返回結(jié)果集、增加索引、優(yōu)化索引結(jié)構(gòu)等等功能。通常地,全文檢索主要分為按字檢索和按詞檢索兩種。
[0004]在當前的企業(yè)全文檢索應(yīng)用領(lǐng)域,基于Lucene的全文檢索引擎非常適合處理高并發(fā)、低延遲的查詢需求。而分詞的好壞關(guān)系到查詢的準確程度和生成的索引的大小,在當前使用的中文分詞技術(shù)多數(shù)是基于中文詞庫進行分詞的,因此詞庫的準確性對分詞的效果起到關(guān)鍵作用。隨著業(yè)務(wù)的發(fā)展,詞庫需要增量更新維護,而這樣會引發(fā)索引文件中歷史數(shù)據(jù)索引的分詞方式與當前利用更新后的詞庫進行分詞的結(jié)構(gòu)不一致,影響檢索的準確性。因此,在現(xiàn)有技術(shù)中,當分詞技術(shù)是基于詞庫的分詞,在詞庫更新發(fā)生變化時,對索引文件中的全部歷史數(shù)據(jù)進行重新索引更新,然而,這樣往往需要耗費較長的時間并且還會影響到全文檢索系統(tǒng)的正常使用。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供了一種更新索引文件的方法及系統(tǒng),以實現(xiàn)既能快速將新詞庫更新至索引文件又不會影響到全文檢索系統(tǒng)的正常使用的目的。
[0006]為解決上述技術(shù)問題,本發(fā)明提供一種更新索引文件的方法,包括:
[0007]獲取新詞庫和索引文件中的歷史數(shù)據(jù);其中,所述歷史數(shù)據(jù)包括多條索引數(shù)據(jù);
[0008]判斷每條所述索引數(shù)據(jù)是否受所述新詞庫的影響;
[0009]利用所述新詞庫,對受所述新詞庫影響的索引數(shù)據(jù)進行重新索引,并將重新索引后的索引數(shù)據(jù)更新至所述索引文件。
[0010]上述方法中,優(yōu)選的,所述判斷每條所述索引數(shù)據(jù)是否受所述新詞庫的影響,包括:
[0011]當所述新詞庫中存在所述索引數(shù)據(jù)中的詞語時,判定所述索引數(shù)據(jù)受所述新詞庫的影響。
[0012]上述方法中,優(yōu)選的,在所述將重新索引后的索引數(shù)據(jù)更新至所述索引文件之后,還包括:
[0013]存儲更新后的索引文件。
[0014]本發(fā)明還提供了一種更新索引文件的系統(tǒng),包括:
[0015]獲取單元,用于獲取新詞庫和索引文件中的歷史數(shù)據(jù);其中,所述歷史數(shù)據(jù)包括多條索引數(shù)據(jù);
[0016]判斷單元,用于判斷每條所述索引數(shù)據(jù)是否受所述新詞庫的影響;
[0017]更新單元,用于利用所述新詞庫,對受所述新詞庫影響的索引數(shù)據(jù)進行重新索引,并將重新索引后的索引數(shù)據(jù)更新至所述索引文件。
[0018]上述系統(tǒng)中,優(yōu)選的,所述判斷單元具體用于:
[0019]當所述新詞庫中存在所述索引數(shù)據(jù)中的詞語時,判定所述索引數(shù)據(jù)受所述新詞庫的影響。
[0020]上述系統(tǒng)中,優(yōu)選的,還包括:
[0021]存儲單元,用于在所述將重新索引后的索引數(shù)據(jù)更新至所述索引文件之后,存儲更新后的索引文件。
[0022]以上本發(fā)明提供的一種更新索引文件的方法及系統(tǒng)中,首先獲取新詞庫和索引文件中的歷史數(shù)據(jù);其中,所述歷史數(shù)據(jù)包括多條索引數(shù)據(jù);然后判斷每條所述索引數(shù)據(jù)是否受所述新詞庫的影響;最后利用所述新詞庫對受所述新詞庫影響的索引數(shù)據(jù)進行重新索弓丨,并將重新索引后的索引數(shù)據(jù)更新至所述索引文件。顯然,本發(fā)明是對索引文件中受新詞庫影響的索引數(shù)據(jù)進行重新索引,并不是一味地對整個索引文件中的歷史數(shù)據(jù)進行重新索弓丨,以此實現(xiàn)了既能快速將新詞庫更新至索引文件又不會影響到全文檢索系統(tǒng)的正常使用的目的。
【附圖說明】
[0023]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0024]圖1為本發(fā)明實施例提供的一種更新索引文件的方法的流程圖;
[0025]圖2為本發(fā)明實施例提供的一種更新索引文件的系統(tǒng)的結(jié)構(gòu)框圖示意圖。
【具體實施方式】
[0026]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0027]本發(fā)明的核心是提供一種更新索引文件的方法及系統(tǒng),以實現(xiàn)既能快速將新詞庫更新至索引文件又不會影響到全文檢索系統(tǒng)的正常使用的目的。
[0028]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步的詳細說明。
[0029]參考圖1,圖1示出了本發(fā)明實施例提供的一種更新索引文件的方法的流程圖,該方法具體可以包括如下步驟:
[0030]步驟S100、獲取新詞庫和索引文件中的歷史數(shù)據(jù);其中,歷史數(shù)據(jù)包括多條索引數(shù)據(jù);
[0031]步驟S101、判斷每條索引數(shù)據(jù)是否受新詞庫的影響;當判定該條索引數(shù)據(jù)受新詞庫的影響時,進入步驟S102,否則,進入步驟S103.
[0032]具體地,當新詞庫中存在索引數(shù)據(jù)中的詞語時,判定索引數(shù)據(jù)受新詞庫的影響。
[0033]步驟S102、利用新詞庫,對受新詞庫影響的索引數(shù)據(jù)進行重新索引,并將重新索引后的索引數(shù)據(jù)更新至索引文件。
[0034]進一步地,在將重新索引后的索引數(shù)據(jù)更新至索引文件之后,存儲更新后的索引文件,以便后續(xù)對這個更新后的索引文件的使用。
[0035]步驟S103、忽略不受新詞庫影響的索引數(shù)據(jù)。
[0036]本發(fā)明對歷史數(shù)據(jù)進行有選擇的索引,判斷發(fā)生變化的詞庫是否對歷史數(shù)據(jù)有影響,如果該數(shù)據(jù)使用了新增的詞庫,則對該數(shù)據(jù)進行重新索引更新到索引文件中,如果沒有影響,則忽略該條數(shù)據(jù)。這樣就大大減少了需要重新索引的數(shù)據(jù)量,可以高效的完成歷史數(shù)據(jù)的重新索引,同時不影響系統(tǒng)的正常使用。
[0037]以上本發(fā)明實施例提供的技術(shù)方案可以應(yīng)用于基于Lucene架構(gòu)的檢索引擎。其中,Lucene是一個開放源代碼的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎。Lucene的目的是為軟件開發(fā)人員提供一個簡單易用的工具包,以方便的在目標系統(tǒng)中實現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。Lucene是一套用于全文檢索和搜尋的開源程式庫,由Apache軟件基金會支持和提供。Lucene提供了一個簡單卻強大的應(yīng)用程式接口,能夠做全文索引和搜尋。
[0038]基于上述本發(fā)明實施例提供的更新索引文件的方法,本發(fā)明實施例還提供了一種更新索引文件的系統(tǒng),參考圖2,該系統(tǒng)200可以包括如下內(nèi)容:
[0039]獲取單元201,用于獲取新詞庫和索引文件中的歷史數(shù)據(jù);其中,歷史數(shù)據(jù)包括多條索引數(shù)據(jù);
[0040]判斷單元202,用于判斷每條索引數(shù)據(jù)是否受新詞庫的影響;
[0041]更新單元203,用于利用新詞庫,對受新詞庫影響的索引數(shù)據(jù)進行重新索引,并將重新索引后的索引數(shù)據(jù)更新至索引文件。
[0042]本發(fā)明中,上述判斷單元202具體可以用于當新詞庫中存在索引數(shù)據(jù)中的詞語時,判定索引數(shù)據(jù)受新詞庫的影響。
[0043]本發(fā)明中,上述系統(tǒng)200還可以包括存儲單元,用于在將重新索引后的索引數(shù)據(jù)更新至索引文件之后,存儲更新后的索引文件。
[0044]需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于系統(tǒng)類實施例而言,由于其與方法實施例基本相似,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0045]以上對本發(fā)明所提供的一種更新索引文件的方法及系統(tǒng)進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。
【主權(quán)項】
1.一種更新索引文件的方法,其特征在于,包括: 獲取新詞庫和索引文件中的歷史數(shù)據(jù);其中,所述歷史數(shù)據(jù)包括多條索引數(shù)據(jù); 判斷每條所述索引數(shù)據(jù)是否受所述新詞庫的影響; 利用所述新詞庫,對受所述新詞庫影響的索引數(shù)據(jù)進行重新索引,并將重新索引后的索弓I數(shù)據(jù)更新至所述索引文件。2.如權(quán)利要求1所述的方法,其特征在于,所述判斷每條所述索引數(shù)據(jù)是否受所述新詞庫的影響,包括: 當所述新詞庫中存在所述索引數(shù)據(jù)中的詞語時,判定所述索引數(shù)據(jù)受所述新詞庫的影響。3.如權(quán)利要求2所述的方法,其特征在于,在所述將重新索引后的索引數(shù)據(jù)更新至所述索引文件之后,還包括: 存儲更新后的索引文件。4.一種更新索引文件的系統(tǒng),其特征在于,包括: 獲取單元,用于獲取新詞庫和索引文件中的歷史數(shù)據(jù);其中,所述歷史數(shù)據(jù)包括多條索引數(shù)據(jù); 判斷單元,用于判斷每條所述索引數(shù)據(jù)是否受所述新詞庫的影響; 更新單元,用于利用所述新詞庫,對受所述新詞庫影響的索引數(shù)據(jù)進行重新索引,并將重新索引后的索引數(shù)據(jù)更新至所述索引文件。5.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述判斷單元具體用于: 當所述新詞庫中存在所述索引數(shù)據(jù)中的詞語時,判定所述索引數(shù)據(jù)受所述新詞庫的影響。6.如權(quán)利要求5所述的系統(tǒng),其特征在于,還包括: 存儲單元,用于在所述將重新索引后的索引數(shù)據(jù)更新至所述索引文件之后,存儲更新后的索引文件。
【專利摘要】本發(fā)明公開了一種更新索引文件的方法及系統(tǒng),該方法包括:獲取新詞庫和索引文件中的歷史數(shù)據(jù);其中,所述歷史數(shù)據(jù)包括多條索引數(shù)據(jù);判斷每條所述索引數(shù)據(jù)是否受所述新詞庫的影響;利用所述新詞庫,對受所述新詞庫影響的索引數(shù)據(jù)進行重新索引,并將重新索引后的索引數(shù)據(jù)更新至所述索引文件。本發(fā)明是對索引文件中受新詞庫影響的索引數(shù)據(jù)進行重新索引,并不是一味地對整個索引文件中的歷史數(shù)據(jù)進行重新索引,以此實現(xiàn)了既能快速將新詞庫更新至索引文件又不會影響到全文檢索系統(tǒng)的正常使用的目的。
【IPC分類】G06F17/30
【公開號】CN105404661
【申請?zhí)枴緾N201510745257
【發(fā)明人】金洪殿, 趙仁明, 亓開元
【申請人】浪潮(北京)電子信息產(chǎn)業(yè)有限公司
【公開日】2016年3月16日
【申請日】2015年11月5日