一種生成索引文檔id的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本公開涉及數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其涉及一種生成索引文檔ID的方法及裝置。
【背景技術(shù)】
[0002]近年來,數(shù)據(jù)庫得到越來越廣泛的應(yīng)用,其中索引作為數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu),使用索引可快速訪問數(shù)據(jù)庫表中的特定信息。
[0003]在數(shù)據(jù)庫中,索引相對于數(shù)據(jù)庫的SQL語句執(zhí)行得更快。索引的作用相當(dāng)于圖書的目錄,可以根據(jù)目錄中的頁碼快速找到所需的內(nèi)容。當(dāng)數(shù)據(jù)庫中有大量記錄時,若要對數(shù)據(jù)庫進(jìn)行查詢,若采用非索引的方式搜索,需要將所有記錄一一取出,和查詢條件進(jìn)行一一對比,然后返回滿足條件的記錄,會消耗大量數(shù)據(jù)庫系統(tǒng)時間,導(dǎo)致大量磁盤I/O操作;若采用索引的方式搜索,在索引中找到符合查詢條件的索引值,可快速找到數(shù)據(jù)庫中對應(yīng)的記錄。數(shù)據(jù)庫中增加新的數(shù)據(jù),不僅需要更新數(shù)據(jù)庫本身,還需要更新與數(shù)據(jù)庫對應(yīng)的索引。
[0004]處理索引文檔之前,需要對索引文檔進(jìn)行編號,以便在后續(xù)的處理過程中,準(zhǔn)確的區(qū)分不同索引文檔?,F(xiàn)有的生成索引文檔ID的方法是根據(jù)分表序號、該分表所在的服務(wù)器序號和該分表中已有的最大索引文檔ID來計算的?,F(xiàn)有生成索引文檔ID的無法保證所有的索引文檔ID都是連續(xù)的,也無法根據(jù)索引文檔ID就可推測出該索引文檔與該索引文檔所對應(yīng)的分表之間的聯(lián)系。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種生成索引文檔ID的方法及裝置,用于對索引文檔進(jìn)行編號,以便后續(xù)的處理。
[0006]根據(jù)本公開實施例的第一方面,提供一種生成索引文檔ID的方法,包括:
[0007]接收由客戶端發(fā)送來的文件;
[0008]存儲所述文件的信息,所述文件的信息分布在至少一個服務(wù)器中,每個服務(wù)器有至少一個分表;
[0009]獲取存儲的所有分表的數(shù)量、各個所述分表的序號和循環(huán)處理的次數(shù);
[0010]根據(jù)所述所有分表的數(shù)量、所述各個分表的序號和所述循環(huán)處理的次數(shù),計算所述文件的索引文檔ID。
[0011]在一個實施例中,所述根據(jù)所述所有分表的數(shù)量、所述各個分表的序號和所述循環(huán)處理的次數(shù),計算所述文件的索引文檔ID,包括:
[0012]根據(jù)以下公式計算索引文檔ID:
[0013]ID = idxldXidstep+idflag,
[0014]其中,符號ID為所述索引文檔ID,符號idxld為循環(huán)處理的次數(shù),符號idstep為所有分表的數(shù)量,符號idflag為各個分表的序號;
[0015]所述符號idxld在每生產(chǎn)一個索引文檔ID后增加一;
[0016]所述文件的索引文檔ID的初始值為0,表示所述文件未被處理。
[0017]在一個實施例中,在生成所述索引文檔ID之前,還包括:
[0018]根據(jù)哈希算法依此計算所述文件的哈希值;
[0019]根據(jù)所述哈希值將所述文件匹配到相對應(yīng)的所述分表。
[0020]在一個實施例中,所述根據(jù)所述哈希值將所述文件匹配到相對應(yīng)的所述分表,包括:
[0021]將所述哈希值的整個取值范圍均等的劃分為多個數(shù)值區(qū)間,所述多個數(shù)值區(qū)間的數(shù)量和所有所述分表的數(shù)量相同,且所述數(shù)值區(qū)間與所述分表對應(yīng);
[0022]將所述文件的哈希值在某一個數(shù)值區(qū)間段內(nèi)的所有所述文件,匹配到同一個所述分表。
[0023]在一個實施例中,每個所述分表都擁有各自獨(dú)立的所述循環(huán)處理的次數(shù)。
[0024]根據(jù)本公開實施例的第二方面,提供一種生成索引文檔ID的裝置,包括:
[0025]接收模塊,用于接收由客戶端發(fā)送來的文件;
[0026]存儲模塊,用于存儲所述文件的信息,所述文件的信息分布在至少一個服務(wù)器中,每個服務(wù)器有至少一個分表;
[0027]獲取模塊,用于獲取存儲的所有分表的數(shù)量、各個所述分表的序號和循環(huán)處理的次數(shù);
[0028]第一計算模塊,用于根據(jù)所述所有分表的數(shù)量、所述各個分表的序號和所述循環(huán)處理的次數(shù),計算所述文件的索引文檔ID。
[0029]在一個實施例中,所述第一計算模塊,包括:
[0030]計算子模塊,用于根據(jù)以下公式計算索引文檔ID:
[0031]ID = idxldXidstep+idflag,
[0032]其中,符號ID為所述索引文檔ID,符號idxld為循環(huán)處理的次數(shù),符號idstep為所有分表的數(shù)量,符號idflag為各個分表的序號;
[0033]自增子模塊,用于所述符號idxld在每生產(chǎn)一個索引文檔ID后增加一;
[0034]在一個實施例中,生成所述索引文檔ID之前,所述裝置還包括:
[0035]第二計算模塊,用于根據(jù)哈希算法依此計算所述文件的哈希值;
[0036]匹配模塊,用于根據(jù)所述哈希值將所述文件匹配到相對應(yīng)的所述分表。
[0037]在一個實施例中,所述匹配模塊,包括:
[0038]劃分子模塊,用于將所述哈希值的整個取值范圍均等的劃分為多個數(shù)值區(qū)間,所述多個數(shù)值區(qū)間的數(shù)量和所有所述分表的數(shù)量相同,且所述數(shù)值區(qū)間與所述分表一一對應(yīng);
[0039]匹配子模塊,用于將所述文件的哈希值在某一個數(shù)值區(qū)間段內(nèi)的所有所述文件,匹配到同一個所述分表。
[0040]本公開的實施例提供的技術(shù)方案可以包括以下有益效果:可將所有文件均勻的匹配到各個分表,生成的索引文檔ID唯一且索引文檔ID的數(shù)值是連續(xù)的,且可根據(jù)索引文檔ID推斷出該索引文檔對應(yīng)的具體分表及該索引文檔是在該分表中的第多少條記錄信息。
[0041]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
[0042]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
【附圖說明】
[0043]附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0044]圖1為本發(fā)明一示例性實施例示出的一種生成索引文檔ID的方法流程圖;
[0045]圖2為本發(fā)明一示例性實施例示出的一種生成索引文檔ID的方法流程圖;
[0046]圖3為本發(fā)明一示例性實施例示出的一種生成索引文檔ID的方法流程圖;
[0047]圖4為本發(fā)明一示例性實施例示出的一種生成索引文檔ID的方法流程圖;
[0048]圖5為本發(fā)明一示例性實施例示出的一種生成索引文檔ID的裝置框圖;
[0049]圖6為本發(fā)明一示例性實施例示出的一種生成索引文檔ID的裝置框圖;
[0050]圖7為本發(fā)明一示例性實施例示出的一種生成索引文檔ID的裝置框圖;
[0051]圖8為本發(fā)明一示例性實施例示出的一種生成索引文檔ID的裝置框圖。
【具體實施方式】
[0052]以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0053]在數(shù)據(jù)庫中處理索引文檔之前,需要對索引文檔進(jìn)行編號,即生成索引文檔ID,以便在后續(xù)的處理過程中準(zhǔn)確的區(qū)分出不同的索引文檔。為了使各分表處理的索引數(shù)據(jù)量均衡,采用哈希算法對索引文檔計算出該文件相應(yīng)的哈希值,該哈希值是存在一個數(shù)值取值范圍的。根據(jù)數(shù)據(jù)所擁有分表的數(shù)量,將該哈希值的取值范圍均等的劃分為若干哈希數(shù)值小區(qū)間,該小區(qū)間的數(shù)量與分表的數(shù)量相同,并每個分表分別對應(yīng)一個哈希數(shù)值小區(qū)間,將落在同一個哈希數(shù)值小區(qū)間的文件匹配到同一個分表中。哈希算法的特性可以確保每個哈希數(shù)值區(qū)間所匹配到的哈希數(shù)值的數(shù)量均等性,即保證每個分表所對應(yīng)的索引文檔的數(shù)量均等性。根據(jù)本申請中的生成索引文檔ID的計算公式,利用各個分表中循環(huán)處理的次數(shù)、所有分表的數(shù)量和各個分表的序號,計算出各個索引文檔的索引文檔ID。
[0054]圖1是根據(jù)一示例性實施例示出的一種生成索引文檔ID的方法流程圖,如圖1所示,該生成