1.一種高維空間數(shù)據(jù)的查詢方法,其特征在于,包括:
針對(duì)高維空間的每一個(gè)數(shù)據(jù)點(diǎn),確定相應(yīng)的Z值;
將各個(gè)數(shù)據(jù)點(diǎn)按照相應(yīng)Z值的大小順序,依次存儲(chǔ)到磁盤(pán)中的磁盤(pán)頁(yè)面上;
根據(jù)每一個(gè)數(shù)據(jù)點(diǎn)相應(yīng)的Z值和存儲(chǔ)有數(shù)據(jù)點(diǎn)的各個(gè)磁盤(pán)頁(yè)面,建立索引表;
確定查詢點(diǎn),并計(jì)算所述索引表中每一個(gè)磁盤(pán)頁(yè)面與所述查詢點(diǎn)的距離;
根據(jù)所述索引表中每一個(gè)磁盤(pán)頁(yè)面與所述查詢點(diǎn)的距離,進(jìn)行數(shù)據(jù)查詢。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述針對(duì)高維空間的每一個(gè)數(shù)據(jù)點(diǎn),確定相應(yīng)的Z值,包括:
利用下述方式確定高維空間中當(dāng)前數(shù)據(jù)點(diǎn)p的Z值:
確定復(fù)合LSH函數(shù)G,其中,復(fù)合LSH函數(shù)G中包括m個(gè)哈希函數(shù),m為不小于1的整數(shù);
計(jì)算當(dāng)前數(shù)據(jù)點(diǎn)p在復(fù)合LSH函數(shù)G下的復(fù)合哈希鍵K=G(p);其中,ki用于表征復(fù)合哈希鍵K中第i個(gè)哈希值,每一個(gè)哈希值為二進(jìn)制數(shù);
針對(duì)復(fù)合哈希鍵K中包括的每一個(gè)哈希值進(jìn)行位交叉操作,生成當(dāng)前數(shù)據(jù)點(diǎn)p的Z值Z(p);
利用上述確定當(dāng)前數(shù)據(jù)點(diǎn)p的Z值的方式,確定高維空間中除當(dāng)前數(shù)據(jù)點(diǎn)p以外的其他每一個(gè)數(shù)據(jù)點(diǎn)相應(yīng)的Z值。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)每一個(gè)數(shù)據(jù)點(diǎn)相應(yīng)的Z值和存儲(chǔ)有數(shù)據(jù)點(diǎn)的各個(gè)磁盤(pán)頁(yè)面,建立索引表,包括:
在每一個(gè)磁盤(pán)頁(yè)面上選擇第一設(shè)定個(gè)數(shù)的數(shù)據(jù)點(diǎn)作為相應(yīng)磁盤(pán)頁(yè)面的代表數(shù)據(jù)點(diǎn);
根據(jù)每一個(gè)代表數(shù)據(jù)點(diǎn)對(duì)應(yīng)的Z值,構(gòu)建B+樹(shù)索引;
將所述B+樹(shù)索引和存儲(chǔ)有數(shù)據(jù)點(diǎn)的各個(gè)磁盤(pán)頁(yè)面,構(gòu)建為索引表。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,
所述第一設(shè)定個(gè)數(shù)為2;
所述計(jì)算所述索引表中每一個(gè)磁盤(pán)頁(yè)面與所述查詢點(diǎn)的距離,包括:
利用第一公式計(jì)算所述索引表中當(dāng)前磁盤(pán)頁(yè)面與所述查詢點(diǎn)q的距離DistPage:
所述第一公式:
其中,Zq用于表征所述查詢點(diǎn)q對(duì)應(yīng)的Z值,L和U分別為在該當(dāng)前磁盤(pán)頁(yè)面上選擇的兩個(gè)代表數(shù)據(jù)點(diǎn)分別對(duì)應(yīng)的Z值;dist(Zq,L)用于表征Zq與L之間的距離,dist(Zq,U)用于表征Zq與U之間的距離。
5.根據(jù)權(quán)利要求1-4中任一所述的方法,其特征在于,
進(jìn)一步包括:建立第二設(shè)定個(gè)數(shù)的索引表,以根據(jù)所述第二設(shè)定個(gè)數(shù)的索引表執(zhí)行所述根據(jù)所述索引表中每一個(gè)磁盤(pán)頁(yè)面與所述查詢點(diǎn)的距離,進(jìn)行數(shù)據(jù)查詢的操作;
所述根據(jù)所述索引表中每一個(gè)磁盤(pán)頁(yè)面與所述查詢點(diǎn)的距離,進(jìn)行數(shù)據(jù)查詢,包括:
S1:將每一個(gè)索引表中距離所述查詢點(diǎn)最近的磁盤(pán)頁(yè)面,以及該磁盤(pán)頁(yè)面相鄰的一個(gè)磁盤(pán)頁(yè)面加載到頁(yè)面集中;
S2:在所述頁(yè)面集中計(jì)算距離所述查詢點(diǎn)最近的目標(biāo)磁盤(pán)頁(yè)面,將所述目標(biāo)磁盤(pán)頁(yè)面從所述頁(yè)面集中取出;
S3:針對(duì)取出的所述目標(biāo)磁盤(pán)頁(yè)面上的各個(gè)數(shù)據(jù)點(diǎn)進(jìn)行查詢,并將所述目標(biāo)磁盤(pán)頁(yè)面所屬索引表中與所述目標(biāo)磁盤(pán)頁(yè)面相鄰的且未加載到所述頁(yè)面集中的磁盤(pán)頁(yè)面加載到所述頁(yè)面集中,并繼續(xù)執(zhí)行S2-S3,直到S3中進(jìn)行查詢的目標(biāo)磁盤(pán)頁(yè)面為從所述頁(yè)面集中取出的第NP個(gè)磁盤(pán)頁(yè)面為止,其中,NP為預(yù)先設(shè)置的第三設(shè)定個(gè)數(shù)。
6.一種高維空間數(shù)據(jù)的查詢裝置,其特征在于,包括:
確定單元,用于針對(duì)高維空間的每一個(gè)數(shù)據(jù)點(diǎn),確定相應(yīng)的Z值;
放置單元,用于將各個(gè)數(shù)據(jù)點(diǎn)按照相應(yīng)Z值的大小順序,依次存儲(chǔ)到磁盤(pán)中的磁盤(pán)頁(yè)面上;
建立單元,用于根據(jù)每一個(gè)數(shù)據(jù)點(diǎn)相應(yīng)的Z值和存儲(chǔ)有數(shù)據(jù)點(diǎn)的各個(gè)磁盤(pán)頁(yè)面,建立索引表;
計(jì)算單元,用于確定查詢點(diǎn),并計(jì)算所述索引表中每一個(gè)磁盤(pán)頁(yè)面與所述查詢點(diǎn)的距離;
查詢單元,用于根據(jù)所述索引表中每一個(gè)磁盤(pán)頁(yè)面與所述查詢點(diǎn)的距離,進(jìn)行數(shù)據(jù)查詢。
7.根據(jù)權(quán)利要求6所述的高維空間數(shù)據(jù)的查詢裝置,其特征在于,
所述確定單元,具體用于利用下述方式確定高維空間中當(dāng)前數(shù)據(jù)點(diǎn)p的Z值:
確定復(fù)合LSH函數(shù)G,其中,復(fù)合LSH函數(shù)G中包括m個(gè)哈希函數(shù),m為不小于1的整數(shù);
計(jì)算當(dāng)前數(shù)據(jù)點(diǎn)p在復(fù)合LSH函數(shù)G下的復(fù)合哈希鍵K=G(p);其中,ki用于表征復(fù)合哈希鍵K中第i個(gè)哈希值,每一個(gè)哈希值為二進(jìn)制數(shù);
針對(duì)復(fù)合哈希鍵K中包括的每一個(gè)哈希值進(jìn)行位交叉操作,生成當(dāng)前數(shù)據(jù)點(diǎn)p的Z值Z(p);
利用上述確定當(dāng)前數(shù)據(jù)點(diǎn)p的Z值的方式,確定高維空間中除當(dāng)前數(shù)據(jù)點(diǎn)p以外的其他每一個(gè)數(shù)據(jù)點(diǎn)相應(yīng)的Z值;
和/或,
所述建立單元,具體用于:
在每一個(gè)磁盤(pán)頁(yè)面上選擇第一設(shè)定個(gè)數(shù)的數(shù)據(jù)點(diǎn)作為相應(yīng)磁盤(pán)頁(yè)面的代表數(shù)據(jù)點(diǎn);
根據(jù)每一個(gè)代表數(shù)據(jù)點(diǎn)對(duì)應(yīng)的Z值,構(gòu)建B+樹(shù)索引;
將所述B+樹(shù)索引和存儲(chǔ)有數(shù)據(jù)點(diǎn)的各個(gè)磁盤(pán)頁(yè)面,構(gòu)建為索引表。
8.根據(jù)權(quán)利要求7所述的高維空間數(shù)據(jù)的查詢裝置,其特征在于,
所述第一設(shè)定個(gè)數(shù)為2;
所述計(jì)算單元,具體用于利用第一公式計(jì)算所述索引表中當(dāng)前磁盤(pán)頁(yè)面與所述查詢點(diǎn)q的距離DistPage:
所述第一公式:
其中,Zq用于表征所述查詢點(diǎn)q對(duì)應(yīng)的Z值,L和U分別為在該當(dāng)前磁盤(pán)頁(yè)面上選擇的兩個(gè)代表數(shù)據(jù)點(diǎn)分別對(duì)應(yīng)的Z值;dist(Zq,L)用于表征Zq與L之間的距離,dist(Zq,U)用于表征Zq與U之間的距離。
9.根據(jù)權(quán)利要求6-8中任一所述的高維空間數(shù)據(jù)的查詢裝置,其特征在于,
所述建立單元,進(jìn)一步用于建立第二設(shè)定個(gè)數(shù)的索引表,以根據(jù)所述第二設(shè)定個(gè)數(shù)的索引表執(zhí)行所述根據(jù)所述索引表中每一個(gè)磁盤(pán)頁(yè)面與所述查詢點(diǎn)的距離,進(jìn)行數(shù)據(jù)查詢的操作;
所述查詢單元,具體用于執(zhí)行如下步驟:
S1:將每一個(gè)索引表中距離所述查詢點(diǎn)最近的磁盤(pán)頁(yè)面,以及該磁盤(pán)頁(yè)面相鄰的一個(gè)磁盤(pán)頁(yè)面加載到頁(yè)面集中;
S2:在所述頁(yè)面集中計(jì)算距離所述查詢點(diǎn)最近的目標(biāo)磁盤(pán)頁(yè)面,將所述目標(biāo)磁盤(pán)頁(yè)面從所述頁(yè)面集中取出;
S3:針對(duì)取出的所述目標(biāo)磁盤(pán)頁(yè)面上的各個(gè)數(shù)據(jù)點(diǎn)進(jìn)行查詢,并將所述目標(biāo)磁盤(pán)頁(yè)面所屬索引表中與所述目標(biāo)磁盤(pán)頁(yè)面相鄰的且未加載到所述頁(yè)面集中的磁盤(pán)頁(yè)面加載到所述頁(yè)面集中,并繼續(xù)執(zhí)行S2-S3,直到S3中進(jìn)行查詢的目標(biāo)磁盤(pán)頁(yè)面為從所述頁(yè)面集中取出的第NP個(gè)磁盤(pán)頁(yè)面為止,其中,NP為預(yù)先設(shè)置的第三設(shè)定個(gè)數(shù)。
10.一種計(jì)算機(jī)可讀介質(zhì),其特征在于,所述計(jì)算機(jī)可讀介質(zhì)上存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令在被處理器執(zhí)行時(shí),使所述處理器執(zhí)行權(quán)利要求1至5中任一所述的方法。