1. 程式人生 > >搜尋引擎學習筆記-第二章 Web搜尋引擎工作原理和體系結構

搜尋引擎學習筆記-第二章 Web搜尋引擎工作原理和體系結構

搜素引擎,應用軟體系統,網路應用軟體系統。三個功能模組,或說三個子系統:即網頁蒐集、預處理和查詢服務。相互獨立它們的工作形成了搜尋引擎工作的三個階段,通常分別由人工啟動。
第二章 Web搜尋引擎工作原理和體系結構
基本要求
能夠接受使用者通過瀏覽器提交的查詢詞或者短語,記作q。在一個可以接受的時間內返回一個和使用者查詢匹配的網頁資訊列表,記作L。
注意:
“可以接受的時間”即是響應時間。保證秒級響應時間。
“匹配”指的是網頁中以某種形式包含q的內容。其中最簡單、最常見的形式就是q在其中直接出現。
“列表”,這蘊含這一種“序”。在絕大多數情況下,L是相當長的。不僅是因為Web的資訊量大,也是由於搜尋引擎的查詢方式簡單。簡單意味著抽象;抽象意味著有更多的具體事務可能是它的體現。很多都沒用。
網頁蒐集

工作方式,這個軟體系統操作的資料不僅包括內容不可預測的使用者查詢,還要包括在數量上動態變化的海量網頁,並且這些網頁不會主動送到系統來,而是需要由系統去抓取。
首先,考慮抓取時機:預先抓取蒐集一批網頁,而不是即時查詢時去抓取。 那麼這一批網頁如何維護?兩種考慮:
定期蒐集,每次蒐集替換上一次的內容,我們稱之為ie“批量搜尋”。花銷很大,因此通常兩次蒐集的間隔時間不會很短(例如早期天網的版本大約每3個月一次,Google在一段時間曾是28天來一次)。好處是系統實現比較簡單,缺點是“時新性”(freshness)不高,還有重複蒐集帶來的額外頻寬的消耗。
增量蒐集,開始蒐集一批,往後只是(1)蒐集新出現的網頁,(2)蒐集那些在上次蒐集後有過改變的網頁,(3)發現自從上次蒐集後已經不再存在的網頁,並從庫中刪除。由於除新聞網站外,許多網頁的內容變化不是很經常的(有研究指出50%網頁的平均生命週期大約50天),這樣蒐集量不會很大,於是每天可以啟動蒐集過程。

這是系統網頁資料庫維護的基本策略。具體蒐集過程中,如何抓取一篇篇的網頁:“爬取”,看成“有向圖”,集合S,遍歷。真正的系統其實是多個“蜘蛛”同時在爬。這樣可以蒐集儘量重要的網頁,研究表明,先寬搜尋方式得到的網頁集合比先深搜尋得到的集合重要。向大型商業搜尋引擎提交網址。
預處理
一個合適的資料結構是查詢子系統工作的核心和關鍵。現行最有效的資料結構是“倒排檔案”(inverted file);倒排檔案是用文件中所含關鍵詞作為索引,文件作為索引目標的一種資料結構(類似於普通書籍中,索引是關鍵詞,書的頁面是索引目標)。
預處理主要包括四個方面:關鍵詞的提取,“映象網頁”(網頁內容完全相同,未加修改)或“轉載網頁”(near-replicas,主題內容基本相同但可能有一些額外的編輯資訊等,轉載網頁也稱為“近似映象網頁”)的消除,連結分析和網頁重要程度的計算。
關鍵詞的提取

對中文來說,就是要根據一個詞典,用一個所謂“切詞軟體”,從網頁中切出字典中所含的詞語來。從效果和效率考慮,去掉沒意義的詞,稱為“停用詞”(stop Word)
重複和轉載頁面的消除
因為網頁重複率太高,消耗資源和時間。
連結分析
網頁重要程度的計算
核心想法“被引用多的就是重要的”。Google創立核心技術PageRank就是這種思路。
查詢服務
查詢方式和匹配
結果排序
文件摘要
體系結構

