專利名稱:數(shù)據(jù)重復性校驗方法和裝置及系統(tǒng)的制作方法
技術領域:
本發(fā)明實施例涉及數(shù)據(jù)處理技術,尤其涉及一種數(shù)據(jù)重復性校驗方法和裝置及 系統(tǒng)。
背景技術:
在數(shù)據(jù)操作的眾多領域中,例如某軟件系統(tǒng)中,經(jīng)常要保證某數(shù)據(jù)項具備唯一 性,此時需要針對該數(shù)據(jù)項,將新增加數(shù)據(jù)與已有數(shù)據(jù)進行重復性校驗。例如,某Web 應用論壇,在注冊新用戶的時候,需要對新增的用戶名進行校驗,檢查是否已有重復的 用戶名,如果重復將告知用戶重新輸入一個用戶名?,F(xiàn)有數(shù)據(jù)重復性校驗方法實現(xiàn)方式主要分為兩種一種是在新增數(shù)據(jù)插入前進 行重復性判斷;另一種是在新增數(shù)據(jù)插入后進行重復性判斷。這兩種方式均需要依賴 數(shù)據(jù)庫進行數(shù)據(jù)逐一比對來校驗重復性。然而,依賴數(shù)據(jù)庫的校驗模式,隨著數(shù)據(jù)的增 加,其判斷速度和效率將顯著下降。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)重復性校驗方法和裝置及系統(tǒng),以提高數(shù)據(jù)重復性 校驗的效率。本發(fā)明實施例提供一種數(shù)據(jù)重復性校驗方法,包括將數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù)進行匹配,所述并行 索引樹的每個葉節(jié)點分別與一個字符對應,且葉節(jié)點的參數(shù)至少包括字符所在數(shù)據(jù)的字 符串長度和字符在所述字符串中的位置;根據(jù)各字符的匹配結果判斷所述數(shù)據(jù)是否與已存儲的數(shù)據(jù)重復,若否,則將所 述數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點的參數(shù)存儲到所述并行索引樹中。本發(fā)明實施例提供一種數(shù)據(jù)重復性校驗裝置,包括并行索引樹存儲模塊,用于存儲并行索引樹中各葉節(jié)點的參數(shù),所述并行索引 樹的每個葉節(jié)點分別與一個字符對應,且葉節(jié)點的參數(shù)至少包括字符所在數(shù)據(jù)的字符串 長度和字符在所述字符串中的位置;參數(shù)匹配模塊,用于將數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù) 進行匹配;并行重復性判斷模塊,用于根據(jù)各字符的匹配結果判斷所述數(shù)據(jù)是否與已存儲 的數(shù)據(jù)重復,若否,則將所述數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點的參數(shù)存儲到所述并行索引 樹中。本發(fā)明實施例還提供了一種數(shù)據(jù)應用系統(tǒng),包括應用服務器,用于接收用戶輸入的數(shù)據(jù),將數(shù)據(jù)提供給校驗服務器進行重復性 校驗;校驗服務器,用于將接收到的數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù)進行匹配,所述并行索引樹的每個葉節(jié)點分別與一個字符對應,且葉節(jié)點的參數(shù) 至少包括字符所在數(shù)據(jù)的字符串長度和字符在所述字符串中的位置;根據(jù)各字符的匹配 結果判斷所述數(shù)據(jù)是否與已存儲的數(shù)據(jù)重復,若否,則將所述數(shù)據(jù)各字符的參數(shù)作為葉 節(jié)點的參數(shù)存儲到所述并行索引樹中,同時將所述數(shù)據(jù)提供給數(shù)據(jù)庫服務器進行存儲;數(shù)據(jù)庫服務器,用于將所述數(shù)據(jù)進行存儲。本發(fā)明實施例提供的數(shù)據(jù)重復性校驗方法和裝置及系統(tǒng),以并行索引樹的形式 對數(shù)據(jù)中各字符的參數(shù)值進行并行的匹配,并且該方案不依賴于存儲數(shù)據(jù)的數(shù)據(jù)庫,從 而具有較小的索引量,能夠顯著提高數(shù)據(jù)重復性校驗效率。
圖1為本發(fā)明實施例一提供的數(shù)據(jù)重復性校驗方法的流程圖;圖2為本發(fā)明實施例二提供的數(shù)據(jù)重復性校驗方法的流程圖;圖3為本發(fā)明實施例中所存儲數(shù)據(jù)的樹狀結構示意圖;圖4為本發(fā)明實施例三提供的數(shù)據(jù)重復性校驗方法的流程圖;圖5為本發(fā)明實施例六提供的數(shù)據(jù)重復性校驗裝置的結構示意圖;圖6為本發(fā)明實施例七提供的數(shù)據(jù)重復性校驗裝置的結構示意圖;圖7為本發(fā)明實施例八提供的數(shù)據(jù)重復性校驗裝置中參數(shù)匹配模塊的結構示意 圖;圖8為本發(fā)明實施例九提供的數(shù)據(jù)重復性校驗裝置的結構示意圖;圖9為本發(fā)明實施例十提供的數(shù)據(jù)應用系統(tǒng)的結構示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施 例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實 施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普 通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護 的范圍。實施例一圖1為本發(fā)明實施例一提供的數(shù)據(jù)重復性校驗方法的流程圖,該方法可適用于 任何需要對數(shù)據(jù)進行重復性校驗的情況,例如新增用戶名是否與已存儲用戶名重復;文 件系統(tǒng)中新增文件的文件名是否與已使用的文件名重復等各種情況。本實施例中的數(shù)據(jù) 重復性校驗方法具體可以由數(shù)據(jù)操作系統(tǒng)來執(zhí)行,數(shù)據(jù)操作系統(tǒng)可以是軟硬件結合來實 現(xiàn)的裝置。該方法具體包括如下步驟步驟110、將數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù)進行匹配, 該并行索引樹的每個葉節(jié)點分別與一個字符對應,且葉節(jié)點的參數(shù)至少包括字符所在數(shù) 據(jù)的字符串長度和字符在該字符串中的位置;步驟120、根據(jù)各字符的匹配結果判斷該數(shù)據(jù)是否與已存儲的數(shù)據(jù)重復,若否, 即該數(shù)據(jù)與已存儲的數(shù)據(jù)不重復,則執(zhí)行步驟130;若是,則視為該數(shù)據(jù)與已存儲的數(shù) 據(jù)重復,執(zhí)行步驟140。
步驟130、將該數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點的參數(shù)存儲到并行索引樹中,同 時該數(shù)據(jù)可以被接受或進行存儲、將數(shù)據(jù)持久化到數(shù)據(jù)庫中,即將數(shù)據(jù)存儲到該數(shù)據(jù)庫 中,流程結束。步驟140、可以拒絕該數(shù)據(jù)或直接丟棄,若為文件路徑重復則可以改寫文件存儲 路徑等。在上述步驟120中,由于每次存儲數(shù)據(jù)都會將該數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點 的參數(shù)存儲到并行索引樹中,所以通過將新增數(shù)據(jù)的字符參數(shù)在并行索引樹中匹配就可 以判斷出該數(shù)據(jù)是否重復。本實施例的技術方案采用了針對數(shù)據(jù)的各字符進行并行索引的方式來校驗數(shù)據(jù) 的重復性。并行索引樹可以為B+樹的形式,包括多個葉節(jié)點,可逐層設置,葉節(jié)點分別 與一個字符對應。每個葉節(jié)點的參數(shù)至少包括對應字符所在數(shù)據(jù)的字符串長度和所對應 字符在數(shù)據(jù)字符串中的位置。在字符與葉節(jié)點的參數(shù)匹配時,可以將數(shù)據(jù)的各個字符同 時與對應的葉節(jié)點進行匹配,提高匹配的速度。當任意一個字符沒有查找到對應的葉節(jié) 點時,則說明該數(shù)據(jù)沒有被存儲,與已有數(shù)據(jù)不重復;當對每個字符都能查找到對應的 葉節(jié)點時,說明該數(shù)據(jù)已經(jīng)被存儲的概率較高。此時的處理方式有多種,一種是默認該 數(shù)據(jù)重復,則可以直接丟棄該數(shù)據(jù),這種情況在數(shù)據(jù)字符串長度較小時具有較高的準確 性,另一種是繼續(xù)進行更精確的重復性校驗,這種情況在數(shù)據(jù)字符串長度較長時更為必 要。無論采用上述哪種處理方式,由于首先對數(shù)據(jù)各字符進行了并行校驗,所以至少能 夠驗證一部分數(shù)據(jù)的重復性,因而能夠在一定程度上提高重復性校驗的效率。在目前的 數(shù)據(jù)重復性校驗中,用戶名和文件名等的字符串長度通常不太長,所以本實施例的技術 方案可以在大部分的重復性校驗中提高效率,且保證一定的準確性。數(shù)據(jù)中的各字符與葉節(jié)點一一對應,可以是字符與葉節(jié)點直接對應,但是為提 高計算速度和改善計算的通用性,在將數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與已存儲 的葉節(jié)點的參數(shù)進行匹配之前,還可以首先將數(shù)據(jù)的各字符分別轉換為數(shù)據(jù)標識,每個 葉節(jié)點通過字符的數(shù)據(jù)標識與字符對應,例如字節(jié)(byte)形式。例如,以數(shù)字字節(jié)標識 每個字符,如“0001”代表“上”,“0002”代表“ζ”等,只要滿足數(shù)據(jù)標識能唯一 標識字符即可。此處所謂的字符,可以是單個數(shù)字、標點符號、英文字母、漢字或數(shù)據(jù) 中的某幾位字節(jié),也可以是上述元素的有機組合,例如文件名后綴“.PDF”可以定義為 一個字符。實施例二圖2為本發(fā)明實施例二提供的數(shù)據(jù)重復性校驗方法的流程圖。本實施例以實施 例一為基礎,進一步在并行索引的基礎上增加了串行索引的手段。本實施例中,當根據(jù) 各字符的匹配結果判斷出數(shù)據(jù)與已存儲的數(shù)據(jù)重復之后,還執(zhí)行如下操作步驟210、將數(shù)據(jù)的索引在輔助索引表中進行匹配,該輔助索引表中包括已存儲 數(shù)據(jù)的索引,已存儲數(shù)據(jù)的索引可以是數(shù)據(jù)字符串本身,也可以是數(shù)據(jù)標識組成的數(shù)字 索引串;上述步驟210中的匹配是數(shù)據(jù)索引的一一查找匹配,可以采用已有技術中的各 種數(shù)據(jù)匹配方案,屬于根據(jù)數(shù)據(jù)本身進行精確查找的手段。步驟220、根據(jù)數(shù)據(jù)在輔助索引表中的匹配結果判斷該數(shù)據(jù)是否與已存儲的數(shù)據(jù)重復,若是,則執(zhí)行步驟230,若否,則執(zhí)行步驟240;步驟230、產(chǎn)生數(shù)據(jù)重復結果,即數(shù)據(jù)與已存儲的數(shù)據(jù)重復,流程結束;步驟240、數(shù)據(jù)與已存儲的數(shù)據(jù)不重復,則將數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點的參 數(shù)存儲到并行索引樹中,并將該數(shù)據(jù)的索引存儲在輔助索引表中,以備新增其他數(shù)據(jù)時 進行索引和匹配。本實施例的技術方案通過并行索引提高了數(shù)據(jù)重復性校驗速度,并通過串行的 精確索引保證了數(shù)據(jù)重復性校驗的唯一性和準確性。雖然精確索引校驗仍然要依賴于數(shù) 據(jù)本身的索引,但由于首先經(jīng)過了并行索引的排除,使得需要進行精確性校驗的數(shù)據(jù)量 顯著減少,因此在一定程度上能夠改善數(shù)據(jù)重復性校驗效率,在數(shù)據(jù)字符串長度較小的 情況下這種優(yōu)勢尤為明顯,而通常用戶名、文件名等字符串長度大都是不超過20個字符 的短字符串。在本實施例中,優(yōu)選可以設定需要并行索引的字符數(shù)量,即在將數(shù)據(jù)各字符的 參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù)進行匹配之前,還包括從數(shù)據(jù)中截取設定數(shù) 量的字符作為在并行索引樹中與葉節(jié)點的參數(shù)進行匹配的各字符,而后進行的并行索引 僅限定截取的字符。具體設定的截取數(shù)量可以根據(jù)要保存的數(shù)據(jù)量、字符個數(shù)來設定。例如,設定并行索引的字符數(shù)為7個,則每次進行索引均從數(shù)據(jù)中截取至多7個 字符,余下的字符不進行并行索引,但應注意,在并行索引時,雖然截取的數(shù)量減少, 但是數(shù)據(jù)字符串的長度并不引截取而減少。由于并行索引的方式在字符數(shù)較少的情況下 優(yōu)勢明顯,可靠性更高,所以截取有限數(shù)量的字符進行并行索引,既能夠保留并行索引 的效率和準確性優(yōu)勢,又能避免字符數(shù)過多時不必要的并行索引。實施例三并行索引樹的組織形式可以有多種,例如,以數(shù)據(jù)的首字符為根節(jié)點組織的多 個并行索引樹,或者以數(shù)據(jù)的字符串長度、用戶名類型、或者文件名類型等數(shù)據(jù)整體的 其他參數(shù)作為根節(jié)點組織的多個并行索引樹。使用各種并行索引樹進行匹配的方式類 似,本發(fā)明實施例三以數(shù)據(jù)的首字符為并行索引樹根節(jié)點為例進行解釋說明。為表述清 楚而結合一簡化的實例。假設數(shù)據(jù)庫中已經(jīng)存儲了 “a”、“ad”、"an"、“adm”、
"adn"和“and”等數(shù)據(jù)時,如圖3所示為所存儲數(shù)據(jù)的樹狀結構示意圖。需要新增 的數(shù)據(jù)為“adi”。在為這些數(shù)據(jù)建立的并行索引樹中,以首字母“a”作為根節(jié)點,以 各字符作為葉節(jié)點,每個字符可能出現(xiàn)在不同的數(shù)據(jù)中,因此有不同的層數(shù)和位置,則 可以將每一組層數(shù)和位置作為該字符對應的一個葉節(jié)點的參數(shù),則一個字符可能對應多 個葉節(jié)點?;蛘咭部梢詫⒃撟址乃袑訑?shù)和位置組合存儲為該字符的一個葉節(jié)點的參 數(shù),則一個字符對應一個葉節(jié)點。每個字符在各葉節(jié)點的參數(shù)值形式記錄為“字符的數(shù) 據(jù)標識” {層數(shù)1[位置1],層數(shù)2[位置2],......丨。各字符下可掛載葉節(jié)點的參數(shù),當
各字符的數(shù)據(jù)標識具體設定為a = 97,d = 100,m = 109,i = 105,η = 110時,則上 述實例的并行索引樹葉節(jié)點的參數(shù)可表示為表1中的矩陣形式
表 權利要求
1.一種數(shù)據(jù)重復性校驗方法,其特征在于,包括將數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù)進行匹配,所述并行索引 樹的每個葉節(jié)點分別與一個字符對應,且葉節(jié)點的參數(shù)至少包括字符所在數(shù)據(jù)的字符串 長度和字符在所述字符串中的位置;根據(jù)各字符的匹配結果判斷所述數(shù)據(jù)是否與已存儲的數(shù)據(jù)重復,若否,則將所述數(shù) 據(jù)各字符的參數(shù)作為葉節(jié)點的參數(shù)存儲到所述并行索引樹中。
2.根據(jù)權利要求1所述的數(shù)據(jù)重復性校驗方法,其特征在于,當根據(jù)各字符的匹配結 果判斷出所述數(shù)據(jù)與已存儲的數(shù)據(jù)重復之后,還包括將所述數(shù)據(jù)的索引在輔助索引表中進行匹配,所述輔助索引表中包括已存儲數(shù)據(jù)的 索引;根據(jù)所述數(shù)據(jù)在輔助索引表中的匹配結果判斷所述數(shù)據(jù)是否與已存儲的數(shù)據(jù)重復, 若是,則產(chǎn)生數(shù)據(jù)重復結果,若否,則將所述數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點的參數(shù)存儲 到所述并行索引樹中,并將所述數(shù)據(jù)的索引存儲在輔助索引表中。
3.根據(jù)權利要求2所述的數(shù)據(jù)重復性校驗方法,其特征在于,在將數(shù)據(jù)各字符的參數(shù) 在并行索引樹中分別與葉節(jié)點的參數(shù)進行匹配之前,還包括從所述數(shù)據(jù)中截取設定數(shù)量的字符作為在并行索引樹中與葉節(jié)點的參數(shù)進行匹配的 各字符。
4.根據(jù)權利要求2所述的數(shù)據(jù)重復性校驗方法,其特征在于,在將數(shù)據(jù)各字符的參 數(shù)在并行索引樹中分別與已存儲的葉節(jié)點的參數(shù)進行匹配之前,還包括將所述數(shù)據(jù)的 各字符分別轉換為數(shù)據(jù)標識,其中,每個所述葉節(jié)點通過字符的數(shù)據(jù)標識與所述字符對 應,所述數(shù)據(jù)的索引為數(shù)據(jù)標識組成的數(shù)字索引串。
5.根據(jù)權利要求1 4任一所述的數(shù)據(jù)重復性校驗方法,其特征在于,所述并行索引 樹的數(shù)量為多個,各并行索引樹的根節(jié)點對應數(shù)據(jù)字符串的首字符,則將數(shù)據(jù)各字符的 參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù)進行匹配包括根據(jù)所述數(shù)據(jù)字符串的首字符選擇對應的并行索引樹;針對所述數(shù)據(jù)中各字符分別執(zhí)行如下查找匹配操作根據(jù)所述數(shù)據(jù)字符串的長度在選擇的并行索引樹查找葉節(jié)點所在層;根據(jù)字符在數(shù)據(jù)字符串中的位置,在查找到的葉節(jié)點所在層中查找匹配的葉節(jié)點,產(chǎn)生字符查找匹配結果;當識別到一個字符的字符查找匹配結果為否時,產(chǎn)生數(shù)據(jù)查找匹配結果,并停止其 他字符的查找匹配操作。
6.根據(jù)權利要求5所述的數(shù)據(jù)重復性校驗方法,其特征在于,并行索引樹的每個葉節(jié) 點的參數(shù)還包括字符前坐標和/或后坐標,則根據(jù)字符在數(shù)據(jù)字符串中的位置,在查找 到的葉節(jié)點所在層中查找匹配的葉節(jié)點之后,產(chǎn)生字符查找匹配結果之前,所述步驟還 包括將字符的前字符和/或后字符與匹配到的葉節(jié)點的參數(shù)中的前坐標和/或后坐標進行一致性匹配。
7.根據(jù)權利要求1 4任一所述的數(shù)據(jù)重復性校驗方法,其特征在于,葉節(jié)點的參數(shù) 還包括字符出現(xiàn)次數(shù),則將所述數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點的參數(shù)存儲到所述并行索引樹中之后,還包括將對應葉節(jié)點的參數(shù)中的字符出現(xiàn)次數(shù)加一;當刪除數(shù)據(jù)時,根據(jù)刪除數(shù)據(jù)各字符查找并行索引樹中的對應葉節(jié)點,并將查找到 的葉節(jié)點的參數(shù)中字符出現(xiàn)次數(shù)減一。
8.—種數(shù)據(jù)重復性校驗裝置,其特征在于,包括并行索引樹存儲模塊,用于存儲并行索引樹中各葉節(jié)點的參數(shù),所述并行索引樹的 每個葉節(jié)點分別與一個字符對應,且葉節(jié)點的參數(shù)至少包括字符所在數(shù)據(jù)的字符串長度 和字符在所述字符串中的位置;參數(shù)匹配模塊,用于將數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù)進行 匹配;并行重復性判斷模塊,用于根據(jù)各字符的匹配結果判斷所述數(shù)據(jù)是否與已存儲的 數(shù)據(jù)重復,若否,則將所述數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點的參數(shù)存儲到所述并行索引樹 中。
9.根據(jù)權利要求8所述的數(shù)據(jù)重復性校驗裝置,其特征在于,還包括輔助索引表存儲模塊,用于存儲輔助索引表,所述輔助索引表中包括已存儲數(shù)據(jù)的 索引;索引匹配模塊,用于當所述并行重復性判斷模塊根據(jù)各字符的匹配結果判斷出所述 數(shù)據(jù)與已存儲的數(shù)據(jù)重復之后,將所述數(shù)據(jù)的索引在輔助索引表中進行匹配;串行重復性判斷模塊,用于根據(jù)所述數(shù)據(jù)在輔助索引表中的匹配結果判斷所述數(shù)據(jù) 是否與已存儲的數(shù)據(jù)重復,若是,則產(chǎn)生數(shù)據(jù)重復結果,若否,則指示并行重復性判斷 模塊將所述數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點的參數(shù)存儲到所述并行索引樹中,并將所述數(shù) 據(jù)的索引存儲在輔助索引表中;字符截取模塊,用于在將數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù)進 行匹配之前,從所述數(shù)據(jù)中截取設定數(shù)量的字符作為在并行索引樹中與葉節(jié)點的參數(shù)進 行匹配的各字符;數(shù)據(jù)轉換模塊,用于在將數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與已存儲的葉節(jié) 點的參數(shù)進行匹配之前,將所述數(shù)據(jù)的各字符分別轉換為數(shù)據(jù)標識,其中,每個所述葉 節(jié)點通過字符的數(shù)據(jù)標識與所述字符對應,所述數(shù)據(jù)的索引為數(shù)據(jù)標識組成的數(shù)字索引串ο
10.根據(jù)權利要求8所述的數(shù)據(jù)重復性校驗裝置,其特征在于,所述并行索引樹的數(shù) 量為多個,各并行索引樹的根節(jié)點對應數(shù)據(jù)字符串的首字符,則參數(shù)匹配模塊包括索引樹選擇單元,用于根據(jù)所述數(shù)據(jù)字符串的首字符選擇對應的并行索引樹; 一個或一個以上查找匹配單元,用于針對所述數(shù)據(jù)中各字符并行地分別執(zhí)行查找匹 配操作,每個所述查找匹配單元包括層選子單元,用于根據(jù)所述數(shù)據(jù)字符串的長度在選擇的并行索引樹查 找葉節(jié)點所在層;節(jié)點匹配子單元,用于根據(jù)字符在數(shù)據(jù)字符串中的位置,在查找到的葉節(jié)點所在層中查找匹配的葉節(jié)點,產(chǎn)生字符查找匹配結果;結果產(chǎn)生單元,用于當識別到一個字符的字符查找匹配結果為否時,產(chǎn)生數(shù)據(jù)查找匹配結果,并停止其他字符的查找匹配操作。
11.根據(jù)權利要求10所述的數(shù)據(jù)重復性校驗裝置,其特征在于,每個葉節(jié)點的參數(shù)還 包括字符前坐標和/或后坐標,每個所述查找匹配單元還包括坐標匹配子單元,用于根據(jù)字符在數(shù)據(jù)字符串中的位置,在查找到的葉節(jié)點所在層 中查找匹配的葉節(jié)點之后,產(chǎn)生字符查找匹配結果之前,將字符的前字符和/或后字符 與匹配到的葉節(jié)點的參數(shù)中的前坐標和/或后坐標進行一致性匹配。
12.根據(jù)權利要求8所述的數(shù)據(jù)重復性校驗裝置,其特征在于,并行索引樹葉節(jié)點的 參數(shù)還包括字符出現(xiàn)次數(shù),所述裝置還包括次數(shù)增加模塊,用于在將所述數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點的參數(shù)存儲到所述并行 索引樹中之后,將對應葉節(jié)點的參數(shù)中的字符出現(xiàn)次數(shù)加一;次數(shù)減少模塊,用于當刪除數(shù)據(jù)時,根據(jù)刪除數(shù)據(jù)各字符查找并行索引樹中的對應 葉節(jié)點,并將查找到的葉節(jié)點的參數(shù)中字符出現(xiàn)次數(shù)減一。
13.—種數(shù)據(jù)應用系統(tǒng),其特征在于,包括應用服務器,用于接收用戶輸入的數(shù)據(jù),將數(shù)據(jù)提供給校驗服務器進行重復性校驗;校驗服務器,用于將接收到的數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與葉節(jié)點的參 數(shù)進行匹配,所述并行索引樹的每個葉節(jié)點分別與一個字符對應,且葉節(jié)點的參數(shù)至少 包括字符所在數(shù)據(jù)的字符串長度和字符在所述字符串中的位置;根據(jù)各字符的匹配結果 判斷所述數(shù)據(jù)是否與已存儲的數(shù)據(jù)重復,若否,則將所述數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點 的參數(shù)存儲到所述并行索引樹中,同時將所述數(shù)據(jù)提供給數(shù)據(jù)庫服務器進行存儲; 數(shù)據(jù)庫服務器,用于將所述數(shù)據(jù)進行存儲。
全文摘要
本發(fā)明實施例公開了一種數(shù)據(jù)重復性校驗方法和裝置及系統(tǒng)。該方法包括將數(shù)據(jù)各字符的參數(shù)在并行索引樹中分別與葉節(jié)點的參數(shù)進行匹配,并行索引樹的每個葉節(jié)點分別與一個字符對應,且葉節(jié)點參數(shù)至少包括字符所在數(shù)據(jù)的字符串長度和字符在所述字符串中的位置;根據(jù)各字符的匹配結果判斷所述數(shù)據(jù)是否與已存儲的數(shù)據(jù)重復,若否,則將所述數(shù)據(jù)各字符的參數(shù)作為葉節(jié)點參數(shù)存儲到所述并行索引樹中。本發(fā)明實施例提供的數(shù)據(jù)重復性校驗方法和裝置,以并行索引樹的形式對數(shù)據(jù)中各字符的參數(shù)值進行并行的匹配,并且該方案不依賴于存儲數(shù)據(jù)的數(shù)據(jù)庫,從而具有較小的索引量,能夠顯著提高數(shù)據(jù)重復性校驗效率。
文檔編號G06F17/30GK102024046SQ201010588219
公開日2011年4月20日 申請日期2010年12月14日 優(yōu)先權日2010年12月14日
發(fā)明者劉洋 申請人:成都市華為賽門鐵克科技有限公司