搜尋引擎中的爬蟲和倒排索引技術

2021-06-22 16:56:24 字數 1985 閱讀 5353

我書讀得少,你不要騙我。這可能是最適合我們的一句話了。昨晚跟以前的部長祥仔爺聊天,得知他現在在做搜尋引擎的優化,在那家公司工作,他便跟我說起他的專業知識。但是由於我書讀得太少了,很多專業術語都聽不懂,連爬蟲這個詞語我都聽得一愣一愣的,還好我記得爬蟲是搜尋引擎必備的。今天在看自動機的書順帶查了一下。

網路爬蟲為搜尋引擎從

傳統爬蟲從乙個或若干初始網頁的

url開始,獲得初始網頁上的url,在抓取網頁的過程中,不斷從當前頁面上抽取新的url放入佇列,直到滿足系統的一定停止條件。通俗的講,也就是通過原始碼解析來獲得想要的內容。

聚焦爬蟲的工作流程較為複雜,需要根據一定的網頁分析演算法過濾與主題無關的鏈結,保留有用的鏈結並將其放入等待抓取的url佇列。然後,它將根據一定的搜尋策略從佇列中選擇下一步要抓取的網頁url,並重複上述過程,直到達到系統的某一條件時停止。另外,所有被爬蟲抓取的網頁將會被系統存貯,進行一定的分析、過濾,並建立

索引,以便之後的查詢和

檢索;對於聚焦爬蟲來說,這一過程所得到的分析結果還可能對以後的抓取過程給出

反饋和指導。

下面來看看他是怎麼抓取的

三、抓取策略

在爬蟲系統中,待抓取url佇列是很重要的一部分。待抓取url佇列中的url以什麼樣的順序排列也是乙個很重要的問題,因為這涉及到先抓取那個頁面,後抓取哪個頁面。而決定這些url排列順序的方法,叫做抓取策略。下面重點介紹幾種常見的抓取策略:

1.深度優先遍歷策略

深度優先遍歷策略是指網路爬蟲會從起始頁開始,乙個鏈結乙個鏈結跟蹤下去,處理完這條線路之後再轉入下乙個起始頁,繼續跟蹤鏈結。我們以下面的圖為例:

遍歷的路徑:a-f-g  e-h-i b c d

2.寬度優先遍歷策略

遍歷路徑:a-b-c-d-e-f g h i

好吧爬蟲就到這裡了,我也是看得一愣一愣的。下面是倒排索引了。

正排索引與倒排索引

咱們先來看什麼是倒排索引,以及倒排索引與正排索引之間的區別:

接下來,闡述下正排索引與倒排索引的區別:

正排表是以文件的id

為關鍵字,表中記錄文件中每個字的位置資訊,查詢時掃瞄表中每個文件中字的資訊直到找出所有包含查詢關鍵字的文件。正排表結構如圖

1所示,這種組織方法在建立索引的時候結構比較簡單,建立比較方便且易於維護

;因為索引是基於文件建立的,若是有新的文件假如,直接為該文件建立乙個新的索引塊,掛接在原來索引檔案的後面。若是有文件刪除,則直接找到該文件號文件對因的索引資訊,將其直接刪除。但是在查詢的時候需對所有的文件進行掃瞄以確保沒有遺漏,這樣就使得檢索時間大大延長,檢索效率低下。 

儘管正排表的工作原理非常的簡單,但是由於其檢索效率太低,除非在特定情況下,否則實用性價值不大。

倒排表以字或詞為關鍵字進行索引,表中關鍵字所對應的記錄表項記錄了出現這個字或詞的所有文件,乙個表項就是乙個字表段,它記錄該文件的id

和字元在該文件中出現的位置情況。由於每個字或詞對應的文件數量在動態變化,所以倒排表的建立和維護都較為複雜,但是在查詢的時候由於可以一次得到查詢關鍵字所對應的所有文件,所以效率高於正排表。在全文檢索中,檢索的快速響應是乙個最為關鍵的效能,而索引建立由於在後台進行,儘管效率相對低一些,但不會影響整個搜尋引擎的效率。

倒排表的結構圖如圖2:

倒排表的索引資訊儲存的是字或詞後繼陣列模型、互關聯後繼陣列模型條在文件內的位置,在同一篇文件內相鄰的字或詞條的前後關係沒有被儲存到索引檔案內。

我只是默默地覺得正排索引沒什麼用,倒排索引就是專門為搜尋引擎設計的吧,但是我比較想知道word(關鍵字)是全部還是只是大概每篇文章就幾個關鍵字那樣,我覺得應該全部都是關鍵字同時設立幾個關鍵字優先吧 。同時倒排列表如下:

roger     位址    次數   《第幾行,第4行,。。。>   

位址他經常以相對位址來比的  比如說第乙個是10000  第二個是10005   第二個就直接寫5了,否則會占用很多記憶體儲存吧,真是機智啊。

搜尋引擎 倒排索引

本節通過引入簡單例項,介紹與搜尋引擎索引有關的一些基礎概念,了解這些基礎概念對於後續深入了解索引的工作機制非常重要。3.1.1單詞 文件矩陣 單詞 文件矩陣是表達兩者之間所具有的一種包含關係的概念模型,圖3 1展示了其含義。圖3 1的每列代表乙個文件,每行代表乙個單詞,打對勾的位置代表包含關係。圖3...

搜尋引擎 倒排索引

倒排索引基本概念示意圖 假設文件集合包含五個文件,每個文件內容如圖3 3所示,在圖中最左端一欄是每個文件對應的文件編號。我們的任務就是對這個文件集合建立倒排索引。文件集合 需要對每個單詞賦予唯一的單詞編號,同時記錄哪些文當包含這些單詞,如下就是乙個簡單的索引,單詞id記錄了每個單詞的單詞編號,第二欄...

搜尋引擎 倒排索引

一 基本概念 倒排索引源於實際應用中需要根據屬性的值來查詢記錄。這種索引表中的每一項都包括乙個屬性值和具有該屬性值的各記錄的位址。由於不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而稱為倒排索引 inverted index 帶有倒排索引的檔案我們稱為倒排索引檔案,簡稱倒排檔案 inver...