搜蘇引擎學習筆記-第二章 Web搜尋引擎工作原理和體系結構 - 貝殼 - 大浪淘貝“控制器”大規模搜尋引擎文件的提供網頁資料,每天要蒐集上百萬網頁,而且是持續進行,情況很複雜,核心是要綜合解決效率、質量和“禮貌”的問題,這就是“控制器”的作用。
所謂效率,就是如何利用盡量少的資源(計算機裝置、網路頻寬、時間)來完成預定的網頁蒐集量。由於網頁之間的獨立性,利用多臺計算機同事做這項工作很不錯。但這裡要注意三點:第一,即是用一臺計算機來蒐集網頁,也應該注意併發性的開發和利用。第二點,並不是裝置越多越好。裝置多頻寬就會成為瓶頸。第三點,發生在網路的另一端,即服務方,它可能來不及提供所需的網頁。
將蒐集活動過多的集中在幾個網站上,或者在一小段時間裡從一個網站抓取太多的網頁還可能引起其他的嚴重後果,即所謂“禮貌”問題。不加控制的網頁抓取給網站造成的現象有時候和製造拒絕服務(Denial of Servide, DoS)攻擊的黑客造成的現象一樣。
所謂質量問題,指的是,在有限的時間內蒐集有限的網頁,希望它們儘量是比較重要的網頁,或者說不漏掉那些很重要的網頁。
還有一個問題,就是要保證每個網頁不被重複抓取。多次被抓取,遇到迴圈連結的情況,還會使爬取器陷死。解決這個問題的有效辦法是使用兩個表,unvisited_table和visited_table。前者包含尚未訪問的URL,後者記錄已經訪問的URL。

相關推薦

搜尋引擎學習筆記-第二 Web搜尋引擎工作原理體系結構

搜素引擎,應用軟體系統,網路應用軟體系統。三個功能模組,或說三個子系統:即網頁蒐集、預處理和查詢服務。相互獨立它們的工作形成了搜尋引擎工作的三個階段,通常分別由人工啟動。第二章 Web搜尋引擎工作原理和體系結構基本要求能夠接受使用者通過瀏覽器提交的查詢詞或者短語,記作q。在一個可以接受的時間內返回一個和使用

js學習筆記-第二變數、作用域記憶體問題-執行環境作用域

//執行環境:執行環境(execution context,為簡單起見,有時也稱為“環境”)是 JavaScript 中最為重要的一個概念。執行環境定義了變數或函式有權訪問的其他資料,決定了它們各自的行為 //變數物件:。每個執行環境都有一個與之關聯的變數物件(variable object

Web前端黑客技術揭祕》學習筆記 第二(二)

Dom樹: <html>是樹根,其他是樹的每個節點 標籤節點以<xxx>表示,屬性節點以@xxx表示,而文字節點以xxx表示 隱私資料可能儲存在: HTML內容中 瀏覽器本地儲存中,如Cookies等 URL地址中 很多網站通過ifram

《呂鑫:VC++6.0就業培訓寶典之MFC視頻教程》學習筆記 -- 第二 MFC原理介紹

第一個 寶典 數據類型 對話 視頻 資源管理 bsp 程序開發 第二章 第二章 MFC原理介紹 2.1 第一個Win32軟件 2.2 Win32對話框程序開發 2.3 程序資源管理和Windows數據類型 2.4 Win32環境下的多對話框管理 2.5 初步學習MFC軟件

網絡是怎樣連接的學習筆記-第二-連接服務器

開頭 串操作 tcp con com png 還需要 什麽 如果 2.2 連接服務器 2.2.1 連接是什麽意思 連接時發生了什麽 客戶端創建套接字告知服務器我要通信 創建套接字之後,應用程序就會調用 connect。隨後協議棧會將本地的套接字與服務器的套接字進行連接。 在

網路是怎樣連線的學習筆記-第二-收發資料(上)

2.3 收發資料 2.3.1 將 HTTP 請求訊息交給協議棧 當控制流程從 connect 回到應用程式之後,接下來就進入資料收發階段了。 資料收發操作是從應用程式呼叫 write 將要傳送的資料交給協議棧開始的,協議棧收到 資料後執行傳送操作,這一操作包含如下要點。 協議棧並不關心應用程式傳來的

網路是怎樣連線的學習筆記-第二-從伺服器斷開並刪除套接字

2.4 從伺服器斷開並刪除套接字 2.4.1 資料傳送完畢後斷開連線 收發資料結束的時間點應該是應用程式判斷所有資料都已經發送完畢的時候。 這時,資料傳送完畢的一方會發起斷開過程,但不同的應用程式會選擇不同的斷開時機。 以 Web 為例,瀏覽器向 Web 伺服器傳送請求訊息,Web 伺服器再

網路是怎樣連線的學習筆記-第二-IP與乙太網的包收發操作(二)

2.5.3 生成包含接收方 IP 地址的 IP 頭部 IP頭部包含的內容 IP 模組接受 TCP 模組的委託負責包的收發工作,它會生成 IP 頭部並附加在 TCP 頭部前面。 IP 頭部包含的內容如表 2.2 所示,其中最重要的內容就是 IP 地址,它表示這個包應該發到哪裡去。 接受方IP地址:應用程

