理解正向索引


 

 

倒排索引也叫做反向索引(inverted單詞也有反轉的意思,只不過大家喜歡翻譯成倒排索引)。

 

倒排索引在搜索引擎中經常用到,倒排索引也叫做反向索引。某天在想,為什么叫做倒排索引呢?倒過來的,反轉過來的。那么,非倒排索引是什么樣子的。解釋一大堆。雲里霧里。

 

后來知道,反向索引是相對正向索引而言的,那什么是正向索引?我想,了解了正向索引,就能知道反向索引的產生背景了。

 

下面是網上一些資料說法:

 

每個文件都對應一個文件ID,文件內容被表示為一串關鍵詞的*。實際上在搜索引擎索引庫中,關鍵詞也已經轉換為關鍵詞ID。這樣的數據結構就稱為正向索引
倒排索引正向索引還不能直接用於排名。假設用戶搜索關鍵詞2,如果只存在正向索引的話,排名程序需要掃描所有索引庫中的文件,找出包含關鍵詞2 的文件(索引文件),再進行相關性計算。這樣的計算量無法滿足實時返回排名結果的要求。所以搜索引擎會將正向索引數據庫重新構造為倒排索引,把文件對應到關鍵詞的映射轉換為關鍵詞到文件的映射,每個關鍵詞都對應着一系列文件,這些文件中都出現了這個關鍵詞。

 

 

搜索引擎工作原理之預處理


預處理總共分為幾個步驟:1.提取文字、2.中文分詞、3.去停止詞、4.消除噪聲、5.去重、6.正向索引、7.倒排索引、8.鏈接關系計算、9.特殊文件處理

 

 

上面說法感覺不是很明白。現在整理一下自己的理解

 

為每篇文檔生成一個關鍵詞集合,也就是提取這篇文檔中的所有關詞

比如文檔1

經過分詞,提取文檔1中出現的關鍵詞有20個

 

這個20個關鍵詞集合起來,每個關鍵詞都會順便記錄它出現在文檔的位置,出現的次數等信息

正向索引的結構像下面這樣子的:

 

文檔編號1  此文檔中出現的關鍵詞列表(單詞1,出現位置,出現次數;單詞2,出現位置,出現次數………..)

文檔編號2  此文檔中出現的關鍵詞列表

 

這是正向索引。

 

如果要搜索關鍵詞”單詞1”,則去正向索引可以直接查出來哪些文檔包含了單詞1。正向索引還是需要遍歷掃描(掃描所有正向索引文件才知道哪些文檔帶有某個關鍵詞),性能比較慢。

 

頓時明白了某個資料中提到這句話:實際上,時間、內存處理器等等資源的限制,技術上正向索引是不能實現的。

 

跟正向索引相比,反向索引就是反過來。怎么個反過來法呢?

 

左邊是關鍵詞,右邊是文檔編號,如下:

 

關鍵詞1   帶有此關鍵詞的文檔編號1,文檔編號2….

關鍵詞2   帶有此關鍵詞的文檔編號1,文檔編號2….

 

很多介紹太學術化了,即便是做技術開發的,沒有實際應用過,一時難以理解。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM