两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種用于文檔索引的文檔id壓縮方法

文檔序號:6629895閱讀:322來源:國知局
一種用于文檔索引的文檔id壓縮方法
【專利摘要】本發(fā)明提供一種用于文檔索引的文檔ID壓縮方法,包括以下步驟:對需要進(jìn)行索引的文檔進(jìn)行預(yù)處理;對經(jīng)過倒序排序的文檔ID進(jìn)行壓縮處理;對經(jīng)過壓縮處理的數(shù)據(jù)進(jìn)行檢索。本發(fā)明提供的用于文檔索引的文檔ID壓縮方法,在保持檢索精確度的同時,使用現(xiàn)代計(jì)算機(jī)多核CPU的資源優(yōu)勢,并行處理單次檢索請求,大幅提升單次及并發(fā)檢索性能,給用戶以良好的檢索體驗(yàn)。
【專利說明】一種用于文檔索引的文檔ID壓縮方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種壓縮方法,具體涉及一種用于文檔索引的文檔ID壓縮方法。

【背景技術(shù)】
[0002]目前文本檢索系統(tǒng)形式多樣,但都是根據(jù)索引結(jié)構(gòu)進(jìn)行檢索流程優(yōu)化,按照索引方式基本都可以歸結(jié)為兩大類:
[0003](I)按照相關(guān)度對文檔ID預(yù)排序:
[0004]首先在創(chuàng)建文檔倒排索引的時候,進(jìn)行部分索引詞與文檔ID的相關(guān)度計(jì)算,按照相關(guān)度計(jì)算結(jié)果對相同索引詞下的文檔ID進(jìn)行排序;在文檔檢索期間,根據(jù)用戶給定的檢索詞,取出相應(yīng)索引詞下的文檔ID序列,由于文檔ID序列是按照索引詞的相關(guān)度進(jìn)行預(yù)排序,檢索程序需要記錄下所有已讀取的文檔ID信息,以備稍后與其它索引詞下的文檔ID進(jìn)行匹配;最終對完全與用戶輸入的索引詞相匹配的結(jié)果進(jìn)行進(jìn)一步的相關(guān)度計(jì)算,給出最終結(jié)果;
[0005](2)按照自然序?qū)ξ臋nID預(yù)排序:
[0006]在創(chuàng)建文檔倒排索引的時候,對相同索引詞下的文檔ID,按照文檔ID的自然序進(jìn)行預(yù)排序;在文檔檢索期間,根據(jù)給定的檢索詞,同時取出不同索引詞下的文檔ID序列,按照多路歸并算法對文檔ID進(jìn)行歸并,得出與用戶輸入完全匹配的文檔ID,最后進(jìn)行相關(guān)度計(jì)算,給出最終結(jié)果。
[0007]基于相關(guān)度預(yù)排序索引進(jìn)行的檢索,由于預(yù)排序只是針對單個索引詞進(jìn)行,當(dāng)多個索引詞聯(lián)合查詢的時候,首先命中的結(jié)果,不一定就是排序最靠前的結(jié)果,而且由于是非文檔ID自然有序,導(dǎo)致檢索過程中需要保留大量臨時數(shù)據(jù)緩沖,直接使檢索性能以及準(zhǔn)確度大幅下降。
[0008]而基于文檔ID自然序進(jìn)行預(yù)排序的索引,在檢索期間不要保留大量的臨時緩沖數(shù)據(jù),但由于前期沒有進(jìn)行相關(guān)度方面的計(jì)算,導(dǎo)致用戶最需要的結(jié)果極有可能在文檔ID序列的最后才能被檢索到,這就需要對整個文檔集合進(jìn)行檢索,這個特性對于超大數(shù)據(jù)集的檢索系統(tǒng)來說是致命的缺陷,會導(dǎo)致隨著數(shù)據(jù)集的線性增長使檢索性能大幅下降。


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

