P648 第一章首先概要的介紹搜索引擎的總體結構和基本模塊,然后會介紹其中的最核心的模塊:全文檢索的基本原理。為了盡快普及搜索引擎開發技術,本章介紹的搜索引擎結構可以采用開源軟件實現。為了通過實踐來深入了解相關技術,本章中會介紹相關的開發環境。本書介紹的搜索技術使用Java編程語言實現,之所以沒有采用性能可能會更好的C/C++,是希望讀者不僅能夠快速完成相關的開發任務,而且可以把相關實踐作為一個容易上手的游戲。另外,為了集中關注程序的基本邏輯,書中的Java代碼去掉了一些錯誤和異常處理,實際可以運行的代碼可以在本書附帶的光盤中找到。在以后的各章中會深入探索搜索引擎的每個組成模塊。
P17
P67 你知道百度、Google是如何獲取數以億計的網頁并且實時更新的嗎?你知道在搜索引擎領域人們常說的Spider是什么嗎?本章將全面介紹網絡爬蟲的方方面面。讀完之后,你將完全有能力自己寫一個網絡爬蟲,隨意抓取互聯網上任何感興趣的東西。 既然百度、Google這些搜索引擎巨頭已經幫我們抓取了互聯網上的大部分信息,為什么還要自己寫爬蟲呢?因為深入整合信息的需求是廣泛存在的。在企業中,爬蟲抓取下來的信息可以作為數據倉庫多維展現的數據源,也可以作為數據挖掘的來源。甚至有人為了炒股,專門抓取股票信息。既然從美國中情局到普通老百姓都需要,那還等什么,讓我們快開始吧。 網絡爬蟲的基本操作是抓取網頁。那么如何才能隨心所欲地獲得自己想要的頁面?這一節將從URL開始講起,然后告訴大家如何抓取網頁,并給出一個使用Java語言抓取網頁的例子。最后,要講一講抓取過程中的一個重要問題:如何處理HTTP狀態碼。
P51 隨著互聯網技術的發展以及風起云涌的云計算浪潮。爬蟲技術也逐漸向著分布式方向發展。比如,Google的爬蟲就是使用成千上萬臺小型機和微機進行合作,完成分布式抓取工作的。分布式技術不僅可以解決IT運營的成本,還可以解決爬蟲效率問題,尤其是當今云計算的熱潮,更把分布式推向了極致。設計分布式爬蟲,把抓取任務分布到不同的節點主要是為了抓取性能與可擴展性,也可以使用物理分布的爬蟲系統,讓每個爬蟲節點抓取靠近它的網站。例如,北京的爬蟲節點抓取北京的網站,上海的爬蟲節點抓取上海的網站,電信網絡中的爬蟲節點抓取托管在電信的網站,聯通網絡中的爬蟲節點抓取托管在聯通的網站。
P5 Nutch的爬蟲抓取網頁有兩種方式,一種方式是Intranet Crawling,針對的是企業內部網或少量網站,使用的是crawl命令;另一種方式是Whole-webcrawling,針對的是整個互聯網,使用inject、generate、fetch和updatedb等更底層的命令。本文將以使用Nutch為筆者在CSDN處的個人專欄文章內容建立搜索功能為例,來講述Intranet Crawling的基本使用方法(假設用戶電腦系統已安裝好JDK、Tomcat和Resin,并做過相應的環境配置)。