1. 程式人生 > >倒排索引之布林查詢模型

倒排索引之布林查詢模型

布林檢索模型:接受布林表示式查詢,即通過AND、OR及NOT等邏輯操作符將詞項連線起來的查詢,在該模型下,每篇文件只被看成是一系列詞的集合。

查詢模式一:

term1  AND  term2,此模式較為簡單,只需要在詞典中分別查詢term1 和 term2 詞項,然後取兩個倒排記錄表的交集,標準的合併演算法需要O(x+y),x,y分別是兩個倒排記錄表的倒排記錄數目。

查詢優化:指如何通過組織查詢的處理過程來使處理工作量最小,考慮的一個主要因素是倒排記錄表的訪問順序。當有多個詞條進行與操作時,一個啟發式思想是:按照詞項的文件頻率從小到大依次進行處理,但不保證一定最優。

查詢模式二:

(term1 OR term2) AND (term3 OR term4)  AND  NOT term5,此模式為一般情況,仍然可以通過上述查詢優化方式進行處理,對於OR操作的可以通過簡單的文件頻率相加作為運算結果大小的估計。 對於NOT操作,可採取的估計手段是:如果“非詞項”為高頻詞,可採用 “N-文件頻率”作為結果的文件頻率估計,如果"非詞項"為低頻詞,則就採用原有文件頻率作為估計,但對低頻詞的“非詞項”的合併往往放到最後處理。

提高合併的策略:如果查詢中的兩個詞項都是常見詞,還是有必要採用標準的倒排記錄合併方法;當兩個詞項的倒排記錄表相差很大的情況下,可以應用一些加速策略:(1)通過在長倒排記錄表中對中間結果表中的每一個元素進行二分查詢來實現合併(2)將長倒排記錄表用雜湊方式儲存,可以在常數時間能完成對中間結果表中元素的查詢。