網絡是怎樣連接的學習筆記-第二-IP與以太網的包收發操作(四)

出現 init 信號 height 這樣的 介質 操作系統 初始化 關於 2.5.9 向集線器發送網絡包 發送信號的半雙工和全雙工模式 加上報頭、起始幀分界符和 FCS 之後,我們就可以將包通過網線發送出去了。 發送信號的操作分為兩種,一種是使用集線器的半雙工模式,另一種是

網路是怎樣連線的學習筆記-第二-IP與乙太網的包收發操作(四)

2.5.9 向集線器傳送網路包 傳送訊號的半雙工和全雙工模式 加上報頭、起始幀分界符和 FCS 之後,我們就可以將包通過網線傳送出去了。 傳送訊號的操作分為兩種,一種是使用集線器的半雙工模式,另一種是使用交換機的全雙工模式。 傳送和接收同時並行的方式叫作“全雙工”,相對地,某一時刻只能進行傳送或

網絡是怎樣連接的學習筆記-第二-UDP協議的收發操作

復雜 tro 圖像 單純 火墻 返回 查錯 block 6.2 2.6 UDP 協議的收發操作 2.6.1 不需要重發的數據用 UDP 發送更高效 大多數的應用程序都像之前介紹的一樣使用 TCP 協議來收發數據,但當然也有例外。 有些應用程序不使用 TCP 協議,而是使用

python《資料科學入門》學習筆記第二 2018-8-17開始

昨天早晨發現新買不到一週的自行車被偷了,我的2000大洋啊,心在滴血,小偷我草你媽,去學校安保處與派出所報警也花了一上午,下午接到朋友電話,被告知那個她找了新的男朋友,生活真是日了狗了。苟延殘喘。 經過三個來月的python程式設計,雖然能夠寫一些複雜的演算法。但是編寫速度很慢,原因是基本功不紮

《ESL》學習筆記-第二 監督學習概述

文章目錄 變數的型別 定量變數Y 定性變數G 分類 舉例 編碼方式 兩種最簡單的估計模型 線性模型(使用最小二乘估計) 線性模型 最

周志華西瓜書《機器學習筆記學習筆記第二《模型的評估與選擇》

本章是西瓜書的第二章,周志華老師在這一部分基礎對機器學習中的基礎知識進行介紹,主要闡述了誤差、過擬合的相關概念和模型的評估度量方法。 博主在今年元旦之後就要正式開始做畢業設計了,所以我會努力在今年元旦假期結束之前把西瓜書的所有內容更新。也希望大家可以監督我嘻嘻。 一、經驗誤

Nginux學習筆記 第二

檢視所有的程序和埠使用情況檢視80端口占用情況:netstat -apn | grep 80 linux檢查某個埠是否被使用的命令是 netstat -tunlp 會顯示所有埠和所有對應的程式,用grep管道可以過濾出想要的關鍵欄位. 4. 執行 sbin/nginx 命令來啟動 Nginx

《Python自然語言處理》學習筆記-第二

第二章:獲得文字語料和詞彙資源 2.1 獲取文字語料庫 古滕堡語料庫 (1)首先載入nltk包。 (2)使用nltk.corpus.gutenberg.fileids方法能夠獲取古滕堡語料庫中所有的文字識別符號。 (3)使用nltk.corpus.

第一行程式碼學習筆記第二——探究活動

知識點目錄 知識點回顧 2.1 活動是什麼 是一種包含使用者介面的元件,主要用於和使用者進行互動。 2.2 活動的基本用法 Android Studio一個工作區間只允許開啟一個專案,故點選導航欄File –> Close

c++ primer 第五版學習筆記-第二 變數基本型別

本文為轉載,出處:https://blog.csdn.net/libin1105/article/details/48157115                              https://blog.csdn.net/sunhero2010/article/d

學習筆記第二 GIS之 瓦片地圖

網際網路地圖發展 在2000年左右,網際網路地圖採用CS架構。使用者需要預先在本地安裝客戶端軟體,並且下載儲存向量地圖資訊的.shp檔案才能瀏覽使用地圖。客戶端軟體有Arcmap、MapInfo等。 當

【Oracle效能診斷藝術】學習筆記----第二:關鍵概念

2.1選擇性和基數 cardinality = selectivity * num_rows 2.2.0 概念 #遊標:    指向私有sql區、及其關聯的共享sql區的控制代碼。 #私有sql區     儲存繫結變數、查詢執行狀態資訊等資料。屬於具體回話 #使用者全域性