Nutch第一課之搜索引擎基本子系統

最近在學習Nutch搜索引擎框架,由於比較菜,因此我會將學習的內容慢慢記錄下來,幫助本身記憶,也方便別人學習,但願可以與別人碰撞出思想的火花j_0061.gifhtml

Nutch是Apache開源社區下的一個頂級項目,是利用Java編寫的一個搜索引擎框架,能夠方便企業以及我的搭建本身的搜索引擎(http://lucene.apache.org/nutch)。java

要寫學習應用這個框架:咱們須要瞭解構成搜索引擎所必須的幾個子系統: 數據庫

  1. 網頁數據庫apache

    數據庫跟蹤網絡爬蟲要抓取的全部網頁和它們的狀態,如上一次訪問的時間,它的抓取狀態信息,刷新間隔,內容校驗和,等等。對應於Nutch中的CrawlDB數組

  2. 爬取網頁清單網絡

    網絡爬蟲按期刷新其Web視圖信息,而後下載新的網頁(之前沒有抓取的)或刷新它們認爲已通過期的網頁。這些準備爬取的候選網頁清單。對應於Nutch中的fetchlist。框架

  3. 原始網頁數據ide

    網頁內容從遠程網站下載,以原始的未解釋的格式在本地存儲成字節數組。對應於Nutch中的page content。學習

  4. 解析的網頁數據fetch

    網頁內容用適合的解析器進行解析——Nutch爲各類流行格式的文檔提供瞭解析器,如HTML,PDF,Open Office和Microsoft Office,RSS等

  5. 鏈接圖數據庫

    對於計算基於連接(link)的網頁排序(page rank)值來講,如PageRank,這個數據庫是必須的。對於Nutch記錄的每個URL,它會包含一串指向它的其餘的URL值以及這些URL關聯的錨文本(在HTML文件的錨文本元素中獲得)。這個數據庫稱爲LinkDb。

  6. 全文檢索索引

    這是一個傳統的倒排索引,基於蒐集到的全部網頁元數據與抽取到的純文本內容而創建。它是使用卓越的Lucene庫(http://lucene.apache.org/java)來實現的。

    附兩張nutch工做流程圖,參考自:http://blog.sina.com.cn/s/blog_6d0b92d90100w6p7.html

163958146.gif

164139861.gif

相關文章
相關標籤/搜索