[0009]為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種用于文檔索引的文檔ID壓縮方法,在保持檢索精確度的同時,使用現(xiàn)代計(jì)算機(jī)多核CPU的資源優(yōu)勢,并行處理單次檢索請求,大幅提升單次及并發(fā)檢索性能,給用戶以良好的檢索體驗(yàn)。
[0010]為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采取如下技術(shù)方案:
[0011]本發(fā)明提供一種用于文檔索引的文檔ID壓縮方法,所述方法包括以下步驟:
[0012]步驟1:對需要進(jìn)行索引的文檔進(jìn)行預(yù)處理;
[0013]步驟2:對經(jīng)過倒序排序的文檔ID進(jìn)行壓縮處理;
[0014]步驟3:對經(jīng)過壓縮處理的數(shù)據(jù)進(jìn)行檢索。
[0015]所述步驟I包括以下步驟:
[0016]步驟1-1:分配文檔ID給需要預(yù)處理的文檔;
[0017]分配的文檔ID需要4字節(jié)的無符號整型數(shù)表示,最大可以表示4294967295個文檔;
[0018]步驟1-2:將所有已分配文檔ID的文檔進(jìn)行倒序排序。
[0019]所述步驟2包括以下步驟:
[0020]步驟2-1:對經(jīng)過倒序排序的文檔ID進(jìn)行自然序升序排序;
[0021]步驟2-2:對自然升序排列的文檔ID對65535進(jìn)行求模計(jì)算,對求模的結(jié)果以65535為數(shù)值區(qū)間進(jìn)行分段,形成多分段有序的文檔ID序列;
[0022]步驟2-3:對每個分段內(nèi)的每個文檔ID分別進(jìn)行對65535的求模計(jì)算,記錄求模結(jié)果,作為壓縮后的數(shù)據(jù);
[0023]步驟2-4:任取分段內(nèi)文檔ID對65535進(jìn)行求商操作,記錄求商結(jié)果,放到本分段的首端,作為文檔索引的一部分,以備在檢索的時候解壓本段數(shù)據(jù)使用。
[0024]所述步驟3包括以下步驟:
[0025]步驟3-1:對用戶輸入檢索串進(jìn)行預(yù)處理;
[0026]步驟3-2:根據(jù)索引詞編碼,檢索對應(yīng)索引信息,同時得到對應(yīng)索引信息的文檔ID分段情況;
[0027]步驟3-3:文檔ID的篩選。
[0028]所述步驟3-1包括以下步驟:
[0029]步驟3-1-1:對用戶輸入檢索串進(jìn)行整理,形成標(biāo)準(zhǔn)檢索詞序列;
[0030]步驟3-1-2:將標(biāo)準(zhǔn)檢索詞序列進(jìn)行編碼,將多個檢索詞轉(zhuǎn)換為索引詞編碼。
[0031]所述步驟3-2中,不同索引信息的文檔ID分段情況以及索引詞編碼數(shù)量,決定本次檢索應(yīng)索引信息的并發(fā)檢索線程數(shù)量,以利于資源的利用率。
[0032]所述步驟3-3包括以下步驟:
[0033]步驟3-3-1:根據(jù)之前決定的并發(fā)檢索線程數(shù)量以及不同索引信息的文檔ID分段情況,對屬于相同邏輯關(guān)系的文檔ID序列進(jìn)行等分,并放入相應(yīng)的檢索結(jié)構(gòu)保存;
[0034]步驟3-3-2:將檢索結(jié)構(gòu)分別放入不同的并發(fā)檢索線程,同時開始檢索工作;
[0035]步驟3-3-3:在單一的檢索線程內(nèi)部,對命中的文檔ID取出相應(yīng)相關(guān)度信息,進(jìn)行最終的相關(guān)度計(jì)算,并按照相關(guān)度計(jì)算結(jié)果放入并發(fā)檢索線程內(nèi)部的堆結(jié)構(gòu),根據(jù)最大或最小淘汰原則和以前的命中的文檔ID進(jìn)行相關(guān)度比較,淘汰相應(yīng)的文檔ID ;
[0036]步驟3-3-4:等待所有的參與并發(fā)檢索的并發(fā)檢索線程完成后,按照用戶要求輸出全局堆結(jié)構(gòu)中的數(shù)據(jù),此時輸入的文檔ID數(shù)據(jù)即為最終的檢索結(jié)果。
[0037]根據(jù)權(quán)利要求7所述的用于文檔索引的文檔ID壓縮方法,其特征在于:所述步驟3-3-3中,當(dāng)單一的并發(fā)檢索線程內(nèi)部完成所有工作后,遍歷輸出堆結(jié)構(gòu)中的所有數(shù)據(jù),包括文檔ID以及文檔ID所對應(yīng)的相關(guān)度,并將輸出的文檔ID及相關(guān)度放入全局的堆結(jié)構(gòu),按照用戶的排序要求以及文檔ID相關(guān)度,進(jìn)行堆內(nèi)的文檔ID淘汰。
[0038]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:
[0039]1.基于現(xiàn)代計(jì)算機(jī)多核CPU,充分利用CPU資源,提高檢索性能;
[0040]2.以往的并行化檢索只是實(shí)現(xiàn)了對單一時間內(nèi)的不同檢索實(shí)施并行化,對于單次檢索大數(shù)據(jù)量的檢索性能低下,而本發(fā)明將并行化概念用于單次檢索中,對于單次的大數(shù)據(jù)量檢索,在性能的提聞上有飛躍性的提升;
[0041]3.本發(fā)明可以在效率上有大幅的提升,從而可以支持在檢索過程中進(jìn)行更復(fù)雜的相關(guān)度技術(shù),且不需要保存非命中數(shù)據(jù)的相關(guān)度信息,從而大量的節(jié)約了寶貴的內(nèi)存資源,同時可以為用戶提供更好的相關(guān)度排序;
[0042]4.本發(fā)明對用戶的檢索請求,每次都是進(jìn)行全庫查詢,不存在相關(guān)度計(jì)算不準(zhǔn)確的問題,對數(shù)據(jù)的查全率,準(zhǔn)確率提供了更好的支持;
[0043]5.經(jīng)過大數(shù)據(jù)量的網(wǎng)頁數(shù)據(jù)測試,涵蓋資訊,論壇,小說,技術(shù)文檔絕大部分常見數(shù)據(jù),對于在庫容量4000萬文檔ID的基本下,平均單次的檢索時間可以控制在20ms以下,而針對于常用高頻詞的邏輯與運(yùn)算,在高頻詞文檔ID序列千萬數(shù)量級的情況下,可以提供單次小于80ms的高性能檢索。

【專利附圖】

【附圖說明】
[0044]圖1是本發(fā)明實(shí)施中經(jīng)過壓縮處理的數(shù)據(jù)檢索流程圖;
[0045]圖2是本發(fā)明實(shí)施中檢索結(jié)構(gòu)示意圖。

【具體實(shí)施方式】
[0046]下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。
[0047]本發(fā)明提供一種用于文檔索引的文檔ID壓縮方法,所述方法包括以下步驟:
[0048]步驟1:對需要進(jìn)行索引的文檔進(jìn)行預(yù)處理;
[0049]所述步驟I包括以下步驟:
[0050]步驟1-1:分配文檔ID給需要預(yù)處理的文檔;
[0051]分配的文檔ID需要4字節(jié)的無符號整型數(shù)表示,最大可以表示4294967295個文檔;
[0052]步驟1-2:將所有已分配文檔ID的文檔進(jìn)行倒序排序。
[0053]步驟2:對經(jīng)過倒序排序的文檔ID進(jìn)行壓縮處理;
[0054]所述步驟2包括以下步驟:
[0055]步驟2-1:對經(jīng)過倒序排序的文檔ID進(jìn)行自然序升序排序;
[0056]步驟2-2:對自然升序排列的文檔ID對65535進(jìn)行求模計(jì)算,對求模的結(jié)果以65535為數(shù)值區(qū)間進(jìn)行分段,形成多分段有序的文檔ID序列;
[0057]步驟2-3:對每個分段內(nèi)的每個文檔ID分別進(jìn)行對65535的求模計(jì)算,記錄求模結(jié)果,作為壓縮后的數(shù)據(jù);根據(jù)計(jì)算機(jī)內(nèi)部對數(shù)值的表示原理,對于一個小于等于65535的數(shù)只需要兩個字節(jié)就可以完全表示,這樣通過對65535求模操作可以將使用4字節(jié)的文檔ID轉(zhuǎn)換為使用2字節(jié)的文檔ID,從而達(dá)到壓縮的目的;
[0058]步驟2-4:任取分段內(nèi)文檔ID對65535進(jìn)行求商操作,記錄求商結(jié)果,放到本分段的首端,作為文檔索引的一部分,以備在檢索的時候解壓本段數(shù)據(jù)使用。
[0059]步驟3:對經(jīng)過壓縮處理的數(shù)據(jù)進(jìn)行檢索;
[0060]所述步驟3包括以下步驟:
[0061]步驟3-1:對用戶輸入檢索串進(jìn)行預(yù)處理;
[0062]如圖1和2,所述步驟3-1包括以下步驟:
[0063]步驟3-1-1:對用戶輸入檢索串進(jìn)行整理,形成標(biāo)準(zhǔn)檢索詞序列;
[0064]步驟3-1-2:將標(biāo)準(zhǔn)檢索詞序列進(jìn)行編碼,將多個檢索詞轉(zhuǎn)換為索引詞編碼;
[0065]步驟3-2:根據(jù)索引詞編碼,檢索對應(yīng)索引信息(圖2中的索引詞編碼),同時得到對應(yīng)索引信息的文檔ID分段情況(圖2中的偏移);
[0066]所述步驟3-2中,不同索引信息的文檔ID分段情況以及索引詞編碼數(shù)量,決定本次檢索應(yīng)索引信息的并發(fā)檢索線程數(shù)量,以利于資源的利用率;
[0067]步驟3-3:文檔ID的篩選;
[0068]所述步驟3-3包括以下步驟:
[0069]步驟3-3-1:根據(jù)之前決定的并發(fā)檢索線程數(shù)量以及不同索引信息的文檔ID分段情況,對屬于相同邏輯關(guān)系的文檔ID序列(圖2中文檔ID列表)進(jìn)行等分,并放入相應(yīng)的檢索結(jié)構(gòu)保存;
[0070]步驟3-3-2:將檢索結(jié)構(gòu)分別放入不同的并發(fā)檢索線程,同時開始檢索工作;
[0071]步驟3-3-3:在單一的檢索線程內(nèi)部,對命中的文檔ID取出相應(yīng)相關(guān)度信息(圖2文檔ID附加信息),進(jìn)行最終的相關(guān)度計(jì)算,并按照相關(guān)度計(jì)算結(jié)果放入并發(fā)檢索線程內(nèi)部的堆結(jié)構(gòu),根據(jù)最大或最小淘汰原則和以前的命中的文檔ID進(jìn)行相關(guān)度比較,淘汰相應(yīng)的文檔ID ;
[0072]步驟3-3-4:等待所有的參與并發(fā)檢索的并發(fā)檢索線程完成后,按照用戶要求輸出全局堆結(jié)構(gòu)中的數(shù)據(jù),此時輸入的文檔ID數(shù)據(jù)即為最終的檢索結(jié)果。
[0073]根據(jù)權(quán)利要求7所述的用于文檔索引的文檔ID壓縮方法,其特征在于:所述步驟3-3-3中,當(dāng)單一的并發(fā)檢索線程內(nèi)部完成所有工作后,遍歷輸出堆結(jié)構(gòu)中的所有數(shù)據(jù),包括文檔ID以及文檔ID所對應(yīng)的相關(guān)度,并將輸出的文檔ID及相關(guān)度放入全局的堆結(jié)構(gòu),按照用戶的排序要求以及文檔ID相關(guān)度,進(jìn)行堆內(nèi)的文檔ID淘汰。
[0074]最后應(yīng)當(dāng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,所屬領(lǐng)域的普通技術(shù)人員參照上述實(shí)施例依然可以對本發(fā)明的【具體實(shí)施方式】進(jìn)行修改或者等同替換,這些未脫離本發(fā)明精神和范圍的任何修改或者等同替換,均在申請待批的本發(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種用于文檔索引的文檔ID壓縮方法,其特征在于:所述方法包括以下步驟: 步驟1:對需要進(jìn)行索引的文檔進(jìn)行預(yù)處理; 步驟2:對經(jīng)過倒序排序的文檔ID進(jìn)行壓縮處理; 步驟3:對經(jīng)過壓縮處理的數(shù)據(jù)進(jìn)行檢索。
2.根據(jù)權(quán)利要求1所述的用于文檔索引的文檔ID壓縮方法,其特征在于:所述步驟I包括以下步驟: 步驟1-1:分配文檔ID給需要預(yù)處理的文檔; 分配的文檔ID需要4字節(jié)的無符號整型數(shù)表示,最大可以表示4294967295個文檔; 步驟1-2:將所有已分配文檔ID的文檔進(jìn)行倒序排序。
3.根據(jù)權(quán)利要求1所述的用于文檔索引的文檔ID壓縮方法,其特征在于:所述步驟2包括以下步驟: 步驟2-1:對經(jīng)過倒序排序的文檔ID進(jìn)行自然序升序排序; 步驟2-2:對自然升序排列的文檔ID對65535進(jìn)行求模計(jì)算,對求模的結(jié)果以65535為數(shù)值區(qū)間進(jìn)行分段,形成多分段有序的文檔ID序列; 步驟2-3:對每個分段內(nèi)的每個文檔ID分別進(jìn)行對65535的求模計(jì)算,記錄求模結(jié)果,作為壓縮后的數(shù)據(jù); 步驟2-4:任取分段內(nèi)文檔ID對65535進(jìn)行求商操作,記錄求商結(jié)果,放到本分段的首端,作為文檔索引的一部分,以備在檢索的時候解壓本段數(shù)據(jù)使用。
4.根據(jù)權(quán)利要求1所述的用于文檔索引的文檔ID壓縮方法,其特征在于:所述步驟3包括以下步驟: 步驟3-1:對用戶輸入檢索串進(jìn)行預(yù)處理; 步驟3-2:根據(jù)索引詞編碼,檢索對應(yīng)索引信息,同時得到對應(yīng)索引信息的文檔ID分段情況; 步驟3-3:文檔ID的篩選。
5.根據(jù)權(quán)利要求4所述的用于文檔索引的文檔ID壓縮方法,其特征在于:所述步驟3-1包括以下步驟: 步驟3-1-1:對用戶輸入檢索串進(jìn)行整理,形成標(biāo)準(zhǔn)檢索詞序列; 步驟3-1-2:將標(biāo)準(zhǔn)檢索詞序列進(jìn)行編碼,將多個檢索詞轉(zhuǎn)換為索引詞編碼。
6.根據(jù)權(quán)利要求4所述的用于文檔索引的文檔ID壓縮方法,其特征在于:所述步驟3-2中,不同索引信息的文檔ID分段情況以及索引詞編碼數(shù)量,決定本次檢索應(yīng)索引信息的并發(fā)檢索線程數(shù)量,以利于資源的利用率。
7.根據(jù)權(quán)利要求4所述的用于文檔索引的文檔ID壓縮方法,其特征在于:所述步驟3-3包括以下步驟: 步驟3-3-1:根據(jù)之前決定的并發(fā)檢索線程數(shù)量以及不同索引信息的文檔ID分段情況,對屬于相同邏輯關(guān)系的文檔ID序列進(jìn)行等分,并放入相應(yīng)的檢索結(jié)構(gòu)保存; 步驟3-3-2:將檢索結(jié)構(gòu)分別放入不同的并發(fā)檢索線程,同時開始檢索工作; 步驟3-3-3:在單一的檢索線程內(nèi)部,對命中的文檔ID取出相應(yīng)相關(guān)度信息,進(jìn)行最終的相關(guān)度計(jì)算,并按照相關(guān)度計(jì)算結(jié)果放入并發(fā)檢索線程內(nèi)部的堆結(jié)構(gòu),根據(jù)最大或最小淘汰原則和以前的命中的文檔ID進(jìn)行相關(guān)度比較,淘汰相應(yīng)的文檔ID ; 步驟3-3-4:等待所有的參與并發(fā)檢索的并發(fā)檢索線程完成后,按照用戶要求輸出全局堆結(jié)構(gòu)中的數(shù)據(jù),此時輸入的文檔ID數(shù)據(jù)即為最終的檢索結(jié)果。
8.根據(jù)權(quán)利要求7所述的用于文檔索引的文檔ID壓縮方法,其特征在于:所述步驟3-3-3中,當(dāng)單一的并發(fā)檢索線程內(nèi)部完成所有工作后,遍歷輸出堆結(jié)構(gòu)中的所有數(shù)據(jù),包括文檔ID以及文檔ID所對應(yīng)的相關(guān)度,并將輸出的文檔ID及相關(guān)度放入全局的堆結(jié)構(gòu),按照用戶的排序要求以及文檔ID相關(guān)度,進(jìn)行堆內(nèi)的文檔ID淘汰。
【文檔編號】G06F17/30GK104376040SQ201410535112
【公開日】2015年2月25日 申請日期:2014年10月11日 優(yōu)先權(quán)日:2014年10月11日
【發(fā)明者】張宏利, 秦飛, 高勇, 樊云紅, 郭永福 申請人:北京中搜網(wǎng)絡(luò)技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
中西区| 当雄县| 潞城市| 苍溪县| 亳州市| 河池市| 巴彦县| 遂宁市| 临夏市| 长子县| 嫩江县| 新津县| 综艺| 繁峙县| 远安县| 吉隆县| 盘山县| 应城市| 安宁市| 贵德县| 喀喇沁旗| 罗源县| 德格县| 莫力| 增城市| 仪陇县| 陕西省| 剑河县| 聂拉木县| 察雅县| 墨脱县| 水富县| 独山县| 朝阳市| 平遥县| 离岛区| 潢川县| 长沙县| 汉川市| 前郭尔| 乡城县|