`
ywy041102
  • 浏览: 8097 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

一个不错的nutch使用文档

阅读更多
一个不错的nutch使用文档2007-10-26 10:19基本上把思路理清了
一、安装nutch和配置tomcat,注意nutch0.7和0.8的区别,在这里以0.7版本为例
二、抓取网页,建立搜索
   1、假设当前目录为nutch目录,建立一个urls文件,内容就是要抓取的网站域名,如http://www.mydomain.com,可以有多个,每行写一个。在试验中发现,只有根域名有时候抓取的内容没有或很少,加入更多的详细URL效果很好,比如http: //www.mydomain.com/users,http://forum.mydomain.com/post/123,http://www.mydomain.com/articles/123 等,越详细越全面越好,我理解是不是这样的话在crawl的时候,depth的值就可以设小一些了。
   2、修改conf/crawl-urlfilter.txt,加入过滤URL的规则
   3、开始抓取:
#bin/nutch crawl urls -dir crawl.mydomain -depth 10
   4、运行Tomcat前的准备,拷贝war文件,参见《nutch研究(二)》
   5、到这里基本的搜索就可以用了
三、 索引的更新和维护
   1、写一个维护脚本,定时运行,是个好办法

   #!/bin/bash

   # Set JAVA_HOME to reflect your systems java configuration
   export JAVA_HOME=/usr/lib/j2sdk1.5-sun 

   # Start index updation,只查找最热门的前1000条记录,由此创建新的segment
   bin/nutch generate crawl.mydomain/db crawl.mydomain/segments -topN 1000
#得到最新的segment目录名
   s=`ls -d crawl.virtusa/segments/2* | tail -1`
   echo Segment is $s
   bin/nutch fetch $s
   bin/nutch updatedb crawl.mydomain /db $s
   bin/nutch analyze crawl.mydomain /db 5
   bin/nutch index $s
#删除重复记录
   bin/nutch dedup crawl.mydomain /segments crawl.mydomain/tmpfile

   # Merge segments to prevent too many open files exception in Lucene
   #合并成一个新的segment
   bin/nutch mergesegs -dir crawl.mydomain/segments -i -ds
   s=`ls -d crawl.mydomain/segments/2* | tail -1`
   echo Merged Segment is $s

   rm -rf crawl.mydomain/index
   2、以上是在urls文件内容没有变化的时候采用的办法,如果我加入的新的URL在urls文件里,那么在运行generate以前,要执行下面一命令:
#bin/nutch inject crawl.mydomain/db -urlfile urls
在generate的时候,如果不加topN参数,那么crawl只会去处理新加的或原来由于其它原因没有fetch的url或page,所以我感觉,脚本1和用2修改的脚本交替运行,会有很好的效果。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics