学而不思则罔,思而不学则殆

有其事必有其理, 有其理必有其事

  IT博客 :: 首页 :: 联系 :: 聚合  :: 管理
  85 Posts :: 12 Stories :: 47 Comments :: 0 Trackbacks
今天看站点的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

posted on 2006-11-29 11:50 易道 阅读(308) 评论(0)  编辑 收藏 引用 所属分类: 信息检索,搜索
只有注册用户登录后才能发表评论。