一種基于查詢?nèi)罩镜臄?shù)據(jù)處理方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及搜索領(lǐng)域,特別涉及一種基于查詢?nèi)罩镜臄?shù)據(jù)處理方法和系統(tǒng)。
【背景技術(shù)】
[0002]搜索引擎,可以借助互聯(lián)網(wǎng),對各種信息進行整理、篩選或歸檔等處理,以為用戶提供預(yù)期得到的信息。
[0003]很多情況下搜索條件會特別復(fù)雜,提供搜索服務(wù)要求搜索引擎具備更高的性能。一種提高性能的方式是通過對查詢請求的相關(guān)數(shù)據(jù)進行處理來提高搜索引擎的每秒查詢率(QPS,Query Per Second)。
[0004]提高QPS的數(shù)據(jù)處理方法較常用的為查詢語句預(yù)存法。提供搜索服務(wù)的搜索引擎,會收到很多客戶端發(fā)來的查詢請求。例如,客戶端發(fā)起的查詢請求中,查詢內(nèi)容為“中國人民大學(xué)”,這樣的查詢請求稱為query。搜索引擎一般會將接收到的查詢請求存儲起來作為查詢?nèi)罩?query log)。對于查詢?nèi)罩局刑岢鲞^頻次相對較高的查詢請求稱為高頻查詢請求。該方法中,首先挖掘查詢?nèi)罩?query log)里面的高頻查詢請求。搜索引擎為了對此后收到的類似查詢請求快速處理并反饋,從而將之前提出過的高頻查詢請求及其查詢結(jié)果完整的存儲起來。這樣,當(dāng)搜索引擎接收到同樣的查詢請求時,可以將前述查詢對應(yīng)的結(jié)果直接返回至客戶端。
[0005]在實現(xiàn)本申請過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:
[0006]上述數(shù)據(jù)處理方法中,存儲的是整個高頻query,當(dāng)再次接收到的查詢請求與原來存儲的高頻查詢請求僅有部分相同但不完全相同時,之前存儲的高頻查詢請求及其對應(yīng)的查詢結(jié)果完全不能為新的查詢請求的處理過程直接利用。例如存儲了查詢內(nèi)容為“中國人民大學(xué)”的查詢請求及對應(yīng)的查詢結(jié)果,當(dāng)再次接收到的查詢請求的內(nèi)容為“中國人民”時,之前存儲的內(nèi)容為“中國人民大學(xué)”的查詢請求及存儲的對應(yīng)查詢結(jié)果應(yīng)該可以作為查詢請求內(nèi)容為“中國人民”的部分結(jié)果。但是按照現(xiàn)有技術(shù)的方式,由于查詢請求的內(nèi)容不完全相同,導(dǎo)致搜索引擎不能直接利用“中國人民大學(xué)”的查詢結(jié)果,而需要重新完整地執(zhí)行查詢過程?;谏鲜鲈颍鎯Φ牟樵冋埱蠹捌鋵?yīng)查詢結(jié)果的命中率不高。
【發(fā)明內(nèi)容】
[0007]本申請的目的是提供一種基于查詢?nèi)罩镜拇鎯Ψ椒?,以實現(xiàn)提高存儲內(nèi)容的查詢請求命中率。
[0008]一種基于查詢?nèi)罩镜臄?shù)據(jù)處理方法,包括:
[0009]獲取預(yù)定時間段中搜索引擎的部分或全部的查詢?nèi)罩荆?br>[0010]對所述查詢?nèi)罩局械牟樵冋埱蟮亩嘣铂F(xiàn)片段頻次進行統(tǒng)計;
[0011]對于每一多元共現(xiàn)片段,利用該多元共現(xiàn)片段在元數(shù)更高的共現(xiàn)片段中的出現(xiàn)頻次對所述多元共現(xiàn)片段的頻次進行修正;
[0012]根據(jù)多元共現(xiàn)片段的元數(shù)及頻次選取一個或一個以上多元共現(xiàn)片段;
[0013]將選取的多元共現(xiàn)片段及其對應(yīng)的查詢結(jié)果存儲起來。
[0014]優(yōu)選方案中,所述對多元共現(xiàn)片段頻次進行統(tǒng)計,包括:對每一查詢請求設(shè)置一個標識,利用所述標識統(tǒng)計每一共現(xiàn)片段在查詢?nèi)罩镜牟樵冋埱笾谐霈F(xiàn)的頻次;所述的標識具有唯一性。
[0015]優(yōu)選方案中,利用標識統(tǒng)計每一共現(xiàn)片段在查詢?nèi)罩镜牟樵冋埱笾谐霈F(xiàn)的頻次包括:對于每個查詢請求,輸出每個查詢請求中多元共現(xiàn)片段和該查詢請求的標識組成的鍵值對;將內(nèi)容相同的η元共現(xiàn)片段的鍵值對進行合并,并利用所述標識統(tǒng)計每一 η元共現(xiàn)片段的頻次;所述η為整數(shù),2 < η < N,所述N為查詢?nèi)罩局胁樵冋埱蟮亩嘣铂F(xiàn)片段的最大片段元數(shù)。
[0016]優(yōu)選方案中,所述對每一查詢請求設(shè)置一個標識,包括:計算每一查詢請求的信息-摘要算法5的值或者安全散列算法的值或RACE原始完整性校驗消息摘要的值,將計算得到的值設(shè)置為該查詢請求的標識。
[0017]優(yōu)選方案中,對所述多元共現(xiàn)片段的頻次進行修正,包括:對元數(shù)小于N的多元共現(xiàn)片段的頻次進行修正,所述N為查詢?nèi)罩局胁樵冋埱蟮亩嘣铂F(xiàn)片段的最大片段元數(shù)。
[0018]優(yōu)選方案中,對于所述多元共現(xiàn)片段的頻次進行修正,包括:按照元數(shù)從高到低的順序依次對元數(shù)小于N的多元共現(xiàn)片段的頻次進行修正,所述N為查詢?nèi)罩局胁樵冋埱蟮亩嘣铂F(xiàn)片段的最大片段元數(shù)。
[0019]優(yōu)選方案中,對所述多元共現(xiàn)片段的頻次進行修正,包括:將統(tǒng)計的k元共現(xiàn)片段的頻次減去包含k元共現(xiàn)片段內(nèi)容的k+Ι元共現(xiàn)片段的頻次,作為k元共現(xiàn)片段修正后的頻次;所述k為整數(shù),2彡k彡(N-1),所述N為查詢?nèi)罩局胁樵冋埱蟮亩嘣铂F(xiàn)片段的最大片段元數(shù)。
[0020]優(yōu)選方案中,所述根據(jù)多元共現(xiàn)片段的元數(shù)及頻次選取一個或一個以上多元共現(xiàn)片段,包括:根據(jù)第一預(yù)設(shè)值,將共現(xiàn)片段的元數(shù)小于或等于所述第一預(yù)設(shè)值的設(shè)置為低元共現(xiàn)片段,將共現(xiàn)片段的元數(shù)大于所述第一預(yù)設(shè)值的設(shè)置為高元共現(xiàn)片段;根據(jù)共現(xiàn)片段的元數(shù)及頻次選取所述低元共現(xiàn)片段和高元共現(xiàn)片段。
[0021]優(yōu)選方案中,所述根據(jù)共現(xiàn)片段的元數(shù)及頻次選取低元共現(xiàn)片段和高元共現(xiàn)片段,包括:選取所述高元共現(xiàn)片段;采用下列方式A-C中的一種或幾種的組合選取所述低元共現(xiàn)片段:
[0022]A:對共現(xiàn)片段的頻次設(shè)置一個閾值進行過濾;當(dāng)共現(xiàn)片段的頻次大于或者等于設(shè)置的閾值時,該共現(xiàn)片段被選中;
[0023]B:設(shè)定在低元共現(xiàn)片段中需要選取的總數(shù)目P,將所有的低元共現(xiàn)片段按照頻次進行降序排列,然后選取排列的共現(xiàn)片段中前面的P個多元共現(xiàn)片段;所述P為正整數(shù),P的取值小于低元共現(xiàn)片段的總個數(shù);
[0024]C:按照共現(xiàn)片段元數(shù)的不同,分別進行排序,排序后再分別選取每個元數(shù)的共現(xiàn)片段中排在前q%的共現(xiàn)片段,所述q的范圍包括:0〈q〈100。
[0025]優(yōu)選方案中,所述將選取的多元共現(xiàn)片段及其查詢結(jié)果存儲起來,包括:將選取的多元共現(xiàn)片段及其查詢結(jié)果存放在內(nèi)存中或高速緩沖存儲器中;或,對選取的多元共現(xiàn)片段建立倒排索引,產(chǎn)生倒排列表,將所述倒排列表及共現(xiàn)片段的查詢結(jié)果存放在相同的或者不同的存儲器中,所述的存儲器包括內(nèi)存、高速緩沖存儲器、磁盤。
[0026]優(yōu)選方案中,所述查詢?nèi)罩局胁樵冋埱蟮亩嘣铂F(xiàn)片段的最大片段元數(shù)的確定方法,包括:將查詢?nèi)罩局忻總€查詢請求中檢索詞和檢索條件的總個數(shù)作為每個查詢請求對應(yīng)的最小粒度的片段數(shù),將最小粒度的片段數(shù)中的最大值作為多元共現(xiàn)片段的最大片段元數(shù)。
[0027]—種基于查詢?nèi)罩镜臄?shù)據(jù)處理系統(tǒng),包括:查詢?nèi)罩精@取模塊、共現(xiàn)片段頻次統(tǒng)計模塊、共現(xiàn)片段頻次修正模塊、多元共現(xiàn)片段選取模塊和存儲模塊;其中,
[0028]所述查詢?nèi)罩精@取模塊,用于獲取預(yù)定時間段搜索引擎的部分或全部的查詢?nèi)罩荆?br>[0029]所述共現(xiàn)片段頻次統(tǒng)計模塊,用于對所述查詢?nèi)罩局胁樵冋埱蟮亩嘣铂F(xiàn)片段的頻次進行統(tǒng)計;
[0030]所述共現(xiàn)片段頻次修正模塊,用于對共現(xiàn)片段頻次統(tǒng)計模塊中每一統(tǒng)計好頻次的多元共現(xiàn)片段,利用該多元共現(xiàn)片段在元數(shù)更高的共現(xiàn)片段中的出現(xiàn)頻次對所述多元共現(xiàn)片段的頻次進行修正;
[0031]所述多元共現(xiàn)片段選取模塊,用于對共現(xiàn)片段頻次修正模塊得到的多元共現(xiàn)片段根據(jù)多元共現(xiàn)片段的元數(shù)和頻次選取一個或一個以上多元共現(xiàn)片段;
[0032]所述存儲模塊,用于將多元共現(xiàn)片段選取模塊選取的多元共現(xiàn)片段及其對應(yīng)的查詢結(jié)果存儲起來。
[0033]優(yōu)選方案中,所述多元共現(xiàn)片段頻次統(tǒng)計模塊包括:標識設(shè)置模塊、頻次計數(shù)模塊;所述標識設(shè)置模塊,用于對每一查詢請求設(shè)置標識,所述的標識具有唯一性;所述頻次計數(shù)模塊,用于根據(jù)所述標識統(tǒng)計各個共現(xiàn)片段出現(xiàn)的頻次。
[0034]優(yōu)選方案中,所述多元共現(xiàn)片段的元數(shù)小于N,所述N為查詢?nèi)罩局胁樵冋埱蟮亩嘣铂F(xiàn)片段的最大片段元數(shù)。
[0035]優(yōu)選方案中,所述多元共現(xiàn)片段頻次修正模塊包括:排序模塊、減法模塊;所述排序模塊,用于將元數(shù)小于N的多元共現(xiàn)片段按照元數(shù)從高到低的順序進行排列,并依次輸入到減法模塊中進行處理;所述減法模塊,用于將統(tǒng)計的k元共現(xiàn)片段的頻次減去包含k元共現(xiàn)片段內(nèi)容的k+Ι元共現(xiàn)片段的頻次,作為k元共現(xiàn)片段修正后的頻次;所述k為整數(shù),2彡k彡(N-1),所述N為查詢?nèi)罩局胁樵冋埱蟮亩嘣铂F(xiàn)片段的最大片段元數(shù)。
[0036]優(yōu)選方案中,所述多元共現(xiàn)片段選取模塊包括:第一設(shè)置模塊、第一選取模塊;所述第一設(shè)置模塊,用于根據(jù)第一預(yù)設(shè)值將共現(xiàn)片段的元數(shù)小于或等于所述第一預(yù)設(shè)值的設(shè)置為低元共現(xiàn)片段,并根據(jù)所述第一預(yù)設(shè)值將共現(xiàn)片段的元數(shù)大于所述第一預(yù)設(shè)值的設(shè)置為高元共現(xiàn)片段;所述第一選取模塊,用于根據(jù)多元根據(jù)共現(xiàn)片段的元數(shù)及頻次選取所述低元共現(xiàn)片段和所述高元共現(xiàn)片段。
[0037]優(yōu)選方案中,所述第一選取模塊包括:低元共現(xiàn)片段選取模塊、高元共現(xiàn)片段選取模塊;所述低元共現(xiàn)片段選取模塊,采用下列方式A-C中的一種或幾種的組合選取低元共現(xiàn)片段:
[0038]A:對共現(xiàn)片段的頻次設(shè)置一個閾值進行過濾;當(dāng)共現(xiàn)片段的頻次大于或者等于設(shè)置的閾值時,該共現(xiàn)片段被選中;當(dāng)共現(xiàn)片段的頻次小于設(shè)定的閾值時,該共現(xiàn)片段不被選中;
[0039]B:設(shè)定在低元共現(xiàn)片段中需要選取的總數(shù)目P,將所有的低元共現(xiàn)片段按照頻次進行降序排列,然后選取排列的共現(xiàn)片段中前面的P個多元共現(xiàn)片段;所述P為正整數(shù),P的取值小于低元共現(xiàn)片段的總個數(shù);
[0040]C:按照共現(xiàn)片段元數(shù)的不同,分別進行排序,排序后再分別選取每個元數(shù)的共現(xiàn)片段中排在前q%的共現(xiàn)片段,所述q的范圍包括:0〈q〈100 ;
[0041]所述高元共現(xiàn)片段選取模塊,用于選取所述高元共現(xiàn)片段。
[0042]優(yōu)選方案中,所述存儲模塊采用下述存儲方法存儲選取的多元共現(xiàn)片段及其對應(yīng)的結(jié)果:將選取的多元共現(xiàn)片段及其對應(yīng)的查詢結(jié)果存放在內(nèi)存中或高速緩沖存儲器中;或,對多元共現(xiàn)片段建立倒排索引,產(chǎn)生倒排列表;將所述倒排列表及共現(xiàn)片段對應(yīng)的查詢結(jié)果存放在相同的或者不同的存儲器中,所述的存儲器包括內(nèi)存、高速緩沖存儲器或磁盤。
[0043]一種利用本申請數(shù)據(jù)處理方法獲得的數(shù)據(jù)進行查詢的方法,包括:
[0044]將查詢請求的內(nèi)容和存儲的多元共現(xiàn)片段進行匹配,并篩選匹配成功的多元共現(xiàn)片段;
[0045]為所述篩選的匹配成功的多元共現(xiàn)片段查找存儲的查詢結(jié)果;
[0046]為查詢請求返回所述查詢結(jié)果。
[0047]優(yōu)選方案中,當(dāng)所述篩選的匹配成功的多元共現(xiàn)片段包括2個或2個以上時,所述為查詢請求返回查詢結(jié)果包括:將查找到的查詢結(jié)果進行求交集運算;為查詢請求返回所述求交集運算得到的結(jié)果。
[0048]優(yōu)選方案中,當(dāng)存在沒有與存儲的多元共現(xiàn)片段匹配成功的片段時,所述查詢方法還包括:對所述沒有匹配成功的片段執(zhí)行查詢過程;相應(yīng)地,所述為查詢請求返回查詢結(jié)果包括:將篩選的匹配成功的多元共現(xiàn)片段對應(yīng)的查詢結(jié)果與根據(jù)所述沒有匹配成功片段執(zhí)行查詢過程的結(jié)果進行求交集運算;為查詢請求返回所述求交集運算得到的查詢結(jié)果;所述篩選的匹配成功的多元共現(xiàn)片段包括一個多元共現(xiàn)片段或一個以上多元共現(xiàn)片段。
[0049]優(yōu)選方案中,所述將查詢請求的內(nèi)容和存儲的多元共現(xiàn)片段進行匹配,包括:根據(jù)接收到的查詢請求,列舉出所述查詢請求中的多元共現(xiàn)片段;將所述多元共現(xiàn)片段從低元到高元依次與存儲的多元共現(xiàn)片段進行匹配,若能匹配成功,則將所述匹配成功的多元共現(xiàn)片段擴展至包含了該多元共現(xiàn)片段內(nèi)容的更高元共現(xiàn)片段,將所述的更高元共現(xiàn)片段與存儲的多元共現(xiàn)片段進行匹配;若不能匹配成功,則匹配中止,再將下一個多元共現(xiàn)片段與存儲的共現(xiàn)片段進行匹配,直至查詢請求的多元共現(xiàn)片段匹配完畢。
[0050]優(yōu)選方案中,所述篩選匹配成功的多元共現(xiàn)片段,包括:根據(jù)第二預(yù)設(shè)值,將所述匹配成功的共現(xiàn)片段的元數(shù)小于或等于所述第二預(yù)設(shè)值的設(shè)置為匹配成功的低元共現(xiàn)片段,將所述匹配成功的共現(xiàn)片段的元數(shù)大于所述第二預(yù)設(shè)值的設(shè)置為匹配成功的高元共現(xiàn)片段;篩選的策略包括:選取高元共現(xiàn)片段策略,所述選取高元共現(xiàn)片段策略包括選取所述匹配成功的高元共現(xiàn)片段;或,選取低元共現(xiàn)片段策略,所述選取低元共現(xiàn)片段策略包括選取所述匹配成功的低元共現(xiàn)片段。
[0051]一種利用本申請數(shù)據(jù)處理系統(tǒng)獲得的數(shù)據(jù)進行查詢的系統(tǒng),包括:查詢請求匹配模塊、查詢結(jié)果查找模塊、查詢結(jié)果返回模塊;其中,
[0052]所述查詢請求匹配模塊,用于將接收到的查詢請求的內(nèi)容與存儲的多元共現(xiàn)片段進行匹配,并篩選匹配成功的多元共現(xiàn)片段;
[0053]所述查詢結(jié)果查找模塊,用于為查詢請求匹配模塊中篩選的匹配成功的多元共現(xiàn)片段根據(jù)存儲模塊中存儲的多元共現(xiàn)片段和對應(yīng)的查詢結(jié)果,查找到存儲的查詢結(jié)果;
[0054]所述查詢結(jié)果返回模塊,用于為查詢請求返回所述查詢結(jié)果。
[0055]優(yōu)選方案中,所述查詢結(jié)果返回模塊,包括返回模塊,用于返回所述查詢請求的查詢結(jié)果。
[0056]優(yōu)選方案中,當(dāng)所述查詢請求匹配模塊中,篩選的匹配成功的多元共現(xiàn)片段包括2個或2個以上時,所述查詢結(jié)果返回模塊還包括:運算模塊;所述運算模塊,用于將查詢結(jié)果查找模塊中查找到2個或2個以上多元共現(xiàn)片段對應(yīng)的查詢結(jié)果進行求交集運算;相應(yīng)地,所述返回模塊,用于為查詢請求返回所述求交集運算得