試用Nutch (1)

來源:互聯網
上載者:User
 

                                                        試用nutch

  今天看網站的log,發現有幾個搜尋nutch的反向連結過來。其實我只是在java編碼規範一文提了一下這個詞,這樣的結果肯定讓前來的朋友倍感失望。
  下面將我對nutch的一些試用公布一下,供有興趣的朋友參閱。需要說明的是,nutch現在沒有穩定的release,還在不斷地根據反饋進行修改,而且目前還不支援漢語的檢索。總而言之,現在這個版本對中國使用者而言還不實用。我想,這也應當是一直研究並關注nutch的車東沒有寫筆記的原因吧。
  前幾天和車東在msn上談起,覺得目前搭建網站時實現本站檢索的最好的方案,是採用車東基於lucene的開源項目web lucene的軟體包。而nutch似乎比較適合於建立垂直搜尋引擎網站,至少目前如此,我認為。

1、下載安裝

  不知為什麼,這個網站不能直接存取。我用的是2003-09-18的打包(有興趣的朋友可從此下載),在Red Hat Linux 8.0+JRE 1.4.1+Tomcat 4.1試用通過。tar zxvf nutch-2003-09-18.tar.gz
cd nutch-2003-09-18 <----命令執行完後所在目錄稱之為$NUTCH_HOME,僅供描述之用。
ant
ant package
bin/nutch <---如果一切正常,此時應出現“Usage: nutch COMMAND”等字樣

2、試運行指令碼說明

  這個指令碼是cutting在tutorial中說明的整理。指令碼中的命令最好通過指令碼依次運行,$s1、$s2和$s3三個變數的賦值運算式是一樣的,但三個值不相同,這依賴於啟動並執行上下文。我第一次運行時,就犯了弱智的錯誤,拆開運行,結果出錯。:)

初始準備
mkdir db 建立目錄存放web database
mkdir segments
bin/nutch admin db -create 建一個新的空的資料庫
第一輪抓取
bin/nutch inject db -dmozfile content.rdf.u8 -subset 3000 從DMOZ列表中取得URL並加入資料庫
bin/nutch generate db segments 根據資料庫內容,產生一個抓取列表(fetchlist)
s1=`ls -d segments/2* | tail -1` 剛才產生的抓取列表放在最後一個目錄中,取其名
bin/nutch fetch $s1 利用機器人抓頁面
bin/nutch updatedb db $s1 利用抓取結果更新資料庫
第二輪抓取
bin/nutch analyze db 5 迭代5次分析頁面的連結
bin/nutch generate db segments -topN 1000 將排行前1000個URL產生新的抓取列表
s2=`ls -d segments/2* | tail -1` 執行抓取、更新、并迭代2次分析連結
bin/nutch fetch $s2
bin/nutch updatedb db $s2
第三輪抓取
bin/nutch analyze db 2
bin/nutch generate db segments -topN 1000
s3=`ls -d segments/2* | tail -1`
bin/nutch fetch $s3
bin/nutch updatedb db $s3
bin/nutch analyze db 2 (為下一次做準備?)
索引並去重
bin/nutch index $s1
bin/nutch index $s2
bin/nutch index $s3
bin/nutch dedup segments dedup.tmp
重啟tomcat
catalina.sh start 在./segments所在的目錄中啟動

3、指令碼的改動與下載

  DMOZ的檔案太大了,下載不易,如果僅為實驗,似乎也沒必要從那裡選URL。我改了一下指令碼,在$NUTCH_HOME目錄下建立一個urls.txt檔案,裡面一行一個打算搜尋的網站的URL,nutch將從這個urls.txt中取網站的URL。
  指令碼可以下載以參考,運行指令碼放在$NUTCH_HOME目錄下,參考下列命令運行:

sh all.sh

4、提供web檢索

  前面忙活了半天,只是把網頁抓回來、解析了網頁並做作了索引。下面說明一下如何利用nutch自己帶的jsp程式提供檢索服務。cd $TOMCATHOME/webapps
mv ROOT ROOTOLD
mkdir ROOT
cd ROOT
cp $NUTCH_HOME/nutch-2003-09-18.war ./ROOT.war
jar xvf ROOT.war
cd $NUTCH_HOME
$TOMCAT_HOME/bin/shutdown.sh
$TOMCAT_HOME/bin/catalina.sh start

  此時,如果不出意外,應可以訪問了。
  我的試用URL是http://cdls.nstl.gov.cn/se/,(其中我把nutch改動了一下,沒把它放在ROOT目錄下),供參考。此時,不要檢索漢字,只能檢索英文,如hedong 或lucene什麼的。

  試用倉促,難免有錯,歡迎朋友進行交流。

參考文獻:
基於Lucene/XML的站內全文檢索索引解決方案
http://www.chedong.com/tech/weblucene.html

Lucene學習筆記(2)
http://hedong.3322.org/archives/000208.html
running.sh的指令碼
---------------------------------------
#!/bin/bash

mkdir db
mkdir segments
bin/nutch admin db -create
bin/nutch inject db -urlfile urls.txt
bin/nutch generate db segments
s1=`ls -d segments/2* | tail -1 `
echo $s1
bin/nutch fetch $s1
bin/nutch updatedb db $s1
bin/nutch analyze db 5

bin/nutch generate db segments -topN 100
s2=`ls -d segments/2* | tail -1`
echo $s2
bin/nutch fetch $s2
bin/nutch updatedb db $s2
bin/nutch analyze db 2

bin/nutch generate db segments -topN 100
s3=`ls -d segments/2* | tail -1`
echo $s3
bin/nutch fetch $s3
bin/nutch updatedb db $s3
bin/nutch analyze db 2

bin/nutch index $s1
bin/nutch index $s2
bin/nutch index $s3

bin/nutch dedup segments dedup.tmp
------------------------------

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.