專利名稱:一種區(qū)間持久性top-k查詢的雙哈希表關(guān)聯(lián)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫以及查詢領(lǐng)域,尤其涉及一種區(qū)間持久性top-k查詢的雙哈希表關(guān)聯(lián)方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的迅猛發(fā)展以及信息量的爆炸性增長,精確搜索用戶所需信息的難度越來越大,如何從海量數(shù)據(jù)中查找到用戶最關(guān)心的信息已成為業(yè)界普遍關(guān)注的問題。因此,出現(xiàn)了 top-k查詢技術(shù),即根據(jù)評分函數(shù)在潛在的數(shù)據(jù)空間中返回k個最重要的結(jié)果。此技術(shù)非常有效而且已經(jīng)非常成熟,廣泛應(yīng)用于各個領(lǐng)域。有效地解決了從海量數(shù)據(jù)中精確查詢的排名問題,與全文檢索技術(shù)一起為數(shù)據(jù)庫查詢領(lǐng)域作出了巨大的貢獻(xiàn),深受用戶歡迎。文檔是記錄各類信息的重要載體,其重要性不言而喻。企業(yè)特別是大中型企業(yè),文檔數(shù)據(jù)呈現(xiàn)一些新的特點(diǎn)類型多樣、數(shù)量日益劇增,版本更新頻繁等等。大量的文檔數(shù)據(jù)以及文檔產(chǎn)生的不同版本對關(guān)鍵詞的查詢檢索提出了新的難題隨著時(shí)間的推移,電子文檔(包括企業(yè)文檔、各類網(wǎng)站電子文檔等)的內(nèi)容不斷地被更新或修改逐漸形成各種不同的版本,每個版本具有一個有效的時(shí)間間隔。一般而言,在此時(shí)間間隔內(nèi)文檔與關(guān)鍵詞的匹配度恒定,而在此時(shí)間間隔外每個版本的內(nèi)容與查詢關(guān)鍵字的相關(guān)性(匹配度)不盡相同,正是由于這種相關(guān)性(匹配度)在查詢條件的時(shí)間范圍內(nèi)存在不同,致使傳統(tǒng)查詢(如top-k查詢、全文檢索等)方法都無法返回精確的結(jié)果。因此,引入了區(qū)間持久性top-k查詢技術(shù)。此技術(shù)能返回長期處于top-k結(jié)果中表現(xiàn)主題一致的文檔對象。彌補(bǔ)了 top-k查詢技術(shù)只能返回某一時(shí)間點(diǎn)的、(查詢關(guān)鍵字與文檔內(nèi)容匹配度)得分不變的、前k個最重要結(jié)果的缺陷。區(qū)間持久性top-k查詢能有效地查找到長期反映某一主題的文檔對象,為文檔的版本管理和涉及時(shí)間序列的版本查詢等領(lǐng)域提供了一種有效的技術(shù)。區(qū)間持久性top-k查詢技術(shù)是針對文檔的不同版本,查詢關(guān)鍵字與文檔內(nèi)容的相關(guān)性得分隨時(shí)間不同而不同的一種新型的查詢技術(shù)。返回處于top-k結(jié)果列表中時(shí)間長度最長的k個記錄。定義假如一個文檔集D由η個文檔{dp , dn}組成,每個文檔(Ii e D
存在多個不同的版本,每個版本Vd e d有一個有效的時(shí)間間隔[vd. tb,vd. tj,假如同一
文檔的不同版本的時(shí)間間隔不重疊。設(shè)q為一查詢(關(guān)鍵字集qW和時(shí)間間隔[q. tb,q. tj)。給定一個整數(shù)k (O < k < η)和一個實(shí)數(shù)HO <r^ 1,ι■表示松弛因子,是一個可調(diào)整大小的變量),區(qū)間持久性top-k問題是為了找到所有的d e D使得每一個文檔d出現(xiàn)在top-k結(jié)果集中的時(shí)間總長度不于r X [q. te-q. tb]。目前,國內(nèi)基本還沒有相關(guān)的研究,國外對區(qū)間持久性top-k查詢技術(shù)研究尚處于初級階段。相關(guān)的研究有一致top-k查詢技術(shù),但這種技術(shù)需要預(yù)先定義對象的排名,解決不了非預(yù)先定義(ad-hoc)的、查詢關(guān)鍵字與文檔內(nèi)容匹配權(quán)重不同的查詢問題。區(qū)間持久性top-k查詢是關(guān)于文檔版本的查詢問題。算法包括窮舉法、貪婪法、動態(tài)自適應(yīng)算法DDA(Dynamic Adaptive Algorithm) >BBA(Band based Algorithm)算法以及物化思想等。
窮舉法和貪婪法需要將所有記錄從頭到尾檢索一遍,時(shí)間效率極低。DDA是對究舉法和貪婪法的改進(jìn),設(shè)置閥值以盡快結(jié)果查詢,但是需要為每個元組記錄上邊界和下邊界,將占據(jù)大量的存儲空間,BBA算法是前幾種算法的優(yōu)化,同樣需要大量的存儲空間來保存候選帶以及top-k帶的記錄段。這些算法能夠?qū)崿F(xiàn)區(qū)間持久性top-k查詢,但存在某些方面的缺陷。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明提供了一種區(qū)間持久性top-k查詢的雙哈希表關(guān)聯(lián)方法。本發(fā)明提供了一種區(qū)間持久性top-k查詢的雙哈希表關(guān)聯(lián)方法,包括
步驟10,輸入關(guān)鍵詞和查詢時(shí)間范圍;步驟11,創(chuàng)建倒排表,將查詢時(shí)間分拆為多個間隔時(shí)間,并根據(jù)倒排表和間隔時(shí)間建立第一哈希表和第二哈希表;倒排表中記錄文檔ID、該文檔ID的得分以及屬于該文檔ID的文檔版本的有效間隔時(shí)間;第一哈希表記錄具有有效時(shí)間間隔的文檔版本對應(yīng)的文檔ID、各倒排表中最后被查詢的記錄的得分以及具有有效時(shí)間間隔的文檔版本對應(yīng)的被查詢的相同文檔ID在不同倒排表中的總得分,第二哈希表記錄具有有效時(shí)間間隔的文檔版本對應(yīng)的文檔ID、文檔ID對應(yīng)的倒排表ID和各倒排表中最后被查詢記錄的總得分;各倒排表中最后被查詢記錄的總得分為當(dāng)前被查詢記錄的得分與其余倒排表中最后被查詢記錄得分之和,各倒排表中最后被查詢的記錄的得分對應(yīng)于當(dāng)前被查詢的記錄對應(yīng)的文檔ID ;步驟12,如果第二哈希表中各倒排表中最后被查詢記錄的總得分小于當(dāng)前被查詢記錄對應(yīng)ID在第一哈希表中具有有效時(shí)間間隔的文檔版本對應(yīng)的被查詢的相同文檔ID在不同倒排表中的總得分,則按降序排列第二倒排表中各倒排表中最后被查詢記錄的總得分并輸出前k個總得分對應(yīng)的文檔ID及其間隔時(shí)間;步驟13,將具有相同文檔ID對應(yīng)的時(shí)間間隔相加,將相加的結(jié)果降序排列并輸出前k個結(jié)果對應(yīng)的文檔ID。在一個示例中,文檔的分值根據(jù)下述公式計(jì)算-.Wlk = pxwl+(l-p)xwl ,其中Wik為具有該文檔ID的文檔的分值,W 1 ik 二,
W2ik =freqikx[\0gn'doctotalk + \\,freqik為關(guān)鍵字在文檔中出現(xiàn)的頻率,η為文檔的總數(shù),doctotalk為出現(xiàn)關(guān)鍵字的文檔數(shù)量,P為關(guān)鍵字的權(quán)重。在一個示例中,步驟11中,如果文檔版本的有效時(shí)間未完全落入查詢時(shí)間范圍內(nèi),則對該文檔進(jìn)行時(shí)間裁剪。在一個示例中,步驟11中,利用拉鏈法、多哈希法或開放地址法解決建立第一哈希表或第二哈希表的沖突。在一個示例中,步驟11中,根據(jù)直接定址法、平方取中法、折疊法或除留余數(shù)法建立第一哈希表或第二哈希表。在一個示例中,文檔ID對應(yīng)的最大得分為文檔在倒排表中的原始得分與該文檔在其它倒排表中最后讀取記錄的得分之和。本發(fā)明實(shí)現(xiàn)了一個包含時(shí)間裁剪、時(shí)間間隔劃分及整形化、閥值設(shè)置、雙哈希表關(guān)聯(lián)檢索以及哈希沖突解決方案的區(qū)間持久性top-k查詢技術(shù)的優(yōu)化方案,針對文檔版本更新頻繁、關(guān)鍵詞與文檔內(nèi)容相關(guān)性在時(shí)間序列中不一致的查詢問題,實(shí)現(xiàn)了一種在查詢時(shí)間范圍內(nèi)文檔版本的得分處于top-k結(jié)果集的時(shí)間長度滿足閥值的查詢方法。
下面結(jié)合附圖來對本發(fā)明作進(jìn)一步詳細(xì)說明,其中圖I為本發(fā)明的體系架構(gòu)框圖;圖2為本發(fā)明的區(qū)間持久性top-k查詢示例圖;
圖3為本發(fā)明有效時(shí)間與查詢時(shí)間剪切示例圖;圖4為本發(fā)明的雙哈希表結(jié)構(gòu)示例圖;圖5為本發(fā)明的雙哈希表關(guān)聯(lián)方法示例圖。
具體實(shí)施例方式本發(fā)明提供一種雙哈希表關(guān)聯(lián)方法,可以實(shí)現(xiàn)對區(qū)間持久性top-k查詢的有效優(yōu)化,從而更好的服務(wù)于用戶。本發(fā)明為了更好地描述該方法,引入了許多符號,圖中用字母來表示。查詢條件用到的符號有q表示一個查詢條件,包含關(guān)鍵字集q. W和查詢時(shí)間范圍[q. tb,q. tJ。前期準(zhǔn)備工作用到的符號有文檔集D = {屯,d2,. . .,dj表示包含η個文檔的文檔集,W1ik, W2ik分別表示布爾型文本特征函數(shù),TF-IDF文本特征函數(shù)。freqik表示絕對詞頻即關(guān)鍵詞在文檔中出現(xiàn)的頻率(次數(shù))。η表示文檔集中文檔的總數(shù),doctotalk表示出現(xiàn)關(guān)鍵詞k的文檔數(shù)。p(0 < P < I)表示權(quán)重變量,Wik為文檔Cli相對于關(guān)鍵詞k的得分。倒排表創(chuàng)建部分用到的符號有docID表示文檔標(biāo)識,score表示得分,文檔版本的有效時(shí)間間隔[vd. tb,Vd. tj。雙哈希表關(guān)聯(lián)方法部分用到的符號有u表示文檔在倒排表中的原始得分與該文檔在其它倒排表中最后讀取記錄的得分之和。下面分別介紹各種符號的含義。(I)查詢條件符號q表示一個具體的查詢條件,q. W表示關(guān)鍵字集,[q. tb,q. te]表示時(shí)間范圍。如“黑洞形成的原因,[2001-03-01,2010-03-01]”。q. W包括三個關(guān)鍵字“黑洞”和“形成”和“原因”,[q. tb,q. tj 為[2001-03-01,2010-03-01] ο(2)前期工作符號D ={ +,d2,…,dj表示文檔集, 名表示每個文檔的不同版本,如文檔集由四個文檔組成D = W1, d2,d3,d4},Cl1包含三個不同版本L1 ={^2彳3}。(3)文本內(nèi)容與關(guān)鍵字的相關(guān)性得分所涉及到的幾個符號和公式布爾函數(shù)
r IΓ O , fr e q jk = OW -J = < ! \ η
ik, fre q lk > 0TF-IDF 函數(shù)
權(quán)利要求
1.一種區(qū)間持久性top-k查詢的雙哈希表關(guān)聯(lián)方法,其特征在于,包括 步驟10,輸入關(guān)鍵詞和查詢時(shí)間范圍; 步驟11,創(chuàng)建倒排表,將查詢時(shí)間分拆為多個間隔時(shí)間,并根據(jù)倒排表和間隔時(shí)間建立第一哈希表和第二哈希表;倒排表中記錄文檔ID、該文檔ID的得分以及屬于該文檔ID的文檔版本的有效間隔時(shí)間;第一哈希表記錄具有有效時(shí)間間隔的文檔版本對應(yīng)的文檔ID、各倒排表中最后被查詢的記錄的得分以及具有有效時(shí)間間隔的文檔版本對應(yīng)的被查詢的相同文檔ID在不同倒排表中的總得分,第二哈希表記錄具有有效時(shí)間間隔的文檔版本對應(yīng)的文檔ID、文檔ID對應(yīng)的倒排表ID和各倒排表中最后被查詢記錄的總得分;各倒排表中最后被查詢記錄的總得分為當(dāng)前被查詢記錄的得分與其余倒排表中最后被查詢記錄得分之和,各倒排表中最后被查詢的記錄的得分對應(yīng)于當(dāng)前被查詢的記錄對應(yīng)的文檔ID ;步驟12,如果第二哈希表中各倒排表中最后被查詢記錄的總得分小于當(dāng)前被查詢記錄對應(yīng)ID在第一倒排表中具有有效時(shí)間間隔的文檔版本對應(yīng)的被查詢的相同文檔ID在不同倒排表中的總得分,則按降序排列第二哈希表中各倒排表中最后被查詢記錄的總得分并輸出前k個總得分對應(yīng)的文檔ID及其間隔時(shí)間; 步驟13,將具有相同文檔ID對應(yīng)的時(shí)間間隔相加,將相加的結(jié)果降序排列并輸出前k個結(jié)果對應(yīng)的文檔ID。
2.如權(quán)利要求I所述的雙哈希表關(guān)聯(lián)方法,其特征在于,文檔的分值根據(jù)下述公式計(jì)算Wik = pxwl+(l-p)xwfk ,其中wik為具有該文檔ID的文檔的分值,
3.如權(quán)利要求I所述的雙哈希表關(guān)聯(lián)方法,其特征在于,步驟11中,如果文檔版本的有效時(shí)間未完全落入查詢時(shí)間范圍內(nèi),則對該文檔進(jìn)行時(shí)間裁剪。
4.如權(quán)利要求I所述的雙哈希表關(guān)聯(lián)方法,其特征在于,步驟11中,利用拉鏈法、多哈希法或開放地址法解決建立第一哈希表或第二哈希表的沖突。
5.如權(quán)利要求I所述的雙哈希表關(guān)聯(lián)方法,其特征在于,步驟11中,根據(jù)直接定址法、平方取中法、折疊法或除留余數(shù)法建立第一哈希表或第二哈希表。
6.如權(quán)利要求I所述的雙哈希表關(guān)聯(lián)方法,其特征在于,文檔ID對應(yīng)的最大得分為文檔在倒排表中的原始得分與該文檔在其它倒排表中最后讀取記錄的得分之和。
全文摘要
本發(fā)明公開了一種區(qū)間持久性top-k查詢的雙哈希表關(guān)聯(lián)方法,包括輸入關(guān)鍵詞和查詢時(shí)間范圍;創(chuàng)建倒排表,將查詢時(shí)間分拆為多個間隔時(shí)間,并根據(jù)倒排表和間隔時(shí)間建立第一哈希表和第二哈希表;如果第二哈希表各倒排表中最后被查詢記錄的總得分小于當(dāng)前被查詢記錄對應(yīng)ID在第一哈希表中具有有效時(shí)間間隔的文檔版本對應(yīng)的被查詢的相同文檔ID在不同倒排表中的總得分,則按降序排列第二哈希表中各倒排表中最后被查詢記錄的總得分并輸出前k個總得分對應(yīng)的文檔ID及其間隔時(shí)間;將具有相同文檔ID對應(yīng)的時(shí)間間隔相加,將相加的結(jié)果降序排列并輸出前k個結(jié)果對應(yīng)的文檔ID。本發(fā)明實(shí)現(xiàn)了查詢時(shí)間范圍內(nèi)文檔版本的得分處于top-k結(jié)果集的時(shí)間長度滿足閥值的方法。
文檔編號G06F17/30GK102663030SQ201210080249
公開日2012年9月12日 申請日期2012年3月23日 優(yōu)先權(quán)日2011年12月15日
發(fā)明者張勇, 明華, 邢春曉 申請人:清華大學(xué)