国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種存儲(chǔ)信息的處理方法及裝置制造方法

      文檔序號(hào):6499334閱讀:125來(lái)源:國(guó)知局
      一種存儲(chǔ)信息的處理方法及裝置制造方法
      【專利摘要】本發(fā)明提供一種數(shù)據(jù)存儲(chǔ)信息的處理方法及裝置,涉及信息管理領(lǐng)域。方法包括:建立一初級(jí)索引,用于保存數(shù)據(jù)的特征條件;建立一初級(jí)索引,用于保存數(shù)據(jù)的特征條件;針對(duì)所述初級(jí)索引的特征條件建立一次級(jí)索引,用于保存所述數(shù)據(jù)的存儲(chǔ)信息至所述次級(jí)索引中;其中,所述次級(jí)索引為二叉樹(shù)結(jié)構(gòu),其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息;根據(jù)所述初級(jí)索引以及所述次級(jí)索引,對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理。本發(fā)明的方法及裝置,為存儲(chǔ)信息提供了高效率的索引方式,從而提高數(shù)據(jù)信息的吞吐。
      【專利說(shuō)明】一種存儲(chǔ)信息的處理方法及裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及信息管理領(lǐng)域,特別是一種存儲(chǔ)信息的處理方法及裝置。
      【背景技術(shù)】
      [0002]NFC 技術(shù)由非接觸式射頻識(shí)別(Radio Frequency Identification, RFID)技術(shù)和點(diǎn)對(duì)點(diǎn)通信技術(shù)融合演變而來(lái),在0到20cm距離內(nèi)工作于13.56MHz頻率范圍,以106kbit/s、212kbit/s、424kbit/s的傳輸速率進(jìn)行數(shù)據(jù)傳輸,并可以在不同的傳輸速率之間自動(dòng)切換。NFC 技術(shù)符合 IS018092、IS021481、ECMA (340,352 和 356)及 ETSITS102 標(biāo)準(zhǔn),同時(shí)也兼容以IS014441A為基礎(chǔ)的感應(yīng)式智能卡基礎(chǔ)架構(gòu)。
      [0003]NFC應(yīng)用中間件是一種獨(dú)立的系統(tǒng)軟件或服務(wù)程序,負(fù)責(zé)將底層NFC硬件和上層不同的具體應(yīng)用結(jié)合在一起,在NFC應(yīng)用系統(tǒng)的應(yīng)用程序端使用中間件提供的一組通用的應(yīng)用程序接口,即可訪問(wèn)NFC閱讀器并進(jìn)行NFC數(shù)據(jù)的讀取,有效地屏蔽設(shè)備間的差異性。NFC應(yīng)用中間件系統(tǒng)的數(shù)據(jù)管理模塊需要存儲(chǔ)和管理大量的臨時(shí)NFC數(shù)據(jù)記錄,而且對(duì)于NFC中間件系統(tǒng)來(lái)說(shuō),數(shù)據(jù)管理模塊的執(zhí)行效率關(guān)系到整個(gè)系統(tǒng)的性能。因此,需要為數(shù)據(jù)管理模塊設(shè)計(jì)高效的索引方式,以加快系統(tǒng)吞吐率,提高存儲(chǔ)空間的管理效率。
      [0004]傳統(tǒng)的中間件系統(tǒng)中,樹(shù)結(jié)構(gòu)索引是目前應(yīng)用在海量數(shù)據(jù)管理系統(tǒng)中最流行的索引結(jié)構(gòu),AVL樹(shù)、B-樹(shù)、T樹(shù)是樹(shù)結(jié)構(gòu)索引中最常見(jiàn)的三種索引結(jié)構(gòu)。但是這些索引結(jié)構(gòu)大多是針對(duì)磁盤(pán)索引而設(shè)計(jì),也沒(méi)有針對(duì)NFC的數(shù)據(jù)特點(diǎn)進(jìn)行優(yōu)化,難以滿足NFC中間件對(duì)高速數(shù)據(jù)存取的要求。因此,需要針對(duì)NFC數(shù)據(jù)的特點(diǎn),設(shè)計(jì)一種輕量,高效的數(shù)據(jù)索引結(jié)構(gòu)。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明要解決的技術(shù)問(wèn)題是提供一種存儲(chǔ)信息的處理方法及裝置,能夠提高存儲(chǔ)信息的處理效率,從而提高數(shù)據(jù)信息的吞吐率。
      [0006]為解決上述技術(shù)問(wèn)題,本發(fā)明的實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)信息的處理方法,包括如下步驟:
      [0007]建立一初級(jí)索引,用于保存數(shù)據(jù)的特征條件;
      [0008]針對(duì)所述初級(jí)索引的特征條件建立一次級(jí)索引,用于保存所述數(shù)據(jù)的存儲(chǔ)信息至所述次級(jí)索引中;其中,所述次級(jí)索引為二叉樹(shù)結(jié)構(gòu),其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息;
      [0009]根據(jù)所述初級(jí)索引以及所述次級(jí)索引,對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理。
      [0010]其中,根據(jù)所述初級(jí)索引以及所述次級(jí)索引,對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理的步驟包括:
      [0011]根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息保存進(jìn)所述次級(jí)索引中;和/或
      [0012]根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,在所述次級(jí)索引中查詢所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息。[0013]其中,所述特征條件為通過(guò)數(shù)據(jù)的讀取時(shí)間和/或發(fā)布者信息計(jì)算得出的第一類哈希值;所述存儲(chǔ)信息為根據(jù)數(shù)據(jù)的內(nèi)容計(jì)算得出的第二類哈希值;所述門(mén)限范圍為所述次級(jí)索引中,一個(gè)節(jié)點(diǎn)的存儲(chǔ)信息達(dá)到預(yù)設(shè)上限后,所保存的最小第二類哈希值到最大第二類哈希值。
      [0014]其中,根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息保存進(jìn)所述次級(jí)索引中的步驟包括:
      [0015]計(jì)算目標(biāo)數(shù)據(jù)的第一類哈希值與第二類哈希值;
      [0016]判斷所述初級(jí)索引是否包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值;
      [0017]若不包含,則在所述初級(jí)索引中保存所述目標(biāo)數(shù)據(jù)的第一類哈希值,并建立與其對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中;
      [0018]若包含,則找到所述初級(jí)索引中與其相同的第一類哈希值所對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中。
      [0019]其中,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中的步驟包括:
      [0020]Al,以次級(jí)索引中根節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn);
      [0021]A2,判斷所述目標(biāo)數(shù)據(jù)的第二類哈希值是否屬于所述當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若屬于,則進(jìn)行A3 ;若不屬于則進(jìn)行A9 ;
      [0022]A3,判斷該當(dāng)前節(jié)點(diǎn)的存儲(chǔ)數(shù)量是否達(dá)到預(yù)設(shè)上限;若未達(dá)到預(yù)設(shè)上限,則進(jìn)行A4 ;若達(dá)到預(yù)設(shè)上限,則進(jìn)行A6 ;
      [0023]A4,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至所述當(dāng)前節(jié)點(diǎn);之后進(jìn)行A5;
      [0024]A5,根據(jù)二叉樹(shù)平衡特性對(duì)次級(jí)索引進(jìn)行旋轉(zhuǎn),并結(jié)束;
      [0025]A6,判斷所述當(dāng)前節(jié)點(diǎn)是否含有還有左子樹(shù);若含有,則以該左子樹(shù)為當(dāng)前節(jié)點(diǎn),并進(jìn)行A7 ;若未含有,則進(jìn)行A8 ;
      [0026]A7,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至當(dāng)前節(jié)點(diǎn)中,將當(dāng)前節(jié)點(diǎn)的最小第二類哈希值提取出,并以所述提取出的最小第二類哈希值為待保存的第二類哈希值,以當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),重新回到A2,保存所述待保存的第二類哈希值;
      [0027]A8,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至當(dāng)前節(jié)點(diǎn)中,在其當(dāng)前節(jié)點(diǎn)生成一新的左子樹(shù),將當(dāng)前節(jié)點(diǎn)的最小第二類哈希值提取出,并保存至所述新的左子樹(shù)中,以該左子樹(shù)為新的當(dāng)前節(jié)點(diǎn);之后回到A5 ;
      [0028]A9,判斷所述目標(biāo)數(shù)據(jù)的第二類哈希值是否大于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若大于,則進(jìn)行A10;否,則進(jìn)行A12;
      [0029]A10,判斷當(dāng)前節(jié)點(diǎn)是否有右子樹(shù);是,則以該右子樹(shù)為新的當(dāng)前節(jié)點(diǎn),并回到A2 ;否,則進(jìn)行All ;
      [0030]AU,判斷當(dāng)前節(jié)點(diǎn)的是否達(dá)到所述預(yù)設(shè)上限;否,則回到步驟A4 ;是,則回到步驟A8 ;
      [0031]A12,判斷當(dāng)前節(jié)點(diǎn)是否有左子樹(shù);是,則以該做子樹(shù)為新的當(dāng)前節(jié)點(diǎn),并回到步驟A2 ;否,則回到步驟All。
      [0032]其中,根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,在所述次級(jí)索引中查詢所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息的步驟包括:[0033]BI,獲取查找目標(biāo)數(shù)據(jù)存儲(chǔ)信息的指令;
      [0034]B2,計(jì)算所述目標(biāo)數(shù)據(jù)的第一類哈希值和第二類哈希值;
      [0035]B3,在所述初級(jí)索引中搜索與所述目標(biāo)數(shù)據(jù)的第一類哈希值相同的哈希值;
      [0036]B4,對(duì)查找的結(jié)果進(jìn)行判斷;若所述初級(jí)索引中包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值,則進(jìn)行B6 ;否,則查詢失敗;
      [0037]B6,進(jìn)入與所述目標(biāo)數(shù)據(jù)的第一類哈希值對(duì)應(yīng)的次級(jí)索引,以次級(jí)索引的根節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn),開(kāi)始查詢所述目標(biāo)數(shù)據(jù)的第二類哈希值;
      [0038]B7,判斷所述目標(biāo)數(shù)據(jù)的第二哈希值是否屬于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍內(nèi);若屬于,則進(jìn)行B8;若不屬于,則進(jìn)行Bll;
      [0039]B8,進(jìn)一步判斷當(dāng)前節(jié)點(diǎn)是否擁有與所述目標(biāo)數(shù)據(jù)的第二哈希值相等的哈希值;若有,則進(jìn)行B9 ;若無(wú),則進(jìn)行BlO ;
      [0040]B9,查詢成功;
      [0041]B10,查詢失??;
      [0042]BI I,判斷當(dāng)前節(jié)點(diǎn)是不是葉子節(jié)點(diǎn);若是,則進(jìn)行BlO ;若不是,則進(jìn)行B12 ;
      [0043]B12,判斷所述目標(biāo)數(shù)據(jù)的第二哈希值是否大于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若大于,是則進(jìn)行B13 ;若小于,則進(jìn)行B14 ;
      [0044]B13,判斷當(dāng)前節(jié)點(diǎn)是否有右子樹(shù);若有,則進(jìn)行B15 ;若沒(méi)有,則進(jìn)行BlO ;
      [0045]B15,選擇當(dāng)前節(jié)點(diǎn)的右子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn);之后回到B7
      [0046]B14,判斷當(dāng)前節(jié)點(diǎn)是否有左子樹(shù);若有,則進(jìn)行B17 ;若沒(méi)有,回到BlO ;
      [0047]B17,選擇當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn);之后回到B7。
      [0048]其中,若所述次級(jí)索引中的同一節(jié)點(diǎn)的左子樹(shù)與右子樹(shù)的高度差超出預(yù)設(shè)平衡因子的范圍,對(duì)所述次級(jí)索引進(jìn)行旋轉(zhuǎn)操作。
      [0049]本發(fā)明的實(shí)施例還一種數(shù)據(jù)存儲(chǔ)信息的處理裝置,包括:
      [0050]第一建立模塊,用于建立一初級(jí)索引,用于保存數(shù)據(jù)的特征條件;
      [0051]第二建立模塊,用于針對(duì)所述初級(jí)索引的特征條件建立一次級(jí)索引;其中所述次級(jí)索引為二叉樹(shù)結(jié)構(gòu),用于保存所述數(shù)據(jù)的存儲(chǔ)信息至所述次級(jí)索引中,其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息;
      [0052]處理模塊,用于根據(jù)所述初級(jí)索引以及所述次級(jí)索引,對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理。
      [0053]其中,所述處理模塊還包括:
      [0054]保存單元,用于根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息保存進(jìn)所述次級(jí)索引中;和/或
      [0055]查詢單元,根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,在所述次級(jí)索引中查詢所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息。
      [0056]其中,本發(fā)明的裝置還包括:
      [0057]所述特征條件為通過(guò)數(shù)據(jù)的讀取時(shí)間和/或發(fā)布者信息計(jì)算得出的第一類哈希值;所述存儲(chǔ)信息為根據(jù)數(shù)據(jù)的內(nèi)容計(jì)算得出的第二類哈希值;所述門(mén)限范圍為所述次級(jí)索引中,一個(gè)節(jié)點(diǎn)的存儲(chǔ)信息達(dá)到預(yù)設(shè)上限后,所保存的最小第二類哈希值到最大第二類哈希值。
      [0058]其中,所述保存單元具體用于:
      [0059]計(jì)算目標(biāo)數(shù)據(jù)的第一類哈希值與第二類哈希值;
      [0060]判斷所述初級(jí)索引是否包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值;
      [0061]若不包含,則在所述初級(jí)索引中保存所述目標(biāo)數(shù)據(jù)的第一類哈希值,并建立與其對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中;
      [0062]若包含,則找到所述初級(jí)索引中與其相同的第一類哈希值所對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中。
      [0063]其中,本發(fā)明的裝置包括:
      [0064]旋轉(zhuǎn)模塊,用于若所述次級(jí)索引中的同一節(jié)點(diǎn)的左子樹(shù)與右子樹(shù)的高度差超出預(yù)設(shè)平衡因子的范圍,對(duì)所述次級(jí)索引進(jìn)行旋轉(zhuǎn)操作。
      [0065]本發(fā)明的上述技術(shù)方案的有益效果如下:
      [0066]在對(duì)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理時(shí)(如進(jìn)行查找或保存),能夠通過(guò)數(shù)據(jù)的特征條件在初級(jí)索引中找到次級(jí)索引,并且由于所述次級(jí)索引采用二叉樹(shù)結(jié)構(gòu),其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,因此只需要判斷每個(gè)節(jié)點(diǎn)的門(mén)限范圍,即可確定存儲(chǔ)信息需在次級(jí)索引中要保存的位置或者已經(jīng)保存了的位置,從而極大提高了存儲(chǔ)信息的處理效率以及數(shù)據(jù)的吞吐量。
      【專利附圖】

      【附圖說(shuō)明】
      [0067]圖1為本發(fā)明中數(shù)據(jù)存儲(chǔ)信息的處理方法的步驟示意圖;
      [0068]圖2為本發(fā)明中初級(jí)索引與次級(jí)索引對(duì)應(yīng)的關(guān)系示意圖;
      [0069]圖3為本發(fā)明中對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行查詢的步驟示意圖;
      [0070]圖4為本發(fā)明中對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行保存的步驟示意圖;
      [0071]圖5為本發(fā)明中數(shù)據(jù)存儲(chǔ)信息的處理裝置的結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0072]為使本發(fā)明要解決的技術(shù)問(wèn)題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。
      [0073]本發(fā)明的實(shí)施例提供一種數(shù)據(jù)存儲(chǔ)信息的處理方法,包括如下步驟:
      [0074]步驟1,建立一初級(jí)索引,用于保存數(shù)據(jù)的特征條件;
      [0075]步驟2,針對(duì)所述初級(jí)索引的特征條件建立一次級(jí)索引,用于保存所述數(shù)據(jù)的存儲(chǔ)信息至所述次級(jí)索引中;其中,所述次級(jí)索引為二叉樹(shù)結(jié)構(gòu),其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息;
      [0076]步驟3,根據(jù)所述初級(jí)索引以及所述次級(jí)索引,對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理。
      [0077]上述方法
      [0078]在對(duì)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理時(shí)(如進(jìn)行查找或保存),能夠通過(guò)數(shù)據(jù)的特征條件在初級(jí)索引中找到次級(jí)索引,并且由于所述次級(jí)索引采用二叉樹(shù)結(jié)構(gòu),其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,因此只需要判斷每個(gè)節(jié)點(diǎn)的門(mén)限范圍,即可確定存儲(chǔ)信息需在次級(jí)索引中要保存的位置或者已經(jīng)保存了的位置,從而極大提高了存儲(chǔ)信息的處理效率以及數(shù)據(jù)的吞吐量。
      [0079]在本發(fā)明的上述實(shí)施例中,步驟3還可包括:
      [0080]步驟A,根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息保存進(jìn)所述次級(jí)索引中;或
      [0081]步驟B,根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,在所述次級(jí)索引中查詢所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息。
      [0082]其中,所述特征條件為通過(guò)數(shù)據(jù)的讀取時(shí)間和/或發(fā)布者信息計(jì)算得出的第一類哈希值;所述存儲(chǔ)信息為根據(jù)數(shù)據(jù)的內(nèi)容計(jì)算得出的第二類哈希值;所述門(mén)限范圍為所述次級(jí)索引中,一個(gè)節(jié)點(diǎn)的存儲(chǔ)信息達(dá)到預(yù)設(shè)上限后,所保存的最小第二類哈希值到最大第二類哈希值。
      [0083]在本發(fā)明的上述實(shí)施例中,步驟A包括:
      [0084]計(jì)算目標(biāo)數(shù)據(jù)的第一類哈希值與第二類哈希值;
      [0085]判斷所述初級(jí)索引是否包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值;
      [0086]若不包含,則在所述初級(jí)索引中保存所述目標(biāo)數(shù)據(jù)的第一類哈希值,并建立與其對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中;
      [0087]若包含,則找到所述初級(jí)索引中與其相同的第一類哈希值所對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中。
      [0088]在本發(fā)明的上述實(shí)施例中,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中的步驟包括:
      [0089]Al,以次級(jí)索引中根節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn);
      [0090]A2,判斷所述目標(biāo)數(shù)據(jù)的第二類哈希值是否屬于所述當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若屬于,則進(jìn)行A3 ;若不屬于則進(jìn)行A9 ;
      [0091]A3,判斷該當(dāng)前節(jié)點(diǎn)的存儲(chǔ)數(shù)量是否達(dá)到預(yù)設(shè)上限;若未達(dá)到預(yù)設(shè)上限,則進(jìn)行A4 ;若達(dá)到預(yù)設(shè)上限,則進(jìn)行A6 ;
      [0092]A4,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至所述當(dāng)前節(jié)點(diǎn);之后進(jìn)行A5;
      [0093]A5,根據(jù)二叉樹(shù)平衡特性對(duì)次級(jí)索引進(jìn)行旋轉(zhuǎn),并結(jié)束;
      [0094]A6,判斷所述當(dāng)前節(jié)點(diǎn)是否含有還有左子樹(shù);若含有,則以該左子樹(shù)為當(dāng)前節(jié)點(diǎn),并進(jìn)行A7 ;若未含有,則進(jìn)行A8 ;
      [0095]A7,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至當(dāng)前節(jié)點(diǎn)中,將當(dāng)前節(jié)點(diǎn)的最小第二類哈希值提取出,并以所述提取出的最小第二類哈希值為待保存的第二類哈希值,以當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),重新回到A2,保存所述待保存的第二類哈希值;
      [0096]A8,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至當(dāng)前節(jié)點(diǎn)中,在其當(dāng)前節(jié)點(diǎn)生成一新的左子樹(shù),將當(dāng)前節(jié)點(diǎn)的最小第二類哈希值提取出,并保存至所述新的左子樹(shù)中,以該左子樹(shù)為新的當(dāng)前節(jié)點(diǎn);之后回到A5 ;
      [0097]A9,判斷所述目標(biāo)數(shù)據(jù)的第二類哈希值是否大于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若大于,則進(jìn)行A10;否,則進(jìn)行A12;
      [0098]A10,判斷當(dāng)前節(jié)點(diǎn)是否有右子樹(shù);是,則以該右子樹(shù)為新的當(dāng)前節(jié)點(diǎn),并回到A2 ;否,則進(jìn)行All ;[0099]All,判斷當(dāng)前節(jié)點(diǎn)的是否達(dá)到所述預(yù)設(shè)上限;否,則回到步驟A4 ;是,則回到步驟A8 ;
      [0100]A12,判斷當(dāng)前節(jié)點(diǎn)是否有左子樹(shù);是,則以該做子樹(shù)為新的當(dāng)前節(jié)點(diǎn),并回到步驟A2 ;否,則回到步驟All。
      [0101]在本發(fā)明的上述實(shí)施例中,步驟B包括:
      [0102]BI,獲取查找目標(biāo)數(shù)據(jù)存儲(chǔ)信息的指令;
      [0103]B2,計(jì)算所述目標(biāo)數(shù)據(jù)的第一類哈希值和第二類哈希值;
      [0104]B3,在所述初級(jí)索引中搜索與所述目標(biāo)數(shù)據(jù)的第一類哈希值相同的哈希值;
      [0105]B4,對(duì)查找的結(jié)果進(jìn)行判斷;若所述初級(jí)索引中包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值,則進(jìn)行B6 ;否,則查詢失??;
      [0106]B6,進(jìn)入與所述目標(biāo)數(shù)據(jù)的第一類哈希值對(duì)應(yīng)的次級(jí)索引,以次級(jí)索引的根節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn),開(kāi)始查詢所述目標(biāo)數(shù)據(jù)的第二類哈希值;
      [0107]B7,判斷所述目標(biāo)數(shù)據(jù)的第二哈希值是否屬于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍內(nèi);若屬于,則進(jìn)行B8;若不屬于,則進(jìn)行Bll ;
      [0108]B8,進(jìn)一步判斷當(dāng)前節(jié)點(diǎn)是否擁有與所述目標(biāo)數(shù)據(jù)的第二哈希值相等的哈希值;若有,則進(jìn)行B9 ;若無(wú),則進(jìn)行BlO ;
      [0109]B9,查詢成功;
      [0110]B10,查詢失敗;
      [0111]BI I,判斷當(dāng)前節(jié)點(diǎn)是不是葉子節(jié)點(diǎn);若是,則進(jìn)行BlO ;若不是,則進(jìn)行B12 ;
      [0112]B12,判斷所述目標(biāo)數(shù)據(jù)的第二哈希值是否大于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若大于,是則進(jìn)行B13 ;若小于,則進(jìn)行B14 ;
      [0113]B13,判斷當(dāng)前節(jié)點(diǎn)是否有右子樹(shù);若有,則進(jìn)行B15 ;若沒(méi)有,則進(jìn)行BlO ;
      [0114]B15,選擇當(dāng)前節(jié)點(diǎn)的右子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn);之后回到B7
      [0115]B14,判斷當(dāng)前節(jié)點(diǎn)是否有左子樹(shù);若有,則進(jìn)行B17 ;若沒(méi)有,回到BlO ;
      [0116]B17,選擇當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn);之后回到B7。
      [0117]考慮到如果所述次級(jí)索引中存儲(chǔ)數(shù)據(jù)進(jìn)行刪除后,可能會(huì)造成二叉樹(shù)結(jié)構(gòu)不能保持平衡,因此
      [0118]在本發(fā)明的上述實(shí)施例中,在步驟3之后還可以包括:
      [0119]步驟4,若所述次級(jí)索引中的同一節(jié)點(diǎn)的左子樹(shù)與右子樹(shù)的高度差超出預(yù)設(shè)平衡因子的范圍,對(duì)所述次級(jí)索引進(jìn)行旋轉(zhuǎn)操作。
      [0120]下面對(duì)上述方法進(jìn)行具體描述:
      [0121]根據(jù)NFC讀取到的數(shù)據(jù)得到兩個(gè)部分信息。第一部分信息為數(shù)據(jù)的特征條件,包含了數(shù)據(jù)的讀取時(shí)間和/或發(fā)布者信息;第二部分信息為該數(shù)據(jù)的內(nèi)容。利用SHAl算法算出第一部分信息的哈希值,將該哈希值定義為第一類哈希值(即初級(jí)編碼);同理根據(jù)第二部分信息計(jì)算得到的第二類哈希值(即次級(jí)編碼)。
      [0122]如圖2所示,首先構(gòu)建初級(jí)索引,用于保存各個(gè)數(shù)據(jù)的初級(jí)編碼;之后針對(duì)各個(gè)初級(jí)編碼構(gòu)建次級(jí)索引;需要指出的是,由于保存的數(shù)據(jù)量極為龐大,可能會(huì)同一個(gè)發(fā)布者和/或同一讀取時(shí)間存在多個(gè)數(shù)據(jù)(即初級(jí)編碼相同),那么將這些數(shù)據(jù)的次級(jí)編碼都共享一個(gè)初級(jí)編碼,如圖2所示的次級(jí)編碼al-an都保存在與初級(jí)編碼2對(duì)應(yīng)的次級(jí)索引中。[0123]在初步構(gòu)建完成初級(jí)索引以及次級(jí)索引后,即可對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理。
      [0124]如圖3所示,當(dāng)需要查詢目標(biāo)數(shù)據(jù)的存儲(chǔ)信息時(shí)可進(jìn)行如下步驟:
      [0125]步驟301,首先獲取用戶在查找時(shí)需要輸入目標(biāo)數(shù)據(jù)的信息;
      [0126]步驟302,利用SHAl算法目標(biāo)數(shù)據(jù)的初級(jí)編碼以及次級(jí)編碼;
      [0127]步驟303,在初級(jí)索引中進(jìn)行二分查找;
      [0128]步驟304,對(duì)二分查找的結(jié)果進(jìn)行判斷;若初級(jí)索引表中存在與初級(jí)編碼相同的哈希值,進(jìn)入步驟306 ;否則進(jìn)入步驟305,查詢失?。?br> [0129]步驟306,進(jìn)入與初級(jí)編碼對(duì)應(yīng)的次級(jí)索引中,在次級(jí)索引表的根節(jié)點(diǎn)開(kāi)始查詢次級(jí)編碼對(duì)應(yīng)的第二類哈希值;
      [0130]步驟307,判斷次級(jí)編碼對(duì)應(yīng)的第二類哈希值是否在該根節(jié)點(diǎn)擁有的哈希值的范圍內(nèi);若在范圍內(nèi),則進(jìn)入步驟308,否則進(jìn)入步驟311 ;
      [0131]步驟308,進(jìn)一步判斷該節(jié)點(diǎn)是否擁有與初級(jí)編碼相等的哈希值。若有,則進(jìn)入步驟309,查詢成功;若無(wú),則進(jìn)入步驟310,查詢失敗;
      [0132]步驟311,判斷當(dāng)前節(jié)點(diǎn)是不是二叉樹(shù)的葉子節(jié)點(diǎn)。若是,則進(jìn)入步驟310,查詢失敗;若不是,則進(jìn)入步驟312;
      [0133]步驟312,判斷次級(jí)編碼對(duì)應(yīng)的第二類哈希值是否大于當(dāng)前節(jié)點(diǎn)已保存的最大第二類哈希值。若是則進(jìn)入步驟313,否則進(jìn)入步驟314;
      [0134]步驟313,判斷當(dāng)前節(jié)點(diǎn)是否有右子樹(shù)。若有則進(jìn)入步驟315 ;否則進(jìn)入步驟316,查詢失敗;
      [0135]步驟315,由于該二叉樹(shù)中節(jié)點(diǎn)的右子樹(shù)只包含大于該節(jié)點(diǎn)最大哈希值的記錄,因此選擇當(dāng)前節(jié)點(diǎn)的右子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),從其保存的第二類哈希值中繼續(xù)進(jìn)行查詢;
      [0136]步驟314,判斷當(dāng)前節(jié)點(diǎn)是否有左子樹(shù)。若有則進(jìn)入步驟317 ;否則進(jìn)入步驟316,查詢失??;
      [0137]步驟317,由于該二叉樹(shù)中節(jié)點(diǎn)的左子樹(shù)只包含小于該節(jié)點(diǎn)最小哈希值的記錄,因此選擇當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),從其保存的第二類哈希值中繼續(xù)進(jìn)行查詢;
      [0138]步驟315和步驟317后續(xù)的過(guò)程重復(fù)步驟307至步驟313、步驟307至314的循環(huán),直至查詢成功或查詢失敗。
      [0139]如圖4所示,當(dāng)需要查詢目標(biāo)數(shù)據(jù)的存儲(chǔ)信息時(shí)可進(jìn)行如下步驟:
      [0140]步驟401,獲取查找目標(biāo)數(shù)據(jù)存儲(chǔ)信息的指令;
      [0141]步驟402,利用SHAl算法算出目標(biāo)數(shù)據(jù)的初級(jí)編碼以及次級(jí)編碼;
      [0142]步驟403,在初級(jí)索引中進(jìn)行二分查找,若不存在與目標(biāo)數(shù)據(jù)的初級(jí)編碼相同的哈希值,進(jìn)入步驟404,否則進(jìn)入步驟407 ;
      [0143]步驟404,將目標(biāo)數(shù)據(jù)的初級(jí)編碼插入到初級(jí)索引中,并新建一個(gè)與之對(duì)應(yīng)次級(jí)索弓丨,進(jìn)入步驟405 ;
      [0144]步驟405,新建一個(gè)根節(jié)點(diǎn),將目標(biāo)數(shù)據(jù)的次級(jí)編碼作為該根節(jié)點(diǎn)的哈希值插入次級(jí)索引表,完成次級(jí)索引記錄的添加,進(jìn)入步驟406;[0145]步驟406,由于次級(jí)索引表是一個(gè)平衡二叉樹(shù)結(jié)構(gòu),記錄的添加會(huì)導(dǎo)致二叉樹(shù)不平衡,因此需要在此步驟進(jìn)行旋轉(zhuǎn)操作。由于旋轉(zhuǎn)操作屬于平衡二叉樹(shù)中的基礎(chǔ)內(nèi)容,在本發(fā)明中就不再做詳細(xì)敘述;完成旋轉(zhuǎn)操作后,進(jìn)入步驟420,整個(gè)添加過(guò)程結(jié)束;
      [0146]步驟407,進(jìn)入與目標(biāo)數(shù)據(jù)的初級(jí)編碼相同的哈希值所對(duì)應(yīng)的次級(jí)索引,從該次級(jí)索引的根節(jié)點(diǎn)開(kāi)始查詢目標(biāo)數(shù)據(jù)的次級(jí)編碼應(yīng)當(dāng)插入的位置;
      [0147]步驟408,判斷目標(biāo)數(shù)據(jù)的次級(jí)編碼的哈希值是否在該根節(jié)點(diǎn)擁有的哈希值的范圍內(nèi),即是否滿足:該節(jié)點(diǎn)最小哈希值< 目標(biāo)數(shù)據(jù)的次級(jí)編碼<該節(jié)點(diǎn)最大哈希值;若不在范圍內(nèi),則進(jìn)入步驟409,否則進(jìn)入步驟414 ;
      [0148]步驟409,判斷此節(jié)點(diǎn)中是否有足夠的存儲(chǔ)空間;假設(shè)每個(gè)節(jié)點(diǎn)的存儲(chǔ)上限為50,即判斷是否滿足該節(jié)點(diǎn)已保存的第二類哈希值的數(shù)量〈50 ;若是,則進(jìn)入步驟410,否則進(jìn)入步驟411 ;
      [0149]步驟410,在當(dāng)前節(jié)點(diǎn)的哈希值中進(jìn)行二分查找,找到應(yīng)當(dāng)插入目標(biāo)數(shù)據(jù)的次級(jí)編碼的位置,并將該次級(jí)編碼插入;插入后該節(jié)點(diǎn)的所有哈希值依然可以保持從小到大排列;完成插入后,進(jìn)入步驟406,進(jìn)行旋轉(zhuǎn)操作,完成整個(gè)添加過(guò)程;
      [0150]步驟411,判斷此當(dāng)前節(jié)點(diǎn)是否有左子樹(shù),若有左子樹(shù)則進(jìn)入步驟412,否則進(jìn)入步驟413 ;
      [0151]步驟412,在當(dāng)前節(jié)點(diǎn)的第二類哈希值中進(jìn)行二分查找,找到應(yīng)當(dāng)插入目標(biāo)數(shù)據(jù)的次級(jí)編碼的位置,并將該次級(jí)編碼插入;插入后該節(jié)點(diǎn)的所有哈希值依然保持從小到大排列;完成插入后,該節(jié)點(diǎn)中擁有51個(gè)哈希值,而一個(gè)節(jié)點(diǎn)只能存儲(chǔ)50個(gè)哈希值,因此需要進(jìn)行置換操作,即將節(jié)點(diǎn)的當(dāng)前最小哈希值中抽出;抽出后的當(dāng)前節(jié)點(diǎn)存儲(chǔ)的哈希值中,最小的哈希值成為該節(jié)點(diǎn)新的門(mén)限范圍的下限(即最小哈希值);以剛才抽出的哈希值作為新的待保存的次級(jí)編碼,以當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),重新開(kāi)始插入該待保存的次級(jí)編碼的過(guò)程,進(jìn)入步驟408 ;
      [0152]置換操作相當(dāng)于在當(dāng)前節(jié)點(diǎn)所存數(shù)的第二類哈希值已達(dá)到預(yù)設(shè)上限的情況下,將目標(biāo)數(shù)據(jù)的次級(jí)編碼插入此結(jié)點(diǎn),然后將結(jié)點(diǎn)中的最小第二類哈希插入到該節(jié)點(diǎn)的左子樹(shù)中,之后以此類推,并重新開(kāi)始遞歸插入操作;
      [0153]步驟413,在當(dāng)前節(jié)點(diǎn)的哈希值中進(jìn)行查找,找到應(yīng)當(dāng)插入目標(biāo)數(shù)據(jù)的次級(jí)編碼的位置,并插入;插入后該節(jié)點(diǎn)所保存的哈希值可以保持從小到大的排列;完成插入后,將當(dāng)前節(jié)點(diǎn)的最小哈希值抽出,為當(dāng)前節(jié)點(diǎn)新建一個(gè)左子樹(shù)節(jié)點(diǎn),成為當(dāng)前節(jié)點(diǎn),將抽出的哈希值插入到當(dāng)前節(jié)點(diǎn)中;由于此時(shí)的當(dāng)前節(jié)點(diǎn)只有一個(gè)哈希值,因此可將該當(dāng)前節(jié)點(diǎn)的最小哈希值看作O ;插入操作完成后,進(jìn)入步驟406,進(jìn)行旋轉(zhuǎn)操作,完成整個(gè)添加過(guò)程;
      [0154]步驟414,判斷目標(biāo)數(shù)據(jù)的次級(jí)編碼是否大于當(dāng)前節(jié)點(diǎn)的最大哈希值;若是則進(jìn)入步驟415,否則進(jìn)入步驟417 ;
      [0155]步驟415,判斷當(dāng)前節(jié)點(diǎn)是否存在右子樹(shù),若存在則進(jìn)入步驟416,否則進(jìn)入步驟419 ;
      [0156]步驟416,由于該節(jié)點(diǎn)的右子樹(shù)只包含哈希值大于該節(jié)點(diǎn)最大哈希值的記錄,因此以當(dāng)前節(jié)點(diǎn)的右子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),進(jìn)入步驟408,重新開(kāi)始遞歸插入操;
      [0157]步驟417,判斷當(dāng)前節(jié)點(diǎn)是否存在左子樹(shù),若存在則進(jìn)入步驟418,否則進(jìn)入步驟419 ;[0158]在步驟418,由于該節(jié)點(diǎn)的左子樹(shù)只包含哈希值小于該節(jié)點(diǎn)最小哈希值的記錄,因此以當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),進(jìn)入步驟408,重新開(kāi)始遞歸插入操作;
      [0159]在步驟419,判斷此節(jié)點(diǎn)中是否有足夠的存儲(chǔ)空間,即是否滿足此節(jié)點(diǎn)保存的第二類哈希值數(shù)量〈50 ;若是,則進(jìn)入步驟410,否則進(jìn)入步驟413。
      [0160]當(dāng)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息查詢成功后,還可對(duì)刪除次級(jí)索引中的存儲(chǔ)信息進(jìn)行刪除,但是這樣一來(lái)會(huì)造成次級(jí)索引無(wú)法保持平衡,因此,可對(duì)每個(gè)節(jié)點(diǎn)都設(shè)一個(gè)平衡因子B,用于表示這個(gè)結(jié)點(diǎn)的左、右子樹(shù)的高度差,也就是左子樹(shù)的高度減去右子樹(shù)的高度的結(jié)果值。若所有的節(jié)點(diǎn)上的B值為_(kāi)1、0、1,則該二叉樹(shù)保持平衡;若有一個(gè)節(jié)點(diǎn)的|B|>=2,則次級(jí)索引就不在是平衡二叉樹(shù)結(jié)構(gòu),需要進(jìn)行旋轉(zhuǎn)操作。
      [0161]綜上所述本發(fā)明的方法對(duì)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理時(shí)(如進(jìn)行查找或保存),能夠通過(guò)數(shù)據(jù)的特征條件在初級(jí)索引中找到次級(jí)索引,并且由于所述次級(jí)索引采用二叉樹(shù)結(jié)構(gòu),其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,因此只需要判斷每個(gè)節(jié)點(diǎn)的門(mén)限范圍,即可確定存儲(chǔ)信息需在次級(jí)索引中要保存的位置或者已經(jīng)保存了的位置,從而極大提高了存儲(chǔ)信息的處理效率以及數(shù)據(jù)的吞吐量;此外,具有相同特征條件的數(shù)據(jù)的存儲(chǔ)信息共享同一個(gè)初級(jí)索引,可進(jìn)一步加快存儲(chǔ)信息的保存與查詢時(shí)間;此外,對(duì)次級(jí)索引預(yù)設(shè)平衡因子,對(duì)超出預(yù)設(shè)平衡因子的次級(jí)索引進(jìn)行旋轉(zhuǎn)操作,從而維持次級(jí)索引的平衡。
      [0162]如圖5所示,本發(fā)明的實(shí)施例還提供一種數(shù)據(jù)存儲(chǔ)信息的處理裝置,包括:
      [0163]第一建立模塊,用于建立一初級(jí)索引,用于保存數(shù)據(jù)的特征條件;
      [0164]第二建立模塊,用于針對(duì)所述初級(jí)索引的特征條件建立一次級(jí)索引;其中所述次級(jí)索引為二叉樹(shù)結(jié)構(gòu),用于保存所述數(shù)據(jù)的存儲(chǔ)信息至所述次級(jí)索引中,其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息;
      [0165]處理模塊,用于根據(jù)所述初級(jí)索引以及所述次級(jí)索引,對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理。
      [0166]上述裝置在對(duì)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理時(shí)(如進(jìn)行查找或保存),能夠通過(guò)數(shù)據(jù)的特征條件在初級(jí)索引中找到次級(jí)索引,并且由于所述次級(jí)索引采用二叉樹(shù)結(jié)構(gòu),其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,因此只需要判斷每個(gè)節(jié)點(diǎn)的門(mén)限范圍,即可確定存儲(chǔ)信息需在次級(jí)索引中要保存的位置或者已經(jīng)保存了的位置,從而極大提高了存儲(chǔ)信息的處理效率以及數(shù)據(jù)的吞吐量。
      [0167]在本發(fā)明的上述實(shí)施例中,所述處理模塊還包括:
      [0168]保存單元,用于根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息保存進(jìn)所述次級(jí)索引中;和/或
      [0169]查詢單元,根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,在所述次級(jí)索引中查詢所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息;
      [0170]其中,所述特征條件為通過(guò)數(shù)據(jù)的讀取時(shí)間和/或發(fā)布者信息計(jì)算得出的第一類哈希值;所述存儲(chǔ)信息為根據(jù)數(shù)據(jù)的內(nèi)容計(jì)算得出的第二類哈希值;所述門(mén)限范圍為所述次級(jí)索引中,一個(gè)節(jié)點(diǎn)的存儲(chǔ)信息達(dá)到預(yù)設(shè)上限后,所保存的最小第二類哈希值到最大第二類哈希值;
      [0171]在本發(fā)明的上述實(shí)施例中,所述保存單元具體用于:
      [0172]計(jì)算目標(biāo)數(shù)據(jù)的第一類哈希值與第二類哈希值;
      [0173]判斷所述初級(jí)索引是否包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值;
      [0174]若不包含,則在所述初級(jí)索引中保存所述目標(biāo)數(shù)據(jù)的第一類哈希值,并建立與其對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中;
      [0175]若包含,則找到所述初級(jí)索引中與其相同的第一類哈希值所對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中。
      [0176]下面對(duì)保存單元將第二類哈希值保存至次級(jí)索引所需的步驟進(jìn)行進(jìn)一步描述:
      [0177]Al,以次級(jí)索引中根節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn);
      [0178]A2,判斷所述目標(biāo)數(shù)據(jù)的第二類哈希值是否屬于所述當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若屬于,則進(jìn)行A3 ;若不屬于則進(jìn)行A9 ;
      [0179]A3,判斷該當(dāng)前節(jié)點(diǎn)的存儲(chǔ)數(shù)量是否達(dá)到預(yù)設(shè)上限;若未達(dá)到預(yù)設(shè)上限,則進(jìn)行A4 ;若達(dá)到預(yù)設(shè)上限,則進(jìn)行A6 ;
      [0180]A4,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至所述當(dāng)前節(jié)點(diǎn);之后進(jìn)行A5;
      [0181]A5,根據(jù)二叉樹(shù)平衡特性對(duì)次級(jí)索引進(jìn)行旋轉(zhuǎn),并結(jié)束;
      [0182]A6,判斷所述當(dāng)前節(jié)點(diǎn)是否含有還有左子樹(shù);若含有,則以該左子樹(shù)為當(dāng)前節(jié)點(diǎn),并進(jìn)行A7 ;若未含有,則進(jìn)行A8 ;
      [0183]A7,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至當(dāng)前節(jié)點(diǎn)中,將當(dāng)前節(jié)點(diǎn)的最小第二類哈希值提取出,并以所述提取出的最小第二類哈希值為待保存的第二類哈希值,以當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),重新回到A2,保存所述待保存的第二類哈希值;
      [0184]A8,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至當(dāng)前節(jié)點(diǎn)中,在其當(dāng)前節(jié)點(diǎn)生成一新的左子樹(shù),將當(dāng)前節(jié)點(diǎn)的最小第二類哈希值提取出,并保存至所述新的左子樹(shù)中,以該左子樹(shù)為新的當(dāng)前節(jié)點(diǎn);之后回到A5 ;
      [0185]A9,判斷所述目標(biāo)數(shù)據(jù)的第二類哈希值是否大于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若大于,則進(jìn)行A10;否,則進(jìn)行A12;
      [0186]A10,判斷當(dāng)前節(jié)點(diǎn)是否有右子樹(shù);是,則以該右子樹(shù)為新的當(dāng)前節(jié)點(diǎn),并回到A2 ;否,則進(jìn)行All ;
      [0187]AU,判斷當(dāng)前節(jié)點(diǎn)的是否達(dá)到所述預(yù)設(shè)上限;否,則回到步驟A4 ;是,則回到步驟A8 ;
      [0188]A12,判斷當(dāng)前節(jié)點(diǎn)是否有左子樹(shù);是,則以該做子樹(shù)為新的當(dāng)前節(jié)點(diǎn),并回到步驟A2 ;否,則回到步驟All。
      [0189]下面對(duì)查詢單元根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,在所述次級(jí)索引中查詢所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息的步驟進(jìn)行詳細(xì)描述:
      [0190]BI,獲取查找目標(biāo)數(shù)據(jù)存儲(chǔ)信息的指令;
      [0191]B2,計(jì)算所述目標(biāo)數(shù)據(jù)的第一類哈希值和第二類哈希值;
      [0192]B3,在所述初級(jí)索引中進(jìn)行搜索所述目標(biāo)數(shù)據(jù)的第一類哈希值;[0193]B4,對(duì)查找的結(jié)果進(jìn)行判斷;若所述初級(jí)索引中包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值,則進(jìn)行B6 ;否,則查詢失??;
      [0194]B6,進(jìn)入與所述目標(biāo)數(shù)據(jù)的第一類哈希值對(duì)應(yīng)的次級(jí)索引,以次級(jí)索引的根節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn),開(kāi)始查詢所述目標(biāo)數(shù)據(jù)的第二類哈希值;
      [0195]B7,判斷所述目標(biāo)數(shù)據(jù)的第二哈希值是否屬于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍內(nèi);若屬于,則進(jìn)行B8;若不屬于,則進(jìn)行Bll;
      [0196]B8,進(jìn)一步判斷當(dāng)前節(jié)點(diǎn)是否擁有與所述目標(biāo)數(shù)據(jù)的第二哈希值相等的哈希值;若有,則進(jìn)行B9,查詢成功;若無(wú),則進(jìn)行B10,查詢失?。?br> [0197]B11,判斷當(dāng)前節(jié)點(diǎn)是不是葉子節(jié)點(diǎn);若是,則進(jìn)行B10,查詢失??;若不是,則進(jìn)行B2 ;
      [0198]B12,判斷所述目標(biāo)數(shù)據(jù)的第二哈希值是否大于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若大于,是則進(jìn)行B13 ;若小于,則進(jìn)行B14 ;
      [0199]B13,判斷當(dāng)前節(jié)點(diǎn)是否有右子樹(shù);若有,則進(jìn)行B15 ;若沒(méi)有,則進(jìn)行B16,查詢失敗;
      [0200]B15,選擇當(dāng)前節(jié)點(diǎn)的右子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn);之后回到B7
      [0201]B14,判斷當(dāng)前節(jié)點(diǎn)是否有左子樹(shù);若有,則進(jìn)行B17 ;若沒(méi)有,回到B16,查詢失?。?br> [0202]B17,選擇當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn);之后回到B7。
      [0203]當(dāng)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息查詢成功后,還可對(duì)刪除次級(jí)索引中的存儲(chǔ)信息進(jìn)行刪除,但是這樣一來(lái)會(huì)造成次級(jí)索引無(wú)法保持平衡,因此在本發(fā)明的上述實(shí)施例中,本裝置還可以包括:
      [0204]旋轉(zhuǎn)模塊,用于若所述次級(jí)索引中的同一節(jié)點(diǎn)的左子樹(shù)與右子樹(shù)的高度差超出預(yù)設(shè)平衡因子的范圍,對(duì)所述次級(jí)索引進(jìn)行旋轉(zhuǎn)操作,從而維持次級(jí)索引的平衡。
      [0205]顯然,上述實(shí)施例為本發(fā)明中一種數(shù)據(jù)存儲(chǔ)信息的處理方法對(duì)應(yīng)的裝置實(shí)施例,所述數(shù)據(jù)存儲(chǔ)信息的處理方法達(dá)到的技術(shù)效果,本實(shí)施例的裝置也同樣能夠達(dá)到。
      [0206]以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
      【權(quán)利要求】
      1.一種數(shù)據(jù)存儲(chǔ)信息的處理方法,其特征在于,包括如下步驟: 建立一初級(jí)索引,用于保存數(shù)據(jù)的特征條件; 針對(duì)所述初級(jí)索引的特征條件建立一次級(jí)索引,用于保存所述數(shù)據(jù)的存儲(chǔ)信息至所述次級(jí)索引中;其中,所述次級(jí)索引為二叉樹(shù)結(jié)構(gòu),其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息; 根據(jù)所述初級(jí)索引以及所述次級(jí)索引,對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理。
      2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲(chǔ)信息的處理方法,其特征在于,根據(jù)所述初級(jí)索引以及所述次級(jí)索引,對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理的步驟包括: 根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息保存進(jìn)所述次級(jí)索引中;和/或 根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,在所述次級(jí)索引中查詢所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息。
      3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)存儲(chǔ)信息的處理方法,其特征在于,所述特征條件為通過(guò)數(shù)據(jù)的讀取時(shí)間和/或發(fā)布者信息計(jì)算得出的第一類哈希值;所述存儲(chǔ)信息為根據(jù)數(shù)據(jù)的內(nèi)容計(jì)算得出的第二類哈希值;所述門(mén)限范圍為所述次級(jí)索引中,一個(gè)節(jié)點(diǎn)的存儲(chǔ)信息達(dá)到預(yù)設(shè)上限后,所保存的最小第二類哈希值到最大第二類哈希值。
      4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)存儲(chǔ)信息的處理方法,其特征在于,根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息保存進(jìn)所述次級(jí)索引中的步驟包括: 計(jì)算目標(biāo)數(shù)據(jù)的第一類哈希值與第二類哈希值; 判斷所述初級(jí)索引是否包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值; 若不包含,則在所述初級(jí)索引中保存所述目標(biāo)數(shù)據(jù)的第一類哈希值,并建立與其對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中; 若包含,則找到所述初級(jí)索引中與其相同的第一類哈希值所對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中。
      5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)存儲(chǔ)信息的處理方法,其特征在于,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中的步驟包括: Al,以次級(jí)索引中根節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn); A2,判斷所述目標(biāo)數(shù)據(jù)的第二類哈希值是否屬于所述當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若屬于,則進(jìn)行A3 ;若不屬于則進(jìn)行A9; A3,判斷該當(dāng)前節(jié)點(diǎn)的存儲(chǔ)數(shù)量是否達(dá)到預(yù)設(shè)上限;若未達(dá)到預(yù)設(shè)上限,則進(jìn)行A4 ;若達(dá)到預(yù)設(shè)上限,則進(jìn)行A6; A4,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至所述當(dāng)前節(jié)點(diǎn);之后進(jìn)行A5; A5,根據(jù)二叉樹(shù)平衡特性對(duì)次級(jí)索引進(jìn)行旋轉(zhuǎn),并結(jié)束; A6,判斷所述當(dāng)前節(jié)點(diǎn)是否含有還有左子樹(shù);若含有,則以該左子樹(shù)為當(dāng)前節(jié)點(diǎn),并進(jìn)行A7 ;若未含有,則進(jìn)行A8 ; A7,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至當(dāng)前節(jié)點(diǎn)中,將當(dāng)前節(jié)點(diǎn)的最小第二類哈希值提取出,并以所述提取出的最小第二類哈希值為待保存的第二類哈希值,以當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn),重新回到A2,保存所述待保存的第二類哈希值;AS,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至當(dāng)前節(jié)點(diǎn)中,在其當(dāng)前節(jié)點(diǎn)生成一新的左子樹(shù),將當(dāng)前節(jié)點(diǎn)的最小第二類哈希值提取出,并保存至所述新的左子樹(shù)中,以該左子樹(shù)為新的當(dāng)前節(jié)點(diǎn);之后回到A5; A9,判斷所述目標(biāo)數(shù)據(jù)的第二類哈希值是否大于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若大于,則進(jìn)行AlO ;否,則進(jìn)行A12 ; A10,判斷當(dāng)前節(jié)點(diǎn)是否有右子樹(shù);是,則以該右子樹(shù)為新的當(dāng)前節(jié)點(diǎn),并回到A2;否,則進(jìn)行All ; All,判斷當(dāng)前節(jié)點(diǎn)的是否達(dá)到所述預(yù)設(shè)上限;否,則回到步驟A4 ;是,則回到步驟AS ;A12,判斷當(dāng)前節(jié)點(diǎn)是否有左子樹(shù);是,則以該做子樹(shù)為新的當(dāng)前節(jié)點(diǎn),并回到步驟A2 ;否,則回到步驟All。
      6.根據(jù) 權(quán)利要求5所述的數(shù)據(jù)存儲(chǔ)信息的處理方法,其特征在于,根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,在所述次級(jí)索引中查詢所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息的步驟包括: BI,獲取查找目標(biāo)數(shù)據(jù)存儲(chǔ)信息的指令; B2,計(jì)算所述目標(biāo)數(shù)據(jù)的第一類哈希值和第二類哈希值; B3,在所述初級(jí)索引中搜索與所述目標(biāo)數(shù)據(jù)的第一類哈希值相同的哈希值; B4,對(duì)查找的結(jié)果進(jìn)行判斷;若所述初級(jí)索引中包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值,則進(jìn)行B6 ;否,則查詢失敗; B6,進(jìn)入與所述目標(biāo)數(shù)據(jù)的第一類哈希值對(duì)應(yīng)的次級(jí)索引,以次級(jí)索引的根節(jié)點(diǎn)為當(dāng)前節(jié)點(diǎn),開(kāi)始查詢所述目標(biāo)數(shù)據(jù)的第二類哈希值; B7,判斷所述目標(biāo)數(shù)據(jù)的第二哈希值是否屬于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍內(nèi);若屬于,則進(jìn)行B8 ;若不屬于,則進(jìn)行Bll ; B8,進(jìn)一步判斷當(dāng)前節(jié)點(diǎn)是否擁有與所述目標(biāo)數(shù)據(jù)的第二哈希值相等的哈希值;若有,則進(jìn)行B9 ;若無(wú),則進(jìn)行BlO ; B9,查詢成功; B10,查詢失??; BI I,判斷當(dāng)前節(jié)點(diǎn)是不是葉子節(jié)點(diǎn);若是,則進(jìn)行BlO ;若不是,則進(jìn)行B12 ; B12,判斷所述目標(biāo)數(shù)據(jù)的第二哈希值是否大于當(dāng)前節(jié)點(diǎn)的門(mén)限范圍;若大于,是則進(jìn)行B13 ;若小于,則進(jìn)行B14 ; B13,判斷當(dāng)前節(jié)點(diǎn)是否有右子樹(shù);若有,則進(jìn)行B15 ;若沒(méi)有,則進(jìn)行BlO ; B15,選擇當(dāng)前節(jié)點(diǎn)的右子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn);之后回到B7 B14,判斷當(dāng)前節(jié)點(diǎn)是否有左子樹(shù);若有,則進(jìn)行B17 ;若沒(méi)有,回到BlO ; B17,選擇當(dāng)前節(jié)點(diǎn)的左子樹(shù)的根節(jié)點(diǎn)作為新的當(dāng)前節(jié)點(diǎn);之后回到B7。
      7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲(chǔ)信息的處理方法,其特征在于,若所述次級(jí)索引中的同一節(jié)點(diǎn)的左子樹(shù)與右子樹(shù)的高度差超出預(yù)設(shè)平衡因子的范圍,對(duì)所述次級(jí)索引進(jìn)行旋轉(zhuǎn)操作。
      8.一種數(shù)據(jù)存儲(chǔ)信息的處理裝置,其特征在于,包括: 第一建立模塊,用于建立一初級(jí)索引,用于保存數(shù)據(jù)的特征條件; 第二建立模塊,用于針對(duì)所述初級(jí)索引的特征條件建立一次級(jí)索引;其中所述次級(jí)索引為二叉樹(shù)結(jié)構(gòu),用于保存所述數(shù)據(jù)的存儲(chǔ)信息至所述次級(jí)索引中,其一個(gè)節(jié)點(diǎn)中的左子樹(shù)只保存小于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息,右子樹(shù)只保存大于該節(jié)點(diǎn)門(mén)限范圍的存儲(chǔ)信息; 處理模塊,用于根據(jù)所述初級(jí)索引以及所述次級(jí)索引,對(duì)目標(biāo)數(shù)據(jù)的存儲(chǔ)信息進(jìn)行處理。
      9.根據(jù)權(quán)利要求8所述的存儲(chǔ)信息的處理裝置,其特征在于,所述處理模塊還包括: 保存單元,用于根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息保存進(jìn)所述次級(jí)索引中;和/或 查詢單元,根據(jù)所述初級(jí)索引中的特征條件找到所述次級(jí)索引,在所述次級(jí)索引中查詢所述目標(biāo)數(shù)據(jù)的存儲(chǔ)信息。
      10.根據(jù)權(quán)利要求9所述的存儲(chǔ)信息的處理裝置,其特征在于,還包括: 所述特征條件為通過(guò)數(shù)據(jù)的讀取時(shí)間和/或發(fā)布者信息計(jì)算得出的第一類哈希值;所述存儲(chǔ)信息為根據(jù)數(shù)據(jù)的內(nèi)容計(jì)算得出的第二類哈希值;所述門(mén)限范圍為所述次級(jí)索引中,一個(gè)節(jié)點(diǎn)的存儲(chǔ)信息達(dá)到預(yù)設(shè)上限后,所保存的最小第二類哈希值到最大第二類哈希值。
      11.根據(jù)權(quán)利要求10所述的存儲(chǔ)信息的處理裝置,其特征在于,所述保存單元具體用于: 計(jì)算目標(biāo)數(shù)據(jù)的第一類哈希值與第二類哈希值; 判斷所述初級(jí)索引是否包含與所述目標(biāo)數(shù)據(jù)的第一類哈希值相等的哈希值; 若不包含,則在所述初級(jí)索引中保存所述目標(biāo)數(shù)據(jù)的第一類哈希值,并建立與其對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中; 若包含,則找到所述初級(jí)索引中與其相同的第一類哈希值所對(duì)應(yīng)的次級(jí)索引,將所述目標(biāo)數(shù)據(jù)的第二類哈希值保存至該次級(jí)索引中。
      12.根據(jù)權(quán)利要求8所 述的存儲(chǔ)信息的處理裝置,其特征在于,包括: 旋轉(zhuǎn)模塊,用于若所述次級(jí)索引中的同一節(jié)點(diǎn)的左子樹(shù)與右子樹(shù)的高度差超出預(yù)設(shè)平衡因子的范圍,對(duì)所述次級(jí)索引進(jìn)行旋轉(zhuǎn)操作。
      【文檔編號(hào)】G06F17/30GK103970739SQ201310027573
      【公開(kāi)日】2014年8月6日 申請(qǐng)日期:2013年1月24日 優(yōu)先權(quán)日:2013年1月24日
      【發(fā)明者】郭帥, 王立, 魏紅潑, 羅迤寶 申請(qǐng)人:中興通訊股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1