一種索引結(jié)構(gòu)和索引方法【專利摘要】本發(fā)明提供一種索引結(jié)構(gòu)和索引方法,其中的倒排索引結(jié)構(gòu)包括:詞表索引文件、詞位置索引文件、至少一個詞倒排項文件和管理文件;詞表索引文件中存儲有詞與ID的對應(yīng)關(guān)系信息;詞位置索引文件中存儲有與ID對應(yīng)的詞的倒排項在詞倒排項文件中的存儲位置信息;該存儲位置信息包括塊鏈的第一個結(jié)點和最后一個結(jié)點的位置信息;每個詞倒排項文件均包括相同大小的塊,一個塊僅存儲一個詞的倒排項,同一個詞的倒排項對應(yīng)的塊形成塊鏈結(jié)構(gòu),塊鏈結(jié)構(gòu)的第一個結(jié)點用于檢索,塊鏈結(jié)構(gòu)的最后一個結(jié)點用于追加詞的倒排項;管理文件中存儲有用于管理詞倒排項文件的管理信息。本發(fā)明可以提高檢索速度,并滿足用戶的檢索需求?!緦@f明】一種索引結(jié)構(gòu)和索引方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及索引結(jié)構(gòu),特別是涉及一種索引結(jié)構(gòu)和索引方法?!?br>背景技術(shù):
】[0002]數(shù)據(jù)處理設(shè)備(如計算機或者服務(wù)器等)中存儲的數(shù)據(jù)大致上可以分為結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),其中的結(jié)構(gòu)化數(shù)據(jù)如數(shù)據(jù)庫等,而非結(jié)構(gòu)化數(shù)據(jù)如郵件和word文檔等。針對結(jié)構(gòu)化數(shù)據(jù),目前通常采用遍歷方式進行檢索;而針對非結(jié)構(gòu)化數(shù)據(jù),通常采用線性掃描方式進行檢索。[0003]無論是針對結(jié)構(gòu)化數(shù)據(jù)而言,還是針對非結(jié)構(gòu)化數(shù)據(jù)而言,如何從大規(guī)模的數(shù)據(jù)集合中迅速地找出能夠符合用戶需求的資料,是非常重要的。[0004]結(jié)構(gòu)化數(shù)據(jù)由于其具有一定的結(jié)構(gòu),因此,通過采取一定的搜索算法可以加快檢索速度;然而,非結(jié)構(gòu)化數(shù)據(jù)由于其沒有一定的結(jié)構(gòu),且線性掃描的速率較慢,因此,檢索速度較慢。[0005]在實際應(yīng)用中,無論是針對結(jié)構(gòu)化數(shù)據(jù)的檢索,還是針對非結(jié)構(gòu)化數(shù)據(jù)的檢索,在很多情況下都很難滿足用戶的檢索需求,例如:[0006]1、不能夠?qū)崿F(xiàn)大規(guī)模數(shù)據(jù)下的快速查找;如假設(shè)一個80G的硬盤,如果想在該硬盤上找到內(nèi)容包含“語音合成”的文件,通常要花幾個小時的時間。[0007]2、不能實現(xiàn)靈活的檢索方式;如不能進行“語音”NEAR“合成”之類的查詢,上述NEAR操作符的定義可以為“10個詞之內(nèi)”等。[0008]3、不能實現(xiàn)結(jié)果排序輸出;如用戶希望在眾多滿足條件的查詢結(jié)果中找到最佳答案,這是無法實現(xiàn)的。[0009]有鑒于現(xiàn)有的檢索存在的問題,本發(fā)明人積極加以研究創(chuàng)新,以期創(chuàng)設(shè)一種新的基于block分配機制的倒排索引結(jié)構(gòu)和索引方法,能夠克服現(xiàn)有的檢索存在的問題,使其更具有實用性。經(jīng)過不斷的研究設(shè)計,并經(jīng)過反復(fù)試作樣品及改進,終于創(chuàng)設(shè)出確具實用價值的本發(fā)明。【
發(fā)明內(nèi)容】[0010]本發(fā)明的主要目的在于,克服現(xiàn)有的檢索存在的問題,而提供一種索引結(jié)構(gòu)和索引方法,所要解決的問題是,提高檢索速度,滿足用戶的檢索需求。[0011]本發(fā)明的目的以及解決其技術(shù)問題可以采用以下的技術(shù)方案來實現(xiàn)。[0012]一種索引結(jié)構(gòu),包括:詞表索引文件、詞位置索引文件、至少一個詞倒排項文件以及管理文件;[0013]所述詞表索引文件中存儲有詞與其ID的對應(yīng)關(guān)系信息,且所述詞表索引文件用于獲取待檢索詞的ID;[0014]所述詞位置索引文件中存儲有與所述ID對應(yīng)的詞的倒排項在詞倒排項文件中的存儲位置信息,且所述詞位置索引文件用于根據(jù)所述待檢索詞的ID獲取對應(yīng)的存儲位置信息;所述存儲位置信息包括塊鏈的第一個結(jié)點和最后一個結(jié)點的位置信息;[0015]每個所述詞倒排項文件均包括相同大小的塊,所述塊中存儲有倒排項,且一個塊僅存儲一個詞的倒排項,同一個詞的倒排項對應(yīng)的塊形成塊鏈結(jié)構(gòu),所述塊鏈結(jié)構(gòu)的第一個結(jié)點用于檢索,所述塊鏈結(jié)構(gòu)的最后一個結(jié)點用于追加詞的倒排項;[0016]所述管理文件中存儲有用于管理所述詞倒排項文件的管理信息。[0017]一種索引方法,該方法包括:[0018]從詞表索引文件中獲取待檢索詞的ID;[0019]根據(jù)所述待檢索詞的ID從詞位置索引文件中獲取所述待檢索詞的倒排項在詞倒排項文件中的存儲位置信息;[0020]根據(jù)所述存儲位置信息所述待檢索詞對應(yīng)的詞倒排項文件中獲取塊鏈的第一個結(jié)點的位置信息;[0021]根據(jù)所述第一個結(jié)點的位置信息從相應(yīng)的詞倒排項文件中獲取塊鏈的第一個結(jié)點,從而獲取所述待檢索詞的所有倒排項。[0022]借由上述技術(shù)方案,本發(fā)明的索引結(jié)構(gòu)和索引方法至少具有下列優(yōu)點以及有益效果:[0023]1、本發(fā)明中的詞的倒排項通過采用塊鏈的形式存儲,且存儲塊鏈中的第一個結(jié)點的位置信息以及最后一個結(jié)點的位置信息,從而在檢索時可以很方便的讀取出倒排項,在建索時可以很方便的追加倒排項;[0024]2、本發(fā)明中的詞倒排項文件通過采用固定大小的block,使得block的定位速度非常迅速,隨機訪問非常方便,且不管是讀取倒排項還是寫入倒排項都可以實現(xiàn)迅速定位。[0025]3、本發(fā)明中的一個block是僅屬于一個詞的,某個block中可以存儲不同的倒排項,但是,這不同的倒排項肯定都是屬于同一個詞的,塊鏈與塊鏈之間可以以詞的id進行區(qū)分;且1310(^中可以為某個詞預(yù)留出一部分倒排項的存儲空間,方便了檢索操作以及后續(xù)的建索操作。[0026]4、本發(fā)明中的block通過采用鏈式結(jié)構(gòu),且每個block存儲著塊鏈中下一個block的位置信息,這樣,可以將下一個block任意保存在某個詞倒排項文件中的某個位置中,方便了倒排項的動態(tài)追加。[0027]由上述描述可知,本發(fā)明提高了檢索速度,并滿足了用戶的檢索需求。[0028]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點能夠更明顯易懂,以下特舉較佳實施例,并配合說明書附圖,詳細說明如下?!緦@綀D】【附圖說明】[0029]圖1為本發(fā)明的基于block分配機制的索引結(jié)構(gòu)的示意圖;[0030]圖2為本發(fā)明的詞表索引文件的結(jié)構(gòu)示意圖;[0031]圖3為本發(fā)明的詞位置索引文件的結(jié)構(gòu)示意圖;[0032]圖4為本發(fā)明的詞倒排項文件的結(jié)構(gòu)示意圖;[0033]圖5為本發(fā)明的由多個詞倒排項文件形成的塊鏈示意圖;[0034]圖6為本發(fā)明的管理文件的結(jié)構(gòu)示意圖;[0035]圖7為本發(fā)明索引方法的流程圖?!揪唧w實施方式】[0036]為更進一步闡述本發(fā)明為達成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實施例,對依據(jù)本發(fā)明提出的基于block分配機制的倒排索引結(jié)構(gòu)和索引方法的【具體實施方式】、結(jié)構(gòu)、特征及其功效,詳細說明如后。[0037]發(fā)明人在實現(xiàn)本發(fā)明過程中發(fā)現(xiàn),對于非結(jié)構(gòu)化數(shù)據(jù)而言,如果能夠?qū)⒎墙Y(jié)構(gòu)化數(shù)據(jù)中的一部分信息提取出來,并對其進行重新組織,使其變得有一定的結(jié)構(gòu),這樣,在對該有一定結(jié)構(gòu)的數(shù)據(jù)進行搜索時,就可以達到搜索速度較快的目的。上述從非結(jié)構(gòu)化數(shù)據(jù)中提取并重新組織而成的信息,可以稱之為索引。[0038]本發(fā)明主要包括兩部分內(nèi)容:即先建立索引,然后基于建立的索引進行搜索。建立索引是指從外部輸入的各種數(shù)據(jù)中提取信息,并重新組織,寫入相應(yīng)的文件,以形成索引;搜索是指將用戶的搜索需求轉(zhuǎn)換為查詢請求,并在已創(chuàng)建的索引中進行查找,以得到檢索結(jié)果。[0039]下面結(jié)合附圖1-6對本發(fā)明的索引結(jié)構(gòu)和索引方法一并進行說明。[0040]本發(fā)明的索引結(jié)構(gòu)的一個具體例子如圖1所示。圖1中示出的索引結(jié)構(gòu)主要包括:詞表索引文件(即圖1中示出的word_table.1dx)、詞位置索引文件(即圖1中示出的word,idx)、至少一個詞倒排項文件(即圖1中示出的000000.dat、000001.dat以及000002.dat這三個文件)以及管理文件(圖1中未示出)。[0041]1、詞表索引文件(也可以稱為詞典),如在實際應(yīng)用中可以使用文件名為word_table,idx的文件作為詞表索引文件,且該文件通常為全局文件。[0042]該詞典中存儲有詞與其id的映射表,即每個詞都會被分配一個標識(id),且id是詞在詞典中的唯一標識。該id可以為整型類型,且可以是累加的。詞典的一個具體結(jié)構(gòu)如圖2所示。其中,全局文件I(詞表索引文件)中存儲有詞與其id的映射表。[0043]針對漢語語言的特點,人們?nèi)粘J褂玫脑~匯數(shù)量通常在三萬左右,這使得該詞表索引文件所占用的存儲空間不會太大,因此,該詞表索引文件可以常駐內(nèi)存。本發(fā)明將字符串形式的詞映射為整型的id主要是為了減小存儲空間并加快查找速度。[0044]在本發(fā)明的索引結(jié)構(gòu)中,只有在詞表索引文件中涉及到字符形式的詞,其他涉及到詞的地方都是使用與該詞對應(yīng)的在索引id。[0045]另外,可以在詞表索引文件中為每個詞都對應(yīng)設(shè)置一標志位,該標志位可以加快檢索進程。該標志位有三種有效的取值(如O、I和2),該三種有效的取值可以分別表示出該詞根本沒有經(jīng)過預(yù)搜索、該詞已經(jīng)經(jīng)過了預(yù)搜索但是沒有搜索結(jié)果、或者該詞經(jīng)過了預(yù)搜索而且有搜索結(jié)果。詞表索引文件中的所有標志位可以以map的形式設(shè)置。[0046]上述“該詞根本沒有經(jīng)過預(yù)搜索”可以理解為:沒有與該詞對應(yīng)的倒排信息,如在詞位置索引文件中沒有與該詞的id對應(yīng)的位置信息。[0047]上述“該詞已經(jīng)經(jīng)過了預(yù)搜索但是沒有搜索結(jié)果”可以理解為:存在與該詞對應(yīng)的倒排信息但是倒排項為空,如在詞位置索引文件中有與該詞的id對應(yīng)的位置信息,但是詞倒排項文件中與該位置信息對應(yīng)的詞的所有倒排項均為空。[0048]上述“該詞經(jīng)過了預(yù)搜索而且有搜索結(jié)果”可以理解為:存在與該詞對應(yīng)的倒排信息且倒排項不為空,如在詞位置索引文件中有與該詞的id對應(yīng)的位置信息,且詞倒排項文件中與該位置信息對應(yīng)的詞的倒排項不為空。[0049]在檢索的過程中,可以根據(jù)上述標志位的三種取值提前獲知待檢索詞是否有檢索結(jié)果;例如,檢索“你好”,可以從內(nèi)存的map中獲得該詞對應(yīng)的標志位的取值,如果該標志位的取值為O或者1,則表示“你好”這個詞沒有檢索結(jié)果,本次檢索過程結(jié)束;如果該標志位的取值為2,則表示“你好”這個詞有檢索結(jié)果,需要進行后續(xù)的檢索操作,以提取該詞的倒排項。[0050]2、詞位置索引文件(也可以稱為詞位置),如在實際應(yīng)用中可以使用文件名為word,idx的文件作為詞位置索引文件,且該文件通常為全局文件。詞位置索引文件的一個具體結(jié)構(gòu)如圖3所示。其中全局文件2(詞位置索引文件)存儲有詞的倒排項在全局dat文件(詞倒排項文件)的位置信息。[0051]在每一個詞所擁有的倒排項在詞倒排項文件中以塊(block)鏈的形式存儲的情況下,詞位置索引文件中存儲的位置信息通常包括塊鏈的第一個block的位置信息以及最后一個block的位置信息;且第一個block的位置信息主要用于檢索,以依次得到待檢索詞的整個block鏈;而最后一個block的位置信息主要用于繼續(xù)建索,以便于可以快捷且動態(tài)的為詞追加倒排項。[0052]3、詞倒排項文件(也可以稱為詞倒排表),如在實際應(yīng)用中可以使用文件名為xxxxxx.dat(其中的“xxxxxx”可以為順序號)的文件作為詞倒排項文件,且該文件通常為全局文件。詞倒排項文件的一個具體結(jié)構(gòu)如圖4所示。詞倒排項文件中存儲有詞的倒排項。每個詞倒排項文件的文件大小的最大值是固定且相同的,在詞倒排項文件的文件大小達到最大值且仍然需要存儲更多的倒排項時,會建立新的詞倒排項文件,且新建立的詞倒排項文件的文件名可以以數(shù)字累加的方式來命名。[0053]每一個詞倒排項文件都可以包含有若干個block,且文件大小達到最大值的詞倒排項文件最多所能包含的block數(shù)量應(yīng)該是固定并相同的。[0054]—個詞倒排項文件所包含的每個block的大小固定并相同,從而每個block所能夠存儲的倒排項的最大數(shù)量也是固定的。詞倒排項文件的大小每次以一個block的大小為單位增加,即未達到最大值的詞倒排項文件每次增加文件大小時,均增加一個固定值。[0055]一個詞所擁有的所有倒排項在詞倒排項文件中可以以塊(block)鏈的形式存在,且塊鏈中的每一個block都會指示其后的下一個block的位置,如圖5所示。塊鏈中的每一個block都可以稱為一個結(jié)點,如塊鏈中的第一個block為塊鏈的第一個結(jié)點,塊鏈中的最后一個block為塊鏈的最后一個結(jié)點。需要說明的是,一個塊鏈可以只包括一個block,此時,該block既是該塊鏈的第一個結(jié)點,也是該塊鏈的最后一個結(jié)點。[0056]本發(fā)明中的每個block的結(jié)構(gòu)都是相同的,即,首先是一個block頭,接著是固定數(shù)目(如1024個)的用于存儲倒排項的item。block頭中記錄著當(dāng)前block已經(jīng)存儲了多少個倒排項,這樣,如果在當(dāng)前block中追加倒排項的話,可以很方便的確定出應(yīng)該從當(dāng)前block中的哪個位置(item)繼續(xù)寫倒排項。沒有被填寫倒排項的item是空的,即一個item中可以沒有存儲信息,但是該item仍然占據(jù)著存儲空間,以供后續(xù)追加倒排項的時候?qū)懭胂鄳?yīng)的內(nèi)容。[0057]需要說明的是,詞倒排項文件中的每個block都僅屬于一個詞,即一個block中的所有item都是針對同一個詞的;而且,同一個詞的所有倒排項可以存儲于不同的block中。[0058]4、管理文件;在實際應(yīng)用中可以使用文件名為data,idx的文件作為管理文件,且該文件通常為全局文件。管理文件的一個具體結(jié)構(gòu)如圖6所示。[0059]該管理文件主要用于管理上述詞倒排項文件。該管理文件中存儲有用于管理詞倒排項文件的管理信息。該管理信息可以包括詞倒排項文件的總體信息以及每個倒排項文件的信息,如所有詞倒排項文件的數(shù)量以及每個詞倒排項文件所擁有的block的數(shù)量等等。[0060]通過利用該管理信息,可以控制新生成的詞倒排項文件的文件名等。具體的,詞倒排項文件的文件大小是固定的,其所能包含的block的數(shù)目也是一定的,因此,在詞倒排項文件的文件大小達到最大值時,應(yīng)根據(jù)該管理文件(data,idx)中存儲的信息控制生成一個新的詞倒排項文件,以繼續(xù)寫入新的倒排項。[0061]基于上述索引結(jié)構(gòu),本發(fā)明實施例還提供一種索引方法,如圖7所示,為本發(fā)明索引方法的流程圖,包括以下步驟:[0062]步驟701,從詞表索引文件中獲取待檢索詞的ID;[0063]步驟702,根據(jù)所述待檢索詞的ID從詞位置索引文件中獲取所述待檢索詞的倒排項在詞倒排項文件中的存儲位置信息;[0064]具體地,在確定出所述ID對應(yīng)的標志位表征與其對應(yīng)的詞,并且經(jīng)過了預(yù)搜索且有搜索結(jié)果后,再獲取所述待檢索詞的倒排項在詞倒排項文件中的存儲位置信息。[0065]步驟703,根據(jù)所述存儲位置信息所述待檢索詞對應(yīng)的詞倒排項文件中獲取塊鏈的第一個結(jié)點的位置信息;[0066]步驟704,根據(jù)所述第一個結(jié)點的位置信息從相應(yīng)的詞倒排項文件中獲取塊鏈的第一個結(jié)點,從而獲取所述待檢索詞的所有倒排項。[0067]需要說明的是,針對需要增加倒排項的詞,本發(fā)明實施例的方法還可進一步包括以下步驟:[0068]從詞表索引文件中獲取所述需要增加倒排項的詞的ID;[0069]根據(jù)所述ID從詞位置索引文件中獲取所述詞的倒排項在詞倒排項文件中的存儲位置信息;[0070]根據(jù)所述存儲位置信息從所述詞對應(yīng)的詞倒排項文件中獲取塊鏈的最后一個結(jié)點的位置信息;[0071]根據(jù)所述最后一個結(jié)點的位置信息確定最后一個結(jié)點,并根據(jù)該最后一個結(jié)點的塊頭中存儲的當(dāng)前塊中已存儲的倒排項數(shù)量在當(dāng)前塊的相應(yīng)位置增加倒排項。[0072]—個檢索的具體例子為:用戶輸入檢索關(guān)鍵詞,如“你好”,在接收到該檢索關(guān)鍵詞后,首先從word_table.1dx文件中查找此詞對應(yīng)的id,并查看該id對應(yīng)的標志位的取值,如果該標志位的取值表征該詞根本沒有經(jīng)過預(yù)搜索或者該詞已經(jīng)經(jīng)過了預(yù)搜索但是沒有搜索結(jié)果,則輸出沒有搜索結(jié)果的信息并結(jié)束本次檢索過程;如果該標志位的取值表征該詞經(jīng)過了預(yù)搜索而且有搜索結(jié)果,則執(zhí)行從word,idx中直接確定出此id對應(yīng)的倒排項在xxxxxx.dat中的存儲位置信息的操作,即確定“你好”的倒排項所在的block鏈中的第一個結(jié)點的位置信息和最后一個結(jié)點的位置信息,由于本次進行的是檢索操作,因此,只需要獲取block鏈中的第一個結(jié)點的位置信息,并根據(jù)該第一個結(jié)點的位置信息從相應(yīng)的xxxxxx.dat中提取倒排項即可。[0073]另一個檢索的具體例子為:在獲取到一個詞需要追加的倒排項之后,首先從word_table.1dx文件中查找該詞對應(yīng)的id,并查看該id對應(yīng)的標志位的取值,如果該標志位的取值表征該詞根本沒有經(jīng)過預(yù)搜索,則在word,idx中建立該id對應(yīng)的位置信息,并在相應(yīng)的xxxxxx.dat中建立相應(yīng)的塊鏈,以存儲需要追加的倒排項;如果該標志位的取值表征該詞已經(jīng)經(jīng)過了預(yù)搜索但是沒有搜索結(jié)果或者該詞經(jīng)過了預(yù)搜索而且有搜索結(jié)果,則執(zhí)行從word,idx中直接確定出此id對應(yīng)的倒排項在xxxxxx.dat中的存儲位置信息的操作,即確定該詞的倒排項所在的block鏈中的第一個結(jié)點的位置信息和最后一個結(jié)點的位置信息,由于本次進行的是建索操作,因此,只需要獲取block鏈中的最后一個結(jié)點的位置信息,并根據(jù)該最后一個結(jié)點的位置信息在相應(yīng)的xxxxxx.dat中增加倒排項即可。另外,在上述增加倒排項的過程中,有可能會涉及到增加新的塊或者增加新的xxxxxx.dat的過程。[0074]以上所述僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例揭示如上,然而并非用以限定本發(fā)明的技術(shù),任何熟悉本專業(yè)的技術(shù)人員在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的技術(shù)內(nèi)容作出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)?!緳?quán)利要求】1.一種索引結(jié)構(gòu),其特征在于,包括:詞表索引文件、詞位置索引文件、至少一個詞倒排項文件以及管理文件;所述詞表索引文件中存儲有詞與其ID的對應(yīng)關(guān)系信息,且所述詞表索引文件用于獲取待檢索詞的ID;所述詞位置索引文件中存儲有與所述ID對應(yīng)的詞的倒排項在詞倒排項文件中的存儲位置信息,且所述詞位置索引文件用于根據(jù)所述待檢索詞的ID獲取對應(yīng)的存儲位置信息;所述存儲位置信息包括塊鏈的第一個結(jié)點和最后一個結(jié)點的位置信息;每個所述詞倒排項文件均包括相同大小的塊,所述塊中存儲有倒排項,且一個塊僅存儲一個詞的倒排項,同一個詞的倒排項對應(yīng)的塊形成塊鏈結(jié)構(gòu),所述塊鏈結(jié)構(gòu)的第一個結(jié)點用于檢索,所述塊鏈結(jié)構(gòu)的最后一個結(jié)點用于追加詞的倒排項;所述管理文件中存儲有用于管理所述詞倒排項文件的管理信息。2.如權(quán)利要求1所述的索引結(jié)構(gòu),其特征在于,所述詞表索引文件中還存儲有每個詞對應(yīng)的標志位,所述標志位用于表示與其對應(yīng)的詞沒有經(jīng)過預(yù)搜索、或者與其對應(yīng)的詞經(jīng)過了預(yù)搜索但是沒有搜索結(jié)果、或者與其對應(yīng)的詞經(jīng)過了預(yù)搜索且有搜索結(jié)果。3.如權(quán)利要求1所述的索引結(jié)構(gòu),其特征在于,所述ID為整型。4.如權(quán)利要求1或2或3所述的索引結(jié)構(gòu),其特征在于,所述塊包括:塊頭以及用于存儲預(yù)定數(shù)量的倒排項的存儲空間,所述塊頭用于存儲當(dāng)前塊中已存儲的倒排項數(shù)量。5.如權(quán)利要求1或2或3所述的索引結(jié)構(gòu),其特征在于,每個詞倒排項文件的文件大小的最大值相同,且所述倒排項文件的文件大小以塊的大小遞增,直到倒排項文件的文件大小達到所述最大值。6.如權(quán)利要求1或2或3所述的索引結(jié)構(gòu),其特征在于,所述管理信息包括:所述倒排索引結(jié)構(gòu)當(dāng)前所包含的詞倒排項文件的數(shù)量以及每個詞倒排項文件所包含的塊的數(shù)量。7.如權(quán)利要求1或2或3所述的索引結(jié)構(gòu),其特征在于,所述詞表索引文件、詞位置索引文件、詞倒排項文件以及管理文件均為全局文件,且所述詞表索引文件常駐內(nèi)存。8.一種索引方法,其特征在于,該方法包括:從詞表索引文件中獲取待檢索詞的ID;根據(jù)所述待檢索詞的ID從詞位置索引文件中獲取所述待檢索詞的倒排項在詞倒排項文件中的存儲位置信息;根據(jù)所述存儲位置信息所述待檢索詞對應(yīng)的詞倒排項文件中獲取塊鏈的第一個結(jié)點的位置信息;根據(jù)所述第一個結(jié)點的位置信息從相應(yīng)的詞倒排項文件中獲取塊鏈的第一個結(jié)點,從而獲取所述待檢索詞的所有倒排項。9.如權(quán)利要求8所述的索引方法,其特征在于,所述方法在從詞表索引文件中獲取待檢索詞的ID之后,在確定出所述ID對應(yīng)的標志位表征與其對應(yīng)的詞經(jīng)過了預(yù)搜索且有搜索結(jié)果時,執(zhí)行后續(xù)的獲取所述待檢索詞的倒排項在詞倒排項文件中的存儲位置信息的步驟。10.如權(quán)利要求8或9所述的索引方法,其特征在于,針對需要增加倒排項的詞,所述方法還包括:從詞表索引文件中獲取所述需要增加倒排項的詞的ID;根據(jù)所述ID從詞位置索引文件中獲取所述詞的倒排項在詞倒排項文件中的存儲位置信息;根據(jù)所述存儲位置信息從所述詞對應(yīng)的詞倒排項文件中獲取塊鏈的最后一個結(jié)點的位置信息;根據(jù)所述最后一個結(jié)點的位置信息確定最后一個結(jié)點,并根據(jù)該最后一個結(jié)點的塊頭中存儲的當(dāng)前塊中已存儲的倒排項數(shù)量在當(dāng)前塊的相應(yīng)位置增加倒排項。【文檔編號】G06F17/30GK103699569SQ201310590328【公開日】2014年4月2日申請日期:2013年11月20日優(yōu)先權(quán)日:2013年9月6日【發(fā)明者】易中華,伍球,徐波申請人:安徽科大訊飛信息科技股份有限公司