數(shù)值、年齡的數(shù)值等。
[0036] 下面將結(jié)合【具體實(shí)施方式】,對(duì)圖1所示的處理流程進(jìn)行詳細(xì)的說明,內(nèi)容可以如 下:
[0037] 步驟101,基于預(yù)設(shè)編碼算法,確定數(shù)據(jù)庫中的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼,其中,預(yù)設(shè) 編碼算法包括根據(jù)預(yù)設(shè)層數(shù),對(duì)數(shù)值型數(shù)據(jù)對(duì)應(yīng)的數(shù)值范圍進(jìn)行多層二分處理,并根據(jù)數(shù) 值型數(shù)據(jù)在每層劃分出的各數(shù)值范圍中所屬的數(shù)值范圍,確定數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼。
[0038] 其中,多層二分處理是對(duì)數(shù)值范圍進(jìn)行多次二分的處理,具體可以將數(shù)值范圍在 其中點(diǎn)處分成兩半得到兩個(gè)數(shù)值范圍,此即為第二層,再將第二層的兩個(gè)數(shù)值范圍分別在 其中點(diǎn)處分成兩半得到四個(gè)數(shù)值范圍,此即為第三層,依此類推??梢姷趉層的數(shù)值范圍的 數(shù)目為2k。
[0039] 在實(shí)施中,預(yù)設(shè)編碼算法是對(duì)任意一個(gè)數(shù)值型數(shù)據(jù)進(jìn)行編碼的方法,其編碼過程 可以如下:
[0040] 可以預(yù)先確定該數(shù)值型數(shù)據(jù)對(duì)應(yīng)的數(shù)值范圍,該數(shù)值范圍可以由技術(shù)人員根據(jù)實(shí) 際需求預(yù)先設(shè)置,也可以將其設(shè)置為數(shù)據(jù)庫中的實(shí)際數(shù)據(jù)的數(shù)值范圍,例如,如果數(shù)據(jù)庫中 存儲(chǔ)的不是三元組而是獨(dú)立的數(shù)據(jù),那么可以將數(shù)據(jù)庫中所有數(shù)值型數(shù)據(jù)中最大值和最小 值之間的數(shù)值范圍,作為這些數(shù)值型數(shù)據(jù)對(duì)應(yīng)的數(shù)值范圍。另外,上述預(yù)設(shè)層數(shù)可以是固定 數(shù)值,或者,還可以根據(jù)預(yù)設(shè)的范圍查詢精度,來預(yù)先設(shè)置多層二分處理的層數(shù)k,范圍查詢 精度可以認(rèn)為是范圍查詢的最小區(qū)間長度L,相應(yīng)的層數(shù)可以通過下面公式計(jì)算得到:
【主權(quán)項(xiàng)】
1. 一種數(shù)據(jù)查詢的方法,其特征在于,所述方法包括: 基于預(yù)設(shè)編碼算法,確定數(shù)據(jù)庫中的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼,其中,所述預(yù)設(shè)編碼算 法包括根據(jù)預(yù)設(shè)層數(shù),對(duì)所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的數(shù)值范圍進(jìn)行多層二分處理,并根據(jù)所述 數(shù)值型數(shù)據(jù)在每層劃分出的各數(shù)值范圍中所屬的數(shù)值范圍,確定所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編 碼; 根據(jù)所述數(shù)據(jù)庫中各數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼,建立位向量查詢樹; 當(dāng)接收到攜帶有數(shù)值范圍條件的查詢請(qǐng)求時(shí),基于所述預(yù)設(shè)編碼算法,分別確定所述 數(shù)值范圍條件中上限的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的第一編碼以及下限的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的第二編 碼; 根據(jù)所述位向量查詢樹,以及所述第一編碼和所述第二編碼進(jìn)行按位與處理得到的第 三編碼,查詢所述數(shù)據(jù)庫中符合所述查詢請(qǐng)求的數(shù)值型數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)值型數(shù)據(jù)為三元組的客體;所述查 詢請(qǐng)求中還攜帶有所述上限的數(shù)值型數(shù)據(jù)和所述下限的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的謂詞; 所述根據(jù)預(yù)設(shè)層數(shù),對(duì)所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的數(shù)值范圍進(jìn)行多層二分處理,包括: 確定所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的謂詞,并獲取預(yù)先存儲(chǔ)的確定出的謂詞所對(duì)應(yīng)的數(shù)值范 圍; 根據(jù)預(yù)設(shè)層數(shù),對(duì)所述數(shù)值范圍進(jìn)行多層二分處理。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基于預(yù)設(shè)編碼算法,確定數(shù)據(jù)庫中的 數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼之前,還包括: 存儲(chǔ)所述數(shù)據(jù)庫中每個(gè)謂詞對(duì)應(yīng)的預(yù)設(shè)的數(shù)值范圍;或者, 確定所述數(shù)據(jù)庫中的每個(gè)謂詞對(duì)應(yīng)的屬于數(shù)值型數(shù)據(jù)的所有客體的數(shù)值范圍,作為對(duì) 應(yīng)的謂詞的數(shù)值范圍進(jìn)行存儲(chǔ)。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述數(shù)值型數(shù)據(jù)在每層劃分出 的各數(shù)值范圍中所屬的數(shù)值范圍,確定所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼,包括: 對(duì)于每層劃分出的各數(shù)值范圍,將所述數(shù)值型數(shù)據(jù)所屬的數(shù)值范圍的編碼設(shè)置為1,將 其它數(shù)值范圍的編碼設(shè)置為〇,并將所述各數(shù)值范圍的編碼按數(shù)值范圍的順序連接,得到每 層對(duì)應(yīng)的編碼; 將每層對(duì)應(yīng)的編碼按照層的順序連接,得到所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述數(shù)值型數(shù)據(jù)在每層劃分出 的各數(shù)值范圍中所屬的數(shù)值范圍,確定所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼,包括: 對(duì)于每層劃分出的各數(shù)值范圍,將所述數(shù)值型數(shù)據(jù)所屬的數(shù)值范圍和其相鄰的前一個(gè) 數(shù)值范圍的編碼設(shè)置為1,將其它數(shù)值范圍的編碼設(shè)置為〇,并將所述各數(shù)值范圍的編碼按 數(shù)值范圍的順序連接,得到每層對(duì)應(yīng)的編碼;將每層對(duì)應(yīng)的編碼按照層的順序連接,得到所 述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼;或者, 對(duì)于每層劃分出的各數(shù)值范圍,將所述數(shù)值型數(shù)據(jù)所屬的數(shù)值范圍和其相鄰的后一個(gè) 數(shù)值范圍的編碼設(shè)置為1,將其它數(shù)值范圍的編碼設(shè)置為〇,并將所述各數(shù)值范圍的編碼按 數(shù)值范圍的順序連接,得到每層對(duì)應(yīng)的編碼;將每層對(duì)應(yīng)的編碼按照層的順序連接,得到所 述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼。
6. 根據(jù)權(quán)利要求4或5所述的方法,其特征在于,所述將每層對(duì)應(yīng)的編碼按照層的順序 連接,得到所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼,包括: 將每層對(duì)應(yīng)的編碼按照層的順序連接,得到過渡編碼; 基于散列算法,將所述過渡編碼中預(yù)設(shè)位數(shù)以后的編碼,散列到所述過渡編碼中預(yù)設(shè) 位數(shù)內(nèi)的數(shù)值為O的編碼位上,得到所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼。
7. -種數(shù)據(jù)查詢的裝置,其特征在于,所述裝置包括: 編碼模塊,用于基于預(yù)設(shè)編碼算法,確定數(shù)據(jù)庫中的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼,其中,所 述預(yù)設(shè)編碼算法包括根據(jù)預(yù)設(shè)層數(shù),對(duì)所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的數(shù)值范圍進(jìn)行多層二分處 理,并根據(jù)所述數(shù)值型數(shù)據(jù)在每層劃分出的各數(shù)值范圍中所屬的數(shù)值范圍,確定所述數(shù)值 型數(shù)據(jù)對(duì)應(yīng)的編碼; 建樹模塊,用于根據(jù)所述數(shù)據(jù)庫中各數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼,建立位向量查詢樹; 所述編碼模塊,用于當(dāng)接收到攜帶有數(shù)值范圍條件的查詢請(qǐng)求時(shí),基于所述預(yù)設(shè)編碼 算法,分別確定所述數(shù)值范圍條件中上限的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的第一編碼以及下限的數(shù)值型 數(shù)據(jù)對(duì)應(yīng)的第二編碼; 查詢模塊,用于根據(jù)所述位向量查詢樹,以及所述第一編碼和所述第二編碼進(jìn)行按位 與處理得到的第三編碼,查詢所述數(shù)據(jù)庫中符合所述查詢請(qǐng)求的數(shù)值型數(shù)據(jù)。
8. 根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述數(shù)值型數(shù)據(jù)為三元組的客體;所述查 詢請(qǐng)求中還攜帶有所述上限的數(shù)值型數(shù)據(jù)和所述下限的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的謂詞; 所述編碼模塊,用于: 確定所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的謂詞,并獲取預(yù)先存儲(chǔ)的確定出的謂詞所對(duì)應(yīng)的數(shù)值范 圍; 根據(jù)預(yù)設(shè)層數(shù),對(duì)所述數(shù)值范圍進(jìn)行多層二分處理。
9. 根據(jù)權(quán)利要求2所述的裝置,其特征在于,所述裝置還包括存儲(chǔ)模塊,用于: 存儲(chǔ)所述數(shù)據(jù)庫中每個(gè)謂詞對(duì)應(yīng)的預(yù)設(shè)的數(shù)值范圍;或者, 確定所述數(shù)據(jù)庫中的每個(gè)謂詞對(duì)應(yīng)的屬于數(shù)值型數(shù)據(jù)的所有客體的數(shù)值范圍,作為對(duì) 應(yīng)的謂詞的數(shù)值范圍進(jìn)行存儲(chǔ)。
10. 根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述編碼模塊,用于: 對(duì)于每層劃分出的各數(shù)值范圍,將所述數(shù)值型數(shù)據(jù)所屬的數(shù)值范圍的編碼設(shè)置為1,將 其它數(shù)值范圍的編碼設(shè)置為〇,并將所述各數(shù)值范圍的編碼按數(shù)值范圍的順序連接,得到每 層對(duì)應(yīng)的編碼; 將每層對(duì)應(yīng)的編碼按照層的順序連接,得到所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼。
11. 根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述編碼模塊,用于: 對(duì)于每層劃分出的各數(shù)值范圍,將所述數(shù)值型數(shù)據(jù)所屬的數(shù)值范圍和其相鄰的前一個(gè) 數(shù)值范圍的編碼設(shè)置為1,將其它數(shù)值范圍的編碼設(shè)置為〇,并將所述各數(shù)值范圍的編碼按 數(shù)值范圍的順序連接,得到每層對(duì)應(yīng)的編碼;將每層對(duì)應(yīng)的編碼按照層的順序連接,得到所 述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼;或者, 對(duì)于每層劃分出的各數(shù)值范圍,將所述數(shù)值型數(shù)據(jù)所屬的數(shù)值范圍和其相鄰的后一個(gè) 數(shù)值范圍的編碼設(shè)置為1,將其它數(shù)值范圍的編碼設(shè)置為〇,并將所述各數(shù)值范圍的編碼按 數(shù)值范圍的順序連接,得到每層對(duì)應(yīng)的編碼;將每層對(duì)應(yīng)的編碼按照層的順序連接,得到所 述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼。
12.根據(jù)權(quán)利要求4或5所述的裝置,其特征在于,所述編碼模塊,用于: 將每層對(duì)應(yīng)的編碼按照層的順序連接,得到過渡編碼; 基于散列算法,用于將所述過渡編碼中預(yù)設(shè)位數(shù)以后的編碼,散列到所述過渡編碼中 預(yù)設(shè)位數(shù)內(nèi)的數(shù)值為〇的編碼位上,得到所述數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼。
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)查詢的方法和裝置,屬于計(jì)算機(jī)技術(shù)領(lǐng)域。所述方法包括:基于預(yù)設(shè)編碼算法,確定數(shù)據(jù)庫中的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼;根據(jù)數(shù)據(jù)庫中各數(shù)值型數(shù)據(jù)對(duì)應(yīng)的編碼,建立位向量查詢樹;當(dāng)接收到攜帶有數(shù)值范圍條件的查詢請(qǐng)求時(shí),基于所述預(yù)設(shè)編碼算法,分別確定所述數(shù)值范圍條件中上限的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的第一編碼以及下限的數(shù)值型數(shù)據(jù)對(duì)應(yīng)的第二編碼;根據(jù)所述位向量查詢樹,以及所述第一編碼和所述第二編碼進(jìn)行按位與處理得到的第三編碼,查詢所述數(shù)據(jù)庫中符合所述查詢請(qǐng)求的數(shù)值型數(shù)據(jù)。采用本發(fā)明,可以提高數(shù)據(jù)查詢的效率。
【IPC分類】G06F17-30
【公開號(hào)】CN104765790
【申請(qǐng)?zhí)枴緾N201510131306
【發(fā)明人】沈許川, 王巨宏, 管剛, 路彥雄, 陳波, 劉懷軍, 劉婷婷, 鄒磊, 趙東巖
【申請(qǐng)人】北京大學(xué), 騰訊科技(深圳)有限公司
【公開日】2015年7月8日
【申請(qǐng)日】2015年3月24日