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