1.一種基于求交算法的搜索方法,其特征在于,包括:
對(duì)搜索的關(guān)鍵詞進(jìn)行分析,以生成語法樹;
對(duì)所述語法樹進(jìn)行扁平化處理,并選取倒排塊最短的文檔集合作為最小候選集;
遍歷所述最小候選集,并對(duì)遍歷結(jié)果進(jìn)行評(píng)估,以分別生成倒排求交次數(shù)和順排求交次數(shù);
對(duì)比所述倒排求交次數(shù)和所述順排求交次數(shù),取其次數(shù)小者為最優(yōu)求交算法;以及
按照所述最優(yōu)求交算法生成搜索結(jié)果。
2.如權(quán)利要求1所述的搜索方法,其特征在于,對(duì)所述語法樹進(jìn)行扁平化處理,并選取倒排塊最短的文檔集合作為最小候選集,具體包括:
對(duì)所述語法樹進(jìn)行扁平化處理,以形成初級(jí)候選集;
將所述初級(jí)候選集按照倒排塊的長(zhǎng)度進(jìn)行排序;以及
選取倒排塊最短的文檔集合作為最小候選集。
3.如權(quán)利要求2所述的搜索方法,其特征在于,對(duì)所述語法樹進(jìn)行扁平化處理,以形成初級(jí)候選集,具體包括:
判斷所述語法樹中是否含有并集關(guān)系;
如果有所述并集關(guān)系,則進(jìn)行合并處理;以及
直至將所述語法樹中多層語法關(guān)系簡(jiǎn)化成通過交集關(guān)系進(jìn)行連接的兩層語法樹,即形成所述初級(jí)候選集。
4.如權(quán)利要求2所述的搜索方法,其特征在于,將所述初級(jí)候選集按照倒排塊的長(zhǎng)度進(jìn)行排序,具體包括:
判斷所述初級(jí)候選集是否是復(fù)合集合;
若是復(fù)合集合,則所述倒排塊的長(zhǎng)度等于初級(jí)候選集所有關(guān)鍵詞的文檔數(shù)量的累加值;或若不是復(fù)合集合,則所述倒排塊的長(zhǎng)度等于文檔的數(shù)量;以及
將所述初級(jí)候選集按照所述倒排塊長(zhǎng)度從小到大進(jìn)行排列。
5.如權(quán)利要求1所述的搜索方法,其特征在于,遍歷所述最小候選集,并對(duì)遍歷結(jié)果進(jìn)行評(píng)估,以分別生成倒排求交次數(shù)和順排求交次數(shù)的步驟中,生成倒排求交次數(shù),具體包括:
遍歷所述最小候選集中的文檔;
按照每個(gè)集合中的關(guān)鍵詞,依次尋找命中所述關(guān)鍵詞的倒排塊;
在所述倒排塊中采用二分查找的方法查找命中所述關(guān)鍵詞的文檔;以及
當(dāng)查找到所述命中所述關(guān)鍵詞的文檔后,計(jì)算命中所述關(guān)鍵詞的文檔的所用的次數(shù),得到倒排求交次數(shù)。
6.如權(quán)利要求1至5任一項(xiàng)所述的搜索方法,其特征在于,所述倒排求交次數(shù),通過關(guān)鍵詞個(gè)數(shù)、倒排塊個(gè)數(shù)、以及倒排塊中文檔個(gè)數(shù)來進(jìn)行計(jì)算。
7.如權(quán)利要求1所述的搜索方法,其特征在于,遍歷所述最小候選集,并對(duì)遍歷結(jié)果進(jìn)行評(píng)估,以分別生成倒排求交次數(shù)和順排求交次數(shù),生成順排求交次數(shù),具體包括:
對(duì)所述最小候選集所中的文檔和關(guān)鍵詞建立索引,所述索引包括:對(duì)每個(gè)關(guān)鍵詞建立倒排的文檔集合、對(duì)每篇文檔建立順排的關(guān)鍵詞集合;
通過所述索引計(jì)算所述關(guān)鍵詞在各文檔中的緊鄰度、完全匹配度;
根據(jù)所述關(guān)鍵詞的緊鄰度、完全匹配度來計(jì)算各文檔的排序順序;
按照所述排序順序遍歷所述最小候選集中的文檔;
依次判斷每個(gè)集合的關(guān)鍵詞是否命中所述最小候選集中的文檔;以及
當(dāng)命中所述最小候選集中的文檔后,計(jì)算命中所述最小候選集中的文檔的所用的次數(shù),得到倒排求交次數(shù)。
8.如權(quán)利要求1、2、3、4或7任一項(xiàng)所述的搜索方法,其特征在于,所述順排求交次數(shù),通過關(guān)鍵詞個(gè)數(shù)、最小候選集的文檔個(gè)數(shù)、以及平均每篇文檔的關(guān)鍵詞個(gè)數(shù)來進(jìn)行計(jì)算。
9.如權(quán)利要求1至4任一項(xiàng)所述的搜索方法,其特征在于,對(duì)比倒排求交次數(shù)和順排求交次數(shù),取其次數(shù)小者為最優(yōu)求交算法,具體包括:
對(duì)比所述倒排求交次數(shù)和所述順排求交次數(shù);
若所述倒排求交次數(shù)小于順排求交次數(shù),則所述倒排求交次數(shù)為最優(yōu)求交算法;
若所述倒排求交次數(shù)大于等于順排求交次數(shù),則所述順排求交次數(shù)為最優(yōu)求交算法。
10.如權(quán)利要求1至4任一項(xiàng)所述的搜索方法,其特征在于,對(duì)搜索的關(guān)鍵詞進(jìn)行分析,以生成語法樹,具體包括:
預(yù)設(shè)分析規(guī)則,所述分析規(guī)則至少包括:詞義分析或語義分析之一者;
按照所述分析規(guī)則對(duì)所述搜索的關(guān)鍵詞進(jìn)行分析;以及
將分析所產(chǎn)生的關(guān)鍵詞的集合生成語法樹。
11.如權(quán)利要求1至4任一項(xiàng)所述的搜索方法,其特征在于,對(duì)搜索的關(guān)鍵詞進(jìn)行分析,以生成語法樹,之前還包括步驟:
接收檢索串,并對(duì)所述檢索串進(jìn)行切分以生成所述搜索的關(guān)鍵詞。
12.如權(quán)利要求11所述的搜索方法,其特征在于,接收檢索串,并對(duì)所述檢索串進(jìn)行切分以生成所述搜索的關(guān)鍵詞,具體包括:
預(yù)設(shè)切詞規(guī)則;
所述對(duì)所述檢索串進(jìn)行切分以生成所述搜索的關(guān)鍵詞,具體為:將檢索串按照所述切詞規(guī)則切分成若干搜索的關(guān)鍵詞。
13.一種基于求交算法的搜索系統(tǒng),其特征在于,包括:
語法樹生成模塊,用于對(duì)搜索的關(guān)鍵詞進(jìn)行分析,以生成語法樹;
最小候選集選取模塊,用于對(duì)所述語法樹進(jìn)行扁平化處理,并選取倒排塊最短的文檔集合作為最小候選集;
次數(shù)預(yù)估模塊,用于遍歷所述最小候選集,并對(duì)遍歷結(jié)果進(jìn)行評(píng)估,以分別生成倒排求交次數(shù)和順排求交次數(shù);
最優(yōu)求交算法選擇模塊,用于對(duì)比所述倒排求交次數(shù)和所述順排求交次數(shù),取其次數(shù)小者為最優(yōu)求交算法;以及
搜索模塊,用于按照所述最優(yōu)求交算法生成搜索結(jié)果。
14.如權(quán)利要求13所述的搜索系統(tǒng),其特征在于,還包括:
關(guān)鍵詞切詞模塊,用于接收檢索串,并對(duì)所述檢索串進(jìn)行切分以生成所述搜索的關(guān)鍵詞。
15.如權(quán)利要求13所述的搜索系統(tǒng),其特征在于,所述最小候選集模塊具體包括:
所述初級(jí)候選集子模塊,用于對(duì)所述語法樹進(jìn)行扁平化處理,以形成初級(jí)候選集,其中所述初級(jí)候選集為通過交集關(guān)系進(jìn)行連接的兩層語法樹;以及
所述最小候選集子模塊,用于將所述初級(jí)候選集按照倒排塊的長(zhǎng)度進(jìn)行排序,并選取倒排塊最短的文檔集合作為最小候選集。
16.如權(quán)利要求13所述的搜索系統(tǒng),其特征在于,在所述次數(shù)預(yù)估模塊中:
順排求交次數(shù),通過關(guān)鍵詞個(gè)數(shù)、最小候選集的文檔個(gè)數(shù)、以及平均每篇文檔的關(guān)鍵詞個(gè)數(shù)來進(jìn)行計(jì)算;以及
所述倒排求交次數(shù),通過關(guān)鍵詞個(gè)數(shù)、倒排塊個(gè)數(shù)、以及倒排塊中文檔個(gè)數(shù)來進(jìn)行計(jì)算。