Nutch在Windows中安裝之細解
近來Nutch一詞在網絡中時有所見,但囿於平常工作繁忙而未能潛心細讀與研究,只知道Nutch是Apache組織的一個開源項目,利用它用戶可以建
立自己內部網的搜索引擎,也可以建立針對整個網絡的搜索引擎。好在春節假日期間,終於得空可以從容對其進行一番解讀與測試了。在使用Nutch之前,當然
是需要先對其進行安裝了。用搜索引擎查找了一下相關內容,發現大部分關於Nutch如何安裝的文章都是基於Linux的,而基於Windows安裝的文章
雖有,但非常簡略。由於運行Nutch自帶的腳本命令需要Linux的環境,所以必須首先安裝Cygwin來模擬這種環境,而Cygwin本身的安裝與使
用也不是一件簡單的事。下面,就讓筆者對Nutch在Windows系統中的安裝進行一番細解吧!
1、安裝Cygwin
首先,我們去
http://www.cygwin.com/
下載到Cygwin軟件的ISO文件,用Daemon軟件將其設爲虛擬光驅後,雙擊其中的Setup文件,出現程序安裝的嚮導界面(如圖1所示)。
點擊“下一步”後,安裝嚮導要求選擇Cygwin的安裝方式,如圖2所示:
圖示中共有三種安裝方式:
(1)Install from Internet:從Internet上下載並安裝軟件;
(2)Download Without Installing:從Internet上下載安裝的文件,但暫時不安裝;
(3)Install from Local Directory:從本地含有安裝文件的目錄進行安裝。
我們選擇第三項“Install from Local Directory”後,點擊“下一步”,如圖3所示:
安裝嚮導要求選擇Cygwin的安裝路徑,我們可以在“Root Directory”文本框中更改安裝路徑,點擊“下一步”,如圖4所示:
安裝嚮導要求選擇Cygwin安裝文件所在的本地存儲路徑,可以在“Local Package Directory”中設置,點擊“下一步”,如圖5所示:
安裝嚮導顯示出所要安裝的內容列表,用戶可以根據自己的實際需要來決定安裝哪些程序。點擊循環箭頭圖標後面的文字,可以更改安裝的方式,常用的方式有
Default(表示只安裝缺省的安裝項)、Install(表示安裝全部程序,空間要求較大)、Reinstall(表示重新安裝程序)。推薦選擇
“Install”方式,一步到位,以免後擾,不過用戶應保證至少有2G以上的空間可供使用。點擊“下一步”後,就開始正式的安裝了(如圖6所示)。
最後出現如圖7所示的窗口,點擊“完成”後,Cygwin安裝完畢。
至此,筆者還要對Cygwin再多說幾句。Cygwin是一個在Windows平臺上模擬運行Unix的環境,用戶可以通過它來熟悉與學習Unix系統的操作。對於Unix系統還不甚熟悉的讀者可以參閱筆者之前寫作的《Unix操作系統的入門與基礎
》、《Unix的輕巧“約取而實得”
》系列文章,下文中對涉及使用到的Unix命令將不再給予詳細解釋。
2、安裝Nutch
去
http://apache.etoak.com/lucene/nutch/
下載到Nutch的最新版本,將其解壓到指定目錄中,如筆者是將其解壓到F:\nutch-1.0中。
3、測試Nutch命令
在運行Nutch的腳本命令前,需要設置一些環境變量。Cygwin提供了一個名爲cygwin.bat的文件,通過它可以自動完成必需環境變量的設
置。該文件可在cygwin所在的根目錄下找到,感興趣的讀者還可通過UltraEdit等編輯器打開該文件一查究竟。其實Cygwin安裝完成之後,會
在Windows系統桌面生成一圖標,如圖8所示:
此圖標就是cygwin根目錄下cygwin.bat文件的快捷方式,雙擊此圖標將打開一類似DOS窗口。由於先前筆者將Nutch的壓縮包解壓至
I:\nutch-0.7.1中,故在此命令窗口中輸入命令“cd
/cygdrive/i/nutch-0.7.1”,讀者可根據自己的安裝路徑進行相應的修改,然後使用命令“ls
-l”可查看nutch-0.7.1中的所有子目錄及文件信息。執行命令“bin/nutch”,如果讀者能看到如圖9所示的提示,那恭喜你,Nutch
在Windows系統中的安裝已經大功告成了!
4、抓取網站內容前的準備工作
1)把下載後的nutch-0.7.2.tar.gz解壓縮到你的指定目錄下,我是放在D:\jsp\sousuo\nutch目錄。建立一個文本文件,
內容是你要抓取的網站地址,我的內容是http://www.angao.com,然後保存到nutch的安裝目錄下。文件名取爲urls.txt。
2)打開Nutch安裝目錄下,修改conf子目錄下的crawl-urlfilter.txt文件,在最下面部分改爲
# accept hosts in MY.DOMAIN.NAME
#+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
+^http://www.angao.com/ ##這裏改爲你要抓取的網站地址,其實這裏是設置一個##
##取過濾器,用來設置網站的哪部分內容是你想要抓取的##
# skip everything else
修改好後,保存。
3),在你的nutch安裝目錄下建立一個crawled子目錄,用來存放網站抓取後的內容及索引,目錄名是能任意的。
5、運行Crawl命令抓取網站內容
雙擊桌面cygwin圖標,打開命令窗口。輸入
cd /cygdriver/d/jsp/sousuo/nutch 回車,
此時目錄轉到d:\jsp\sousuo\nutch下,這也是我的nutch安裝目錄,如果你的nutch安裝在其他目錄,則命令cd
/cygdriver/d/jsp/sousuo/nutch中的d/jsp/sousuo/nutch部分改爲你的nutch安裝路徑即可。
然後再輸入
bin/nutch crawl urls.txt -dir crawled -depth 3 -threads 4 >& crawl.log
稍等幾分鐘,程式抓取過程結束,在你的crawled子目錄下,將會看到抓取的內容。
下面解釋下該命令:
crawl 命令有幾個參數,他們是:
-dir 指定抓取後內容及索引的存放目錄
-depth 指定網站抓取的層數
-delay 指定連接目標網站延遲時間
-threads 指定程式運行的線程數,以提高抓取速度。
在命令bin/nutch crawl urls.txt ?dir crawled ?depth 3 ?threads 4 >& crawl.log中
urls.txt是開頭建立好的,內容是目錄網址,>&crawl.log是指定記錄文件,在抓取過程中的錯誤及其他內容都會記在此
文件中。bin/nutch crawl部分是運行nutch安裝目錄下的bin子目錄下的nutch腳本 crawl是命令名。
6、使用Tomcat進行搜索測試
把nutch安裝目錄下的nutch-0.7.2.war文件拷到Tomcat的webapps目錄下。當war展開後,改名爲nutch。修改webapps\nutch\WEB-INF\classes目錄下的nutch-site.xml文件,改成如下內容
searcher.dir
D:\jsp\sousuo\nutch\crawled
在這裏value標籤就是指定你搜索的目錄,這個目錄,也就是開頭你抓取後存放抓取內容及索引的目錄。D:\jsp\sousuo\nutch\crawled部分,你能自由修改。
接下來
修改tomcat\conf下的server.xml文件,將其中的Connector部分改成如下形式即可:
這裏添加了URIEncoding="UTF-8" useBodyEncodingForURI="true"語句,目的是爲了解決漢字編碼問題,以免在進行中文搜索時,出現亂碼。
最後能啓動tomcat,在IE地址欄中輸入
http://localhost/nutch
, 即可,出現nutch的搜索界面,你目前馬上就能開始搜索了