国产精品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>

      一種倒排索引的構(gòu)建方法和裝置、檢索方法和裝置的制造方法

      文檔序號:10580138閱讀:226來源:國知局
      一種倒排索引的構(gòu)建方法和裝置、檢索方法和裝置的制造方法
      【專利摘要】本發(fā)明實施例提供一種倒排索引的構(gòu)建方法和裝置、檢索方法和裝置,所述構(gòu)建方法包括創(chuàng)建數(shù)組,所述數(shù)組包含m個元素;將待索引數(shù)據(jù)集合中的m個數(shù)據(jù)對應(yīng)至所述數(shù)組的m個元素;其中,所述待索引數(shù)據(jù)集合中m個數(shù)據(jù)的屬性構(gòu)成屬性集合,所述屬性集合包含n個屬性,至少一個所述屬性對應(yīng)s個屬性值,m為正整數(shù),n大于等于零,s大于等于零;對于所述待索引數(shù)據(jù)集合中的每一數(shù)據(jù),遍歷該數(shù)據(jù)的屬性和相應(yīng)屬性值的組合;對每一所述組合,設(shè)置該組合對應(yīng)的位向量為設(shè)定值以得到更新后的鍵值對集合。本發(fā)明實施利用位向量的小存儲量、高運算特性做了優(yōu)化,可以極大的提高倒排檢索的速度,極大地減少內(nèi)存占用,從而可以提高系統(tǒng)吞吐量和穩(wěn)定性。
      【專利說明】
      -種倒排索引的構(gòu)建方法和裝置、檢索方法和裝置
      技術(shù)領(lǐng)域
      [0001] 本發(fā)明設(shè)及信息捜索技術(shù)領(lǐng)域,具體設(shè)及一種倒排索引的構(gòu)建方法和裝置、檢索 方法和裝置。
      【背景技術(shù)】
      [0002] 倒排索引是一種索引方法,被用來存儲在全文捜索下某個單詞在一個文檔或者一 組文檔中的存儲位置的映射。它是文檔檢索系統(tǒng)中最常用的數(shù)據(jù)結(jié)構(gòu)。通過倒排索引,可W 根據(jù)單詞快速獲取包含運個單詞的文檔列表。
      [0003] 倒排索引是檢索系統(tǒng)的核屯、部分,負責根據(jù)系統(tǒng)輸入的屬性值查找符合條件的記 錄。倒排索引的生命周期中包括創(chuàng)建和使用兩個環(huán)節(jié)。首先倒排索引系統(tǒng)需要根據(jù)現(xiàn)有的 記錄集合創(chuàng)建倒排索引。然后檢索系統(tǒng)根據(jù)用戶輸入的屬性值在倒排索引中查找符合條件 的記錄ID?,F(xiàn)有的倒排索引技術(shù)應(yīng)用最廣的是Lucene為代表的基于分詞和文檔。
      [0004] 基于Lucene的倒排索引技術(shù)比較適合較大待索引數(shù)據(jù)集合的全文檢索的場景,在 運種情況下,屬性及屬性值的取值范圍非常大,倒排索引樹需要存放在磁盤中。但對于響應(yīng) 時間十分敏感的檢索系統(tǒng)來說,Lucene的檢索效率不能滿足需求。譬如在廣告投放引擎中, 待檢索的數(shù)據(jù)集一般在幾萬數(shù)量級W內(nèi),待檢索的屬性是固定的,屬性值的取值范圍在幾 千數(shù)量級W內(nèi),并且基本都是精確檢索,沒有模糊檢索和全文檢索的場景。廣告投放引擎對 響應(yīng)速度非常敏感,要求倒排索引的檢索耗時控制在毫秒內(nèi),此時基于Lucene的倒排索引 并不能滿足檢索的需求。

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

      [0005] 本發(fā)明實施例提供一種倒排索引的構(gòu)建方法,所述方法包括:
      [0006] 創(chuàng)建數(shù)組,所述數(shù)組包含m個元素;
      [0007] 將待索引數(shù)據(jù)集合中的m個數(shù)據(jù)對應(yīng)至所述數(shù)組的m個元素;其中,所述待索引數(shù) 據(jù)集合中m個數(shù)據(jù)的屬性構(gòu)成屬性集合,所述屬性集合包含n個屬性,至少一個所述屬性對 應(yīng)S個屬性值,m為正整數(shù),n大于等于零,S大于等于零;
      [000引對于所述待索引數(shù)據(jù)集合中的每一數(shù)據(jù),遍歷該數(shù)據(jù)的屬性和相應(yīng)屬性值的組 合;
      [0009] 對每一所述組合,設(shè)置該組合對應(yīng)的位向量為設(shè)定值W得到更新后的鍵值對集 厶 1=1 O
      [0010] 優(yōu)選地,所述設(shè)置該所述組合對應(yīng)的位向量為設(shè)定值前,所述方法還包括:
      [0011] 對每一所述組合,判斷初始鍵值對集合中是否有該組合對應(yīng)的鍵值對,所述該組 合的鍵值對由該組合及該組合對應(yīng)的位向量構(gòu)成;
      [0012] 若所述初始鍵值對集合中沒有該組合對應(yīng)的鍵值對,則創(chuàng)建該組合對應(yīng)的鍵值 對;
      [0013] 所述設(shè)置該組合對應(yīng)的位向量為設(shè)定值,包括:
      [0014] 設(shè)置該組合對應(yīng)的鍵值對中位向量的所有位均為第一設(shè)定值。
      [0015] 優(yōu)選地,所述方法還包括:
      [0016] 若所述初始鍵值對集合中有該組合對應(yīng)的鍵值對,根據(jù)所述數(shù)組獲取該組合對應(yīng) 的待索引數(shù)據(jù)集合中的數(shù)據(jù)的下標值;
      [0017] 所述設(shè)置該組合對應(yīng)的位向量為設(shè)定值,包括:
      [0018] 設(shè)置所述位向量的所述下標值對應(yīng)的位置為第二設(shè)定值。
      [0019] 優(yōu)選地,至少一個所述屬性的屬性值為空,所述方法還包括:
      [0020] 遍歷所述屬性集合;
      [0021] 對于所述屬性集合中的每一個所述屬性,在所述更新后的鍵值對集合中創(chuàng)建特定 組合的鍵值對,設(shè)置位向量所有位置為第一設(shè)定值,其中所述特定組合為屬性值為空的屬 性及其屬性值構(gòu)成的組合。
      [0022] 優(yōu)選地,所述方法還包括:
      [0023] 遍歷所述待索引數(shù)據(jù)集合;
      [0024] 確定所述待索引數(shù)據(jù)集合中一數(shù)據(jù)的一屬性的屬性值為空;
      [0025] 確定該數(shù)據(jù)對應(yīng)所述數(shù)組中的下標值;
      [0026] 將所述更新后的鍵值對集合中W所述下標值對應(yīng)的位向量的所述下標值對應(yīng)的 對應(yīng)位置設(shè)置為所述第二設(shè)定值。
      [0027] 另外,本發(fā)明實施例還提供一種倒排索引的構(gòu)建裝置,所述裝置包括:
      [00%]第一創(chuàng)建單元,用于創(chuàng)建數(shù)組,所述數(shù)組包含m個元素;
      [0029] 對應(yīng)單元,用于將待索引數(shù)據(jù)集合中的m個數(shù)據(jù)對應(yīng)至所述數(shù)組的m個元素;其中, 所述待索引數(shù)據(jù)集合中m個數(shù)據(jù)的屬性構(gòu)成屬性集合,所述屬性集合包含n個屬性,至少一 個所述屬性對應(yīng)S個屬性值,m為正整數(shù),n大于等于零,S大于等于零;
      [0030] 第一遍歷單元,用于對于所述待索引數(shù)據(jù)集合中的每一數(shù)據(jù),遍歷該數(shù)據(jù)的屬性 和相應(yīng)屬性值的組合;
      [0031] 設(shè)置單元,用于對每一所述組合,設(shè)置該組合對應(yīng)的位向量為設(shè)定值W得到更新 后的鍵值對集合。
      [0032] 優(yōu)選地,所述裝置還包括:
      [0033] 判斷單元,用于對每一所述組合,判斷初始鍵值對集合中是否有該組合對應(yīng)的鍵 值對,所述該組合的鍵值對由該組合及該組合對應(yīng)的位向量構(gòu)成;
      [0034] 第二創(chuàng)建單元,用于在所述初始鍵值對集合中沒有該組合對應(yīng)的鍵值對時,創(chuàng)建 該組合對應(yīng)的鍵值對;
      [0035] 所述設(shè)置單元,具體用于設(shè)置該組合對應(yīng)的鍵值對中位向量的所有位均為第一設(shè) 定值。
      [0036] 優(yōu)選地,所述裝置還包括:
      [0037] 獲取單元,用于若所述初始鍵值對集合中有該組合對應(yīng)的鍵值對,根據(jù)所述數(shù)組 獲取該組合對應(yīng)的待索引數(shù)據(jù)集合中的數(shù)據(jù)的下標值;
      [0038] 所述設(shè)置單元具體用于設(shè)置所述下標值對應(yīng)的位向量的所有位置為第二設(shè)定值。
      [0039] 優(yōu)選地,至少一個所述屬性的屬性值為空,所述裝置還包括:
      [0040] 第二遍歷單元,用于遍歷所述屬性集合;
      [0041 ]第=創(chuàng)建單元,用于對于所述屬性集合中的每一個所述屬性,在所述更新后的鍵 值對集合中創(chuàng)建特定組合的鍵值對,
      [0042] 第二設(shè)置單元,用于設(shè)置位向量為第一設(shè)定值,其中所述特定組合為屬性值為空 的屬性及其屬性值構(gòu)成的組合。
      [0043] 優(yōu)選地,所述裝置還包括:
      [0044] 第=遍歷單元,用于遍歷所述待索引數(shù)據(jù)集合;
      [0045] 第一確定單元,用于確定所述待索引數(shù)據(jù)集合中一數(shù)據(jù)的一屬性的屬性值為空;
      [0046] 第二確定單元,用于確定該數(shù)據(jù)對應(yīng)所述數(shù)組中的下標值;
      [0047] 第=設(shè)置單元,用于將所述更新后的鍵值對集合中所述下標值對應(yīng)的位向量的所 有位置設(shè)置為所述第二設(shè)定值。
      [0048] 另外,本發(fā)明實施例還提供一種倒排索引的檢索方法,所述倒排索引采用本發(fā)明 實施例提供的倒排索引的構(gòu)建方法構(gòu)建,所述檢索方法包括:
      [0049] 遍歷用戶輸入的屬性及屬性值的組合;
      [0050] 在鍵值對集合中查找任意所述組合對應(yīng)的初始位向量得到初始位向量組,所述初 始位向量組中有P個初始位向量,P為正整數(shù);
      [0051 ]將所述P個初始位向量做位與運算得到新位向量;
      [0052]遍歷所述新位向量中所有為所述第二設(shè)定值的位置;
      [0053 ]根據(jù)下標值從所述數(shù)組中取出相應(yīng)的數(shù)據(jù)。
      [0054] 優(yōu)選地,所述在鍵值對集合中查找任一所述組合對應(yīng)的初始位向量得到初始位向 量組前,還包括:
      [0055] 確定所述鍵值對集合中不存在與所述用戶輸入的屬性及屬性值的組合相應(yīng)的鍵 值對;
      [0056] 所述在鍵值對集合中查找任一所述組合對應(yīng)的位向量得到位向量組,包括:
      [0057] 在所述鍵值對集合中查找特定組合對應(yīng)的位向量作為該任一所述組合對應(yīng)的位 向量。
      [0058] 優(yōu)選地,所述在鍵值對集合中查找任一所述組合對應(yīng)的位向量得到位向量組前, 所述方法還包括:
      [0059] 確定所述用戶輸入的屬性的屬性值缺失;
      [0060] 所述在鍵值對集合中查找任一所述組合對應(yīng)的位向量得到位向量組,包括:
      [0061] 在所述鍵值對集合中查找該屬性的特定組合對應(yīng)的位向量作為該任一所述組合 的位向量。
      [0062] 此外,本發(fā)明實施例提供一種倒排索引的檢索裝置,所述倒排索引采用本發(fā)明實 施例提供的倒排索引的構(gòu)建方法構(gòu)建,所述檢索裝置包括:
      [0063] 第一遍歷單元,用于遍歷用戶輸入的屬性及屬性值的組合;
      [0064] 查找單元,用于在鍵值對集合中查找任意所述組合對應(yīng)的初始位向量得到初始位 向量組,所述初始位向量組中有P個初始位向量,P為正整數(shù);
      [0065] 運算單元,用于將所述P個初始位向量做位與運算得到新位向量;
      [0066] 第二遍歷單元,用于遍歷所述新位向量中所有為所述第二設(shè)定值的位置;
      [0067] 取出單元,用于根據(jù)下標值從所述數(shù)組中取出相應(yīng)的數(shù)據(jù)。
      [0068] 優(yōu)選地,所述裝置還包括:
      [0069] 第一確定單元,用于確定所述鍵值對集合中不存在與所述用戶輸入的屬性及屬性 值的組合相應(yīng)的鍵值對;
      [0070] 所述查找單元,具體用于在所述鍵值對集合中查找特定組合對應(yīng)的位向量作為該 任一所述組合對應(yīng)的位向量。
      [0071] 優(yōu)選地,所述裝置還包括:
      [0072] 第二確定單元,用于確定所述用戶輸入的屬性的屬性值缺失;
      [0073] 所述查找單元,具體用于在所述鍵值對集合中查找該屬性的特定組合對應(yīng)的位向 量作為該任一所述組合的位向量。
      [0074] 本發(fā)明實施例提供一種倒排索引的構(gòu)建方法、構(gòu)建裝置、檢索方法W及檢索裝置。 本發(fā)明實施例采用數(shù)組實現(xiàn)了數(shù)據(jù)集合中任意數(shù)據(jù)類型的數(shù)據(jù)和位向量的對應(yīng)關(guān)系。本發(fā) 明實施利用位向量的小存儲量、高運算特性做了優(yōu)化,可W極大的提高倒排檢索的速度,極 大地減少內(nèi)存占用,從而可W提高系統(tǒng)吞吐量和穩(wěn)定性。
      【附圖說明】
      [0075] 此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申 請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:
      [0076] 圖1是本發(fā)明實施例提供的倒排索引的構(gòu)建方法的流程示意圖;
      [0077] 圖2是本發(fā)明實施例提供的倒排索引的構(gòu)建裝置的結(jié)構(gòu)示意圖;
      [0078] 圖3是本發(fā)明實施例提供的倒排索引的檢索方法的流程示意圖;
      [0079] 圖4是本發(fā)明實施例提供的倒排索引的檢索裝置的結(jié)構(gòu)示意圖。
      【具體實施方式】
      [0080] 如在說明書及權(quán)利要求當中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng) 可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權(quán)利要求并不W名 稱的差異來作為區(qū)分組件的方式,而是W組件在功能上的差異來作為區(qū)分的準則。如在通 篇說明書及權(quán)利要求當中所提及的"包含"為一開放式用語,故應(yīng)解釋成"包含但不限定 于"。"大致"是指在可接收的誤差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述 技術(shù)問題,基本達到所述技術(shù)效果。此外,"禪接"一詞在此包含任何直接及間接的電性禪接 手段。因此,若文中描述一第一裝置禪接于一第二裝置,則代表所述第一裝置可直接電性禪 接于所述第二裝置,或通過其他裝置或禪接手段間接地電性禪接至所述第二裝置。說明書 后續(xù)描述為實施本申請的較佳實施方式,然所述描述乃W說明本申請的一般原則為目的, 并非用W限定本申請的范圍。本申請的保護范圍當視所附權(quán)利要求所界定者為準。
      [0081] 如圖1所示,本發(fā)明實施例提供一種倒排索引的構(gòu)建方法,該方法可W包括W下步 驟:
      [0082] 步驟SlOO:創(chuàng)建數(shù)組,所述數(shù)組包含N的元素。
      [0083] 步驟S102:將待索引數(shù)據(jù)集合中的m個數(shù)據(jù)對應(yīng)至所述數(shù)組的m個元素;其中,所述 待索引數(shù)據(jù)集合中m個數(shù)據(jù)的屬性構(gòu)成屬性集合,所述屬性集合包含n個屬性,至少一個所 述屬性對應(yīng)S個屬性值,m為正整數(shù),n大于等于零,S大于等于零。
      [0084]創(chuàng)建的數(shù)組A的大小與待索引數(shù)據(jù)集合T的大小相同,待索引數(shù)據(jù)集合T為{Ti, T2, ...,Tm-i,Tm}。將待索引數(shù)據(jù)集合T中的所有數(shù)據(jù)放入A中,則T的中的每一個數(shù)據(jù)和A的中 每一個元素 W及A中的下標值建立起對應(yīng)關(guān)系如表所示: 「nno。 主一
      [0086] T中的數(shù)據(jù)可W是任意數(shù)據(jù)格式。通過數(shù)組A的轉(zhuǎn)換,T中的每一個數(shù)據(jù)可W用A中 的下標值來表示。
      [0087] 需要說明的是,在表一所述的對應(yīng)關(guān)系中,數(shù)組A中的數(shù)據(jù)順序可W是任意的,只 需要把T中的數(shù)據(jù)一一對應(yīng)到數(shù)組A中即可。所W,同于同一個待索引數(shù)據(jù)集合T,某次生成 的倒排索引和下次生成倒排索引時,T中的某個數(shù)據(jù)對應(yīng)的數(shù)組A中的下標值可能不同。
      [0088] 步驟S104:對于待索引數(shù)據(jù)集合中的每一數(shù)據(jù),遍歷該數(shù)據(jù)的屬性和相應(yīng)屬性值 的組合。
      [0089] 待索引數(shù)據(jù)集合T中的每一數(shù)據(jù)Ti(0<i<m)可能有n個屬性,如該n個屬性是可檢 索的屬性,運n個可檢索的屬性構(gòu)成屬性集合D,屬性集合D為{Di,化,...,Dn-i,Dn}。該屬性集 合D可W是可變的也可W是固定不變的,例如在廣告引擎應(yīng)用場景,該屬性集合D可W是固 定不變的,不會因為T的大小而變化,所WD的大小大于或者等于T中每個數(shù)據(jù)的所有可檢索 的屬性之和。
      [0090] T中所有數(shù)據(jù)的屬性值集合為V:{Vl,V2, ...,Vn-IiVnhV中每個屬性值依然是一個 集合:如屬性Dk(0<k<n)的所有屬性值集合是Vk,并且Vk的集合大小為Sk,則Vk可表示為: IVk-I,Vk-2,...,Vk-SkKV表示的是T中所有數(shù)據(jù)的屬性值集合。V的大小小于或等于用戶輸入 的屬性檢索值集合大小。
      [0091] 步驟S106:對每一所述組合,設(shè)置該組合對應(yīng)的位向量為設(shè)定值W得到更新后的 鍵值對集合。
      [0092] 鍵值對集合I可W采用化ShMap實現(xiàn),或者采用數(shù)組等數(shù)據(jù)結(jié)構(gòu)實現(xiàn)。
      [0093] 遍歷T,對比每一個數(shù)據(jù)Tl,遍歷Tl的所有可被檢索的屬性和屬性值的組合。
      [0094] 倒排索引中每一個屬性和該屬性的每一個屬性值的組合對應(yīng)一個位向量。位向量 指的是由二進制位(bit)組成的向量。具體表現(xiàn)為一個bit數(shù)組,數(shù)組元素為bit,可W只有0 或1兩種取值,可用于表示兩種狀態(tài)值。結(jié)合對應(yīng)關(guān)系數(shù)組A,位向量中第i位的bit值就可W 標識A[i]對應(yīng)的T中數(shù)據(jù)Tl是否命中此屬性的屬性值的檢索。
      [00M] -些實施例中,在執(zhí)行上述步驟S106之前,還可W首先執(zhí)行下述步驟一和步驟二:
      [0096] 步驟一:對每一所述組合,判斷初始鍵值對集合中是否有該組合對應(yīng)的鍵值對,所 述該組合的鍵值對由該組合及該組合對應(yīng)的位向量構(gòu)成;
      [0097] 步驟二:若所述初始鍵值對集合中沒有該組合對應(yīng)的鍵值對,則創(chuàng)建該組合對應(yīng) 的鍵值對;
      [0098] 此時,上述步驟S106具體可W采用如下方式實現(xiàn):
      [0099] 設(shè)置該組合對應(yīng)的鍵值對中位向量的所有位均為第一設(shè)定值。
      [0100] 運里第一設(shè)定值可W是0。
      [0101] 另外,如果初始鍵值對集合中有該組合對應(yīng)的鍵值對,則根據(jù)數(shù)組得到該組合對 應(yīng)的待索引數(shù)據(jù)集合中的數(shù)據(jù)的下標值。
      [0102] 如果初始鍵值對集合中有相應(yīng)的鍵值對,則根據(jù)數(shù)組A可得到Tl(該數(shù)據(jù)為Tl時)的 下標值,則將位向量的第i位置設(shè)置為第二設(shè)定值。運里該第二設(shè)定值可W是1。
      [0103] -些實施例中,位向量的第i位置為1,表明其對應(yīng)的數(shù)據(jù)(數(shù)組A的第i位數(shù)據(jù)Tl) 命中了運個鍵值(屬性+屬性值組合),即如果用戶用運個組合(屬性+屬性值的組合)檢索的 話,可W檢索到Ti。需要說明的是,有些屬性具有屬性值,而有些屬性的屬性值不存在或者 為空。此時,上述待排索引的構(gòu)建方法還可W包括W下步驟:
      [0104]首先,遍歷屬性集合D;
      [0105] 然后,對于屬性集合中的每一個屬性,在更新后的鍵值對集合I中創(chuàng)建特定組合 (例如該特定組合采用化-Other)的鍵值對,位向量所有位置設(shè)置為第一設(shè)定值,其中特定 組合為屬性值為空的屬性及其屬性值構(gòu)成的組合。
      [0106] 此外,一些實施例中,上述倒排索引的構(gòu)建方法還可W包括W下步驟:
      [0107] 首先,遍歷待索引數(shù)據(jù)集合T;
      [0108] 然后,確定T中的某一數(shù)據(jù)Tl的某一屬性Dk的屬性值為空或者不存在;
      [0109] 確定該某一數(shù)據(jù)Tl對應(yīng)的數(shù)組A中的下標值i;
      [0110] 將更新后的鍵值對集合中W下標值i對應(yīng)的位向量的下標值對應(yīng)的對應(yīng)位置設(shè)置 為第二設(shè)定值。運里第二設(shè)定值可W是1。
      [0111] 上述步驟表明數(shù)據(jù)集合T中的任一數(shù)據(jù)Tl與屬性集合D中的任一屬性Dk無關(guān)。通過 Dk的任何一個屬性值都可W檢索到Ti。
      [0112] 采用上述倒排索引的構(gòu)建方法,最終形成的倒排索引的數(shù)據(jù)結(jié)構(gòu)可W是如下所示 的Key (屬性-屬性值)-Value(位向量)鍵值對集合I: 「rn 1
      [0114]其中,Key的取值范圍是數(shù)據(jù)集合T中所有數(shù)據(jù)的屬性和屬性值的所有組合,所W 所有組合的范圍大小等于屬性值集合V中所有元素的集合大小之和。Value是相應(yīng)的位向 量。位向量某一位取值為1,則表示對應(yīng)數(shù)據(jù)集合T中的數(shù)據(jù)滿足相應(yīng)屬性和屬性值的檢索 要求,根據(jù)相應(yīng)屬性和屬性值檢索的話,可W命中此數(shù)據(jù)。
      [0115] 需要說明的是,每條數(shù)據(jù)的屬性可能不多,可能不會覆蓋屬性集合中的所有屬性。 另外,數(shù)據(jù)集和T對應(yīng)的所有屬性的屬性值集合一般來說不能覆蓋屬性的所有可能取值。運 兩種情況都會導(dǎo)致實際應(yīng)用中輸入的待檢索條件("屬性+屬性值"組合)不能被倒排索引覆 蓋到。
      [0116] 針對運種情況,可W創(chuàng)建一個特定組合一-由"屬性+屬性值"組合作為鍵值,譬如 "屬性+Other"組合,運個特定組合的值(也就是運個位向量)可W初始化全為0。
      [0117] Dk-Other的作用= Dk-Other用于標識沒有在Dk屬性上設(shè)置屬性值的數(shù)據(jù)。如果數(shù)據(jù) 集T中某個數(shù)據(jù)Tl在某個屬性Dk中沒有屬性值,即Tl在Dk運個屬性上沒有設(shè)置檢索限制,Dk屬 性的任何一個屬性值都應(yīng)該能檢索到Ti。那么Ti在Dk-Other對應(yīng)的位向量相應(yīng)位置上置為 1,其中l(wèi)《k《n。
      [0118] Dk-Other是一定存在的,對于每一個屬性,都會有一個屬性-Other為K巧的鍵值對 存在。
      [0119] -些實施例中,位向量的長度是固定的,等于數(shù)據(jù)集合的大小。其中值為1的位表 示命中檢索條件的數(shù)據(jù);值為0的位表示未命中檢索條件的數(shù)據(jù)。
      [0120] 本發(fā)明一些實施例采用鍵值對中的"值"(位向量的一個位)用于標識某條數(shù)據(jù)是 否命中相應(yīng)的"屬性+屬性值"組合。把位和任意格式的數(shù)據(jù)關(guān)聯(lián)起來,把數(shù)據(jù)放到數(shù)組中, 用數(shù)據(jù)在數(shù)組中的下標值(一個數(shù)字)來定位其在位向量中的位置。
      [0121] 另外,本發(fā)明實施例還提供一種倒排索引的構(gòu)建裝置,如圖2所示,倒排索引的構(gòu) 建裝置可W包括:
      [0122] 第一創(chuàng)建單元201,用于創(chuàng)建數(shù)組,所述數(shù)組包含m個元素;
      [0123] 對應(yīng)單元202,用于將待索引數(shù)據(jù)集合中的m個數(shù)據(jù)對應(yīng)至所述數(shù)組的m個元素;其 中,所述待索引數(shù)據(jù)集合中m個數(shù)據(jù)的屬性構(gòu)成屬性集合,所述屬性集合包含n個屬性,至少 一個所述屬性對應(yīng)S個屬性值,m為正整數(shù),n大于等于零,S大于等于零;
      [0124] 第一遍歷單元203,用于對于所述待索引數(shù)據(jù)集合中的每一數(shù)據(jù),遍歷該數(shù)據(jù)的屬 性和相應(yīng)屬性值的組合;
      [0125] 設(shè)置單元304,用于對每一所述組合,設(shè)置該組合對應(yīng)的位向量為設(shè)定值W得到更 新后的鍵值對集合。
      [01%] 優(yōu)選地,所述裝置還可W包括:
      [0127] 判斷單元,用于對每一所述組合,判斷初始鍵值對集合中是否有該組合對應(yīng)的鍵 值對,所述該組合的鍵值對由該組合及該組合對應(yīng)的位向量構(gòu)成;
      [0128] 第二創(chuàng)建單元,用于在所述初始鍵值對集合中沒有該組合對應(yīng)的鍵值對時,創(chuàng)建 該組合對應(yīng)的鍵值對;
      [0129] 所述設(shè)置單元,具體用于設(shè)置該組合對應(yīng)的鍵值對中位向量的所有位均為第一設(shè) 定值。
      [0130] 優(yōu)選地,所述裝置還可W包括:
      [0131] 獲取單元,用于若所述初始鍵值對集合中有該組合對應(yīng)的鍵值對,根據(jù)所述數(shù)組 獲取該組合對應(yīng)的待索引數(shù)據(jù)集合中的數(shù)據(jù)的下標值;
      [0132] 所述設(shè)置單元具體用于設(shè)置所述位向量的所述下標值對應(yīng)的位置為第二設(shè)定值。
      [0133] 優(yōu)選地,一些實施例中,至少一個所述屬性的屬性值為空,所述裝置還可W包括:
      [0134] 第二遍歷單元,用于遍歷所述屬性集合;
      [0135] 第=創(chuàng)建單元,用于對于所述屬性集合中的每一個所述屬性,在所述更新后的鍵 值對集合中創(chuàng)建特定組合的鍵值對,
      [0136] 第二設(shè)置單元,用于設(shè)置位向量為第一設(shè)定值,其中所述特定組合為屬性值為空 的屬性及其屬性值構(gòu)成的組合。
      [0137] 優(yōu)選地,所述裝置還可W包括:
      [0138] 第=遍歷單元,用于遍歷所述待索引數(shù)據(jù)集合;
      [0139] 第一確定單元,用于確定所述待索引數(shù)據(jù)集合中一數(shù)據(jù)的一屬性的屬性值為空;
      [0140] 第二確定單元,用于確定該數(shù)據(jù)對應(yīng)所述數(shù)組中的下標值;
      [0141] 第=設(shè)置單元,用于將所述更新后的鍵值對集合中W所述下標值對應(yīng)的位向量的 所述下標值對應(yīng)的對應(yīng)位置設(shè)置為所述第二設(shè)定值。
      [0142] 如圖3所示,本發(fā)明實施例還提供一種倒排索引的檢索方法,該倒排索引采用上述 實施例所述的倒排索引的構(gòu)建方法構(gòu)建,該方法可W包括如下步驟:
      [0143] 步驟S300:遍歷用戶輸入的屬性及屬性值的組合。
      [0144] 步驟S302:在鍵值對集合中查找任一屬性及屬性值的組合對應(yīng)的初始位向量得到 初始位向量組,初始位向量組中有P個初始位向量,其中P為正整數(shù)。
      [0145] 步驟S304:將P個初始位向量做位與運算得到新位向量。
      [0146] 步驟S306:遍歷新位向量中所有為第二設(shè)定值的位置。運里的第二設(shè)定值為1。
      [0147] 步驟S308:根據(jù)下標值從數(shù)組中取出相應(yīng)的數(shù)據(jù)。
      [0148] 一些實施例中,執(zhí)行步驟S302前,所述方法還可W首先確定鍵值對集合中不存在 與用戶輸入的屬性及屬性值的組合相應(yīng)的鍵值對;
      [0149] 此時,步驟S302具體是,在鍵值對集合中查找特定組合對應(yīng)的位向量作為該任一 組合對應(yīng)的位向量。
      [0150] 另外一些實施例中,執(zhí)行步驟S302前,所述方法還可W首先確定用戶輸入的屬性 的屬性值缺失;
      [0151] 此時在鍵值對集合中查找任一所述組合對應(yīng)的位向量得到位向量組,具體為在所 述鍵值對集合中查找該屬性的特定組合對應(yīng)的位向量作為該任一所述組合的位向量。
      [0152] 用戶輸入的屬性檢索值集合大于等于屬性值集合V中所有屬性值個數(shù),所W根據(jù) 用戶輸入的屬性和屬性值組合在鍵值對集合I中可能找不到對應(yīng)的記錄。此時使用特定組 合Dk-O化er作為K巧再次檢索鍵值對集合I,作為位向量化。
      [0153] 如果用戶輸入的屬性個數(shù)小于n(屬性集合D的大?。?,即某項屬性的屬性值缺 失--假設(shè)為Dk,則使用特定組合Dk-Other作為K巧檢索鍵值對集合I,作為位向量Bk。其中 此處的Bk即為該任一所述組合的位向量。
      [0154] 經(jīng)過第一步遍歷,最終得到n(屬性集合D的大小)個位向量:{Bi,B2, . . .,Bn-i,Bn}。 將運n個位向量做位與運算,得到位向量B。
      [0155] 遍歷位向量B中所有為1的位置,根據(jù)下標值從數(shù)組A中取出相應(yīng)的數(shù)據(jù)。最終得到 的集合即為檢索結(jié)果。
      [0156] 此外,一些實施例還提供一種倒排索引的檢索裝置,如圖4所示,該倒排索引的檢 索裝置可W具有如下結(jié)構(gòu):
      [0157]第一遍歷單元401,用于遍歷用戶輸入的屬性及屬性值的組合;
      [015引查找單元402,用于在鍵值對集合中查找任意所述組合對應(yīng)的初始位向量得到初 始位向量組,所述初始位向量組中有P個初始位向量,P為正整數(shù);
      [0159] 運算單元403,用于將所述P個初始位向量做位與運算得到新位向量;
      [0160] 第二遍歷單元404,用于遍歷所述新位向量中所有為所述第二設(shè)定值的位置;
      [0161] 取出單元405,用于根據(jù)下標值從所述數(shù)組中取出相應(yīng)的數(shù)據(jù)。
      [0162] 優(yōu)選地,所述檢索裝置還可W包括第一確定單元,所述第一確定單元用于確定所 述鍵值對集合中不存在與所述用戶輸入的屬性及屬性值的組合相應(yīng)的鍵值對;
      [0163] 所述查找單元,具體用于在所述鍵值對集合中查找特定組合對應(yīng)的位向量作為該 任一所述組合對應(yīng)的位向量。
      [0164] -些實施例中,所述檢索裝置還可W包括第二確定單元,所述第二確定單元用于 確定所述用戶輸入的屬性的屬性值缺失;
      [0165] 所述查找單元,具體用于在所述鍵值對集合中查找該屬性的特定組合對應(yīng)的位向 量作為該任一所述組合的位向量。
      [0166] 作為一個具體實例,DSP投放引擎中的倒排索引實現(xiàn)方式可W如下:
      [0167] DSP廣告投放引擎中待檢索數(shù)據(jù)集合T是所有投放單ID組成的集合。
      [0168] 屬性集合D是定向條件集合,大小為13,包括地域、頻道、操作系統(tǒng)、設(shè)備類型、關(guān)鍵 字等。為簡化說明,假設(shè)D大小為3: {area,channel,os}。
      [0169] 每一個投放的定向條件值構(gòu)成了屬性值集合V。如下所示:
      [0170]
      [0171 ] 在area定向上,c3定投北京,c5定投上海,c4,c2,cl通投。
      [0172] 在channel定向上,c3定投s,c4定投s,c2定投P或s,c5,cl通投。
      [0173]在OS定向上,c5定投l,c4定投1或0,c2定投2,(:1定投2或0,。3通投。(〇3定投值是枚 舉,譬如0表示windows,1表示an化oid,2表示ios等)
      [0174] 遍歷所有投放的定向條件數(shù)據(jù)可W得到鍵值對集合I,在投放引擎中,鍵值對集合 I用化ShMap實現(xiàn),可W實現(xiàn)0(1)的查找效率。位向量用java自帶的BitSet類表示。
      [0175] 假設(shè)數(shù)據(jù)集合T如下:{Cl,c2,c3,c4}。
      [0176] 得到的A如下:k3,c5,c4,c2,cl]。
      [0177] 對應(yīng)關(guān)系如下: 「ni7Rl
      [0179]得到的鍵值對集合巧日下: rniR〇i
      [0181 ] Value中數(shù)字標識一個位向量,每一位是一個二進制數(shù)D
      [0182] 從I的位向量中可W看到,如果某個投放在對應(yīng)的定向上可投,則相應(yīng)位置為1。對 于通投的情況,此定向的所有位向量對應(yīng)位置都是1。
      [0183] 檢索時,
      [0184] -些實施例中,檢索請求的條件如下: 「018 引
      [0186] 根據(jù)請求的屬性和屬性值拼成巧巾組合:
      [0187] {area-北京,channel-v,OS-I}。
      [0188] 根據(jù)area-北京做Key,從I中檢索得到位向量10111
      [0189] 根據(jù)Channel-V檢索不到數(shù)據(jù),因為channel的請求值V超過了倒排索引中屬性值 集合。此時用channel-other檢索得到位向量OlOOl
      [0190] 同理根據(jù)OS-I檢索得到位向量11100。
      [0191] S個位向量做位與運算:10111&01001&11100 = 0。即根據(jù)此定向條件檢索不到數(shù) 據(jù)。
      [0192] -些實施例中,檢索請求的條件如下(與1相比,area定向變?yōu)樯虾#?「01931
      [0194] 得到S個位向量做位與運算011111&01001&11100 = 01000。第2位(從左往右數(shù))為 1,到數(shù)組A中得到第2位(從左往右數(shù))數(shù)據(jù)為c5,即為檢索結(jié)果。
      [01M] -些實施例中,檢索請求的條件如下: 「oml
      [0197] 根據(jù)area和channel定向分別得到兩個位向量:10111,11111。
      [0198] 檢索請求中缺失OS定向的檢索值,所W根據(jù)OS-other得到OS定向的位向量: 1000 Oo
      [0199] 運3個位向量做位與運算得到位向量10000。第1位(從左往右數(shù))為1,到數(shù)組A中得 到第1位(從左往右數(shù))數(shù)據(jù)為c3,即為檢索結(jié)果。
      [0200] 上述說明示出并描述了本申請的若干優(yōu)選實施例,但如前所述,應(yīng)當理解本申請 并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、 修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識 進行改動。而本領(lǐng)域人員所進行的改動和變化不脫離本申請的精神和范圍,則都應(yīng)在本申 請所附權(quán)利要求的保護范圍內(nèi)。
      【主權(quán)項】
      1. 一種倒排索引的構(gòu)建方法,其特征在于,所述方法包括: 創(chuàng)建數(shù)組,所述數(shù)組包含m個元素; 將待索引數(shù)據(jù)集合中的m個數(shù)據(jù)對應(yīng)至所述數(shù)組的m個元素;其中,所述待索引數(shù)據(jù)集 合中m個數(shù)據(jù)的屬性構(gòu)成屬性集合,所述屬性集合包含η個屬性,至少一個所述屬性對應(yīng)s個 屬性值,m為正整數(shù),η大于等于零,s大于等于零; 對于所述待索引數(shù)據(jù)集合中的每一數(shù)據(jù),遍歷該數(shù)據(jù)的屬性和相應(yīng)屬性值的組合; 對每一所述組合,設(shè)置該組合對應(yīng)的位向量為設(shè)定值以得到更新后的鍵值對集合。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述設(shè)置該所述組合對應(yīng)的位向量為設(shè)定 值前,所述方法還包括: 對每一所述組合,判斷初始鍵值對集合中是否有該組合對應(yīng)的鍵值對,所述該組合的 鍵值對由該組合及該組合對應(yīng)的位向量構(gòu)成; 若所述初始鍵值對集合中沒有該組合對應(yīng)的鍵值對,則創(chuàng)建該組合對應(yīng)的鍵值對; 所述設(shè)置該組合對應(yīng)的位向量為設(shè)定值,包括: 設(shè)置該組合對應(yīng)的鍵值對中位向量的所有位均為第一設(shè)定值。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 若所述初始鍵值對集合中有該組合對應(yīng)的鍵值對,根據(jù)所述數(shù)組獲取該組合對應(yīng)的待 索引數(shù)據(jù)集合中的數(shù)據(jù)的下標值; 所述設(shè)置該組合對應(yīng)的位向量為設(shè)定值,包括: 設(shè)置所述位向量的所述下標值對應(yīng)的位置為第二設(shè)定值。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,至少一個所述屬性的屬性值為空,所述方 法還包括: 遍歷所述屬性集合; 對于所述屬性集合中的每一個所述屬性,在所述更新后的鍵值對集合中創(chuàng)建特定組合 的鍵值對,設(shè)置位向量所有位置為第一設(shè)定值,其中所述特定組合為屬性值為空的屬性及 其屬性值構(gòu)成的組合。5. 根據(jù)權(quán)利要求1所述方法,其特征在于,所述方法還包括: 遍歷所述待索引數(shù)據(jù)集合; 確定所述待索引數(shù)據(jù)集合中一數(shù)據(jù)的一屬性的屬性值為空; 確定該數(shù)據(jù)對應(yīng)所述數(shù)組中的下標值; 將所述更新后的鍵值對集合中所述下標值對應(yīng)的位向量的所有位置設(shè)置為所述第二 設(shè)定值。6. -種倒排索引的構(gòu)建裝置,其特征在于,所述裝置包括: 第一創(chuàng)建單元,用于創(chuàng)建數(shù)組,所述數(shù)組包含m個元素; 對應(yīng)單元,用于將待索引數(shù)據(jù)集合中的m個數(shù)據(jù)對應(yīng)至所述數(shù)組的m個元素;其中,所述 待索引數(shù)據(jù)集合中m個數(shù)據(jù)的屬性構(gòu)成屬性集合,所述屬性集合包含η個屬性,至少一個所 述屬性對應(yīng)s個屬性值,m為正整數(shù),η大于等于零,s大于等于零; 第一遍歷單元,用于對于所述待索引數(shù)據(jù)集合中的每一數(shù)據(jù),遍歷該數(shù)據(jù)的屬性和相 應(yīng)屬性值的組合; 設(shè)置單元,用于對每一所述組合,設(shè)置該組合對應(yīng)的位向量為設(shè)定值以得到更新后的 鍵值對集合。7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 判斷單元,用于對每一所述組合,判斷初始鍵值對集合中是否有該組合對應(yīng)的鍵值對, 所述該組合的鍵值對由該組合及該組合對應(yīng)的位向量構(gòu)成; 第二創(chuàng)建單元,用于在所述初始鍵值對集合中沒有該組合對應(yīng)的鍵值對時,創(chuàng)建該組 合對應(yīng)的鍵值對; 所述設(shè)置單元,具體用于設(shè)置該組合對應(yīng)的鍵值對中位向量的所有位均為第一設(shè)定 值。8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 獲取單元,用于在所述初始鍵值對集合中有該組合對應(yīng)的鍵值對時,根據(jù)所述數(shù)組獲 取該組合對應(yīng)的待索引數(shù)據(jù)集合中的數(shù)據(jù)的下標值; 所述設(shè)置單元具體用于設(shè)置所述位向量的所述下標值對應(yīng)的位置為第二設(shè)定值。9. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,至少一個所述屬性的屬性值為空,所述裝 置還包括: 第二遍歷單元,用于遍歷所述屬性集合; 第三創(chuàng)建單元,用于對于所述屬性集合中的每一個所述屬性,在所述更新后的鍵值對 集合中創(chuàng)建特定組合的鍵值對, 第二設(shè)置單元,用于設(shè)置位向量為第一設(shè)定值,其中所述特定組合為屬性值為空的屬 性及其屬性值構(gòu)成的組合。10. 根據(jù)權(quán)利要求6所述裝置,其特征在于,所述裝置還包括: 第三遍歷單元,用于遍歷所述待索引數(shù)據(jù)集合; 第一確定單元,用于確定所述待索引數(shù)據(jù)集合中一數(shù)據(jù)的一屬性的屬性值為空; 第二確定單元,用于確定該數(shù)據(jù)對應(yīng)所述數(shù)組中的下標值; 第三設(shè)置單元,用于將所述更新后的鍵值對集合中所述下標值對應(yīng)的位向量的所有位 置設(shè)置為所述第二設(shè)定值。11. 一種倒排索引的檢索方法,其特征在于,所述倒排索引采用上述權(quán)利要求1-5任一 項所述方法構(gòu)建,所述檢索方法包括: 遍歷用戶輸入的屬性及屬性值的組合; 在鍵值對集合中查找任意所述組合對應(yīng)的初始位向量得到初始位向量組,所述初始位 向量組中有P個初始位向量,P為正整數(shù); 將所述P個初始位向量做位與運算得到新位向量; 遍歷所述新位向量中所有為所述第二設(shè)定值的位置; 根據(jù)下標值從所述數(shù)組中取出相應(yīng)的數(shù)據(jù)。12. 根據(jù)權(quán)利要求11所述的方法,其特征在于,所述在鍵值對集合中查找任一所述組合 對應(yīng)的初始位向量得到初始位向量組前,還包括: 確定所述鍵值對集合中不存在與所述用戶輸入的屬性及屬性值的組合相應(yīng)的鍵值對; 所述在鍵值對集合中查找任一所述組合對應(yīng)的位向量得到位向量組,包括: 在所述鍵值對集合中查找特定組合對應(yīng)的位向量作為該任一所述組合對應(yīng)的位向量。13. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述在鍵值對集合中查找任一所述組合 對應(yīng)的位向量得到位向量組前,所述方法還包括: 確定所述用戶輸入的屬性的屬性值缺失; 所述在鍵值對集合中查找任一所述組合對應(yīng)的位向量得到位向量組,包括: 在所述鍵值對集合中查找該屬性的特定組合對應(yīng)的位向量作為該任一所述組合的位 向量。14. 一種倒排索引的檢索裝置,其特征在于,所述倒排索引采用上述權(quán)利要求1-5任一 項所述方法構(gòu)建,所述檢索裝置包括: 第一遍歷單元,用于遍歷用戶輸入的屬性及屬性值的組合; 查找單元,用于在鍵值對集合中查找任意所述組合對應(yīng)的初始位向量得到初始位向量 組,所述初始位向量組中有P個初始位向量,P為正整數(shù); 運算單元,用于將所述P個初始位向量做位與運算得到新位向量; 第二遍歷單元,用于遍歷所述新位向量中所有為所述第二設(shè)定值的位置; 取出單元,用于根據(jù)下標值從所述數(shù)組中取出相應(yīng)的數(shù)據(jù)。15. 根據(jù)權(quán)利要求14所述的裝置,其特征在于,所述裝置還包括: 第一確定單元,用于確定所述鍵值對集合中不存在與所述用戶輸入的屬性及屬性值的 組合相應(yīng)的鍵值對; 所述查找單元,具體用于在所述鍵值對集合中查找特定組合對應(yīng)的位向量作為該任一 所述組合對應(yīng)的位向量。16. 根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述裝置還包括: 第二確定單元,用于確定所述用戶輸入的屬性的屬性值缺失; 所述查找單元,具體用于在所述鍵值對集合中查找該屬性的特定組合對應(yīng)的位向量作 為該任一所述組合的位向量。
      【文檔編號】G06F17/30GK105956085SQ201610282316
      【公開日】2016年9月21日
      【申請日】2016年4月29日
      【發(fā)明人】文德民, 張云鋒, 周盛, 潘柏宇, 王冀
      【申請人】合網(wǎng)絡(luò)技術(shù)(北京)有限公司, 合一網(wǎng)絡(luò)技術(shù)(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1