Linux下用nutch搭建搜索引擎
注:文档仅供参考,系统或版本不同可能有差异
在开始前应该先安装配置好jdk和tomcat。Jdk和Tomcat的安装配置请参看《linux下安装jdk》和《linux下安装Tomcat》。
下载Tomcat。到
http://lucene.apache.org/nutch/ 下载nutch-0.8.tar.gz
注意:最好到China的镜像去下载,如果无法下载可以到Taiwan镜像下载(这里对他们没标Taiwan of China又不满了一次)。这个网址能找到很多你需要的东西,建议到处看看。
2、设定系统环境变量NUTCH_JAVA_HOME了。
#vi /etc/profile
加入下面内容:
NUTCH_JAVA_HOME="/usr/java/jdk"
EXPORT最后加入 NUTCH_JAVA_HOME
3、解压缩安装:
#tar zxvf Nutch-0.8.tar.gz
#mv Nutch-0.8 /usr/local/nutch
测试Nutch
#/usr/local/nutch/bin/nutch
出现几行提示信息,说明安装成功。
另外得修改一下这个文件,nutch-default.xml里http.agent.name属性默认为空,必须在nutch-site.xml中为该属性设值,否则会出错。也就是必须为你的爬虫起个名字。
4、.抓取页面
我只做了内部网(Intranet)的测试
在 nutch 目录中创建一个包含该网站顶级网址的目录urls ,在目录中再建个文件(自己起个名字吧我还用的urls)包含如下内容:
http://www.xxx.edu.cn
#cd /usr/local/nutch/urls
#touch urls
#vi urls
加入
http://www.xxx.edu.cn 保存退出
Nutch爬虫使用一个Filter来识别URL是否需要抓取。我们可以通过conf/crawl-urlfilter.txt文件的修改来实现这个Filter,将文件中的
+^
http://( [a-z0-9]*\.)*MY.DOMAIN.NAME/
内容修改为
+^
http://( [a-z0-9]*\.)* xxx.edu.cn/
保存退出以后开始抓取了!
#bin/nutch crawl urls -dir xxxcrawltest -depth 4 -threads 4 >& crawl.log
在这个爬行命令中,我们设置抓取结果存储于xxxcrawltest文件夹中,抓取日志为crawl.log,另外限定了抓取深度为3,也就是告诉Crawler需要执行4次“产生/抓取/更新”循环就可以抓取完毕了。由于只是为了实验,深度为4就可以了(这还爬了半个小时左右呢),但是在实际运行时需要根据实际情况来进行设置。
5、之后配置 Tomcat (我的 tomcat 安装在 /usr/local/jakarta-tomcat-5.0.28) ,
# rm -rf /usr/local/ jakarta-tomcat-5.0.28/webapps/ROOT*
# cp nutch-0.8.war /usr/local/ jakarta-tomcat-5.0.28/webapps/ROOT.war
# cd /usr/local/jakarta-tomcat-5.0.28/webapps/
# jar xvf ROOT.war
# ../bin/catalina.sh start
出现了页面!不过测试发现不能正常搜索页面,查日志文件发现以下错误:
500 Servlet Exception
java.lang.NullPointerException
at net.nutch.searcher.NutchBean.init(NutchBean.java:82)
是segment文件夹位置的问题。默认的是./segment所以我们应该修改为实际的地址。我的是/usr/local/nutch/guxcrawltest/segment
解决方法是这样的:
找到tomcat的ROOT目录下的一个文件:nutch-site.xml
#vi /usr/local/ jakarta-tomcat-5.0.28/webapps/ROOT/WEB-INF/classes/nutch-site.xml
修改成下面样式:在<configtion>和</configtion>之间添加
<property>
<name>searcher.dir</name>
<value>/usr/local/nutch/xxxcrawltest</value>
<description>My path to nutch's searcher dir.</description>
</property>
然后重启TOMCAT,终于可以搜索了。
注:文档仅供参考,系统或版本不同可能有差异
在开始前应该先安装配置好jdk和tomcat。Jdk和Tomcat的安装配置请参看《linux下安装jdk》和《linux下安装Tomcat》。
下载Tomcat。到
![::URL::](http://www.blogcn.com/images/aurl.gif)
注意:最好到China的镜像去下载,如果无法下载可以到Taiwan镜像下载(这里对他们没标Taiwan of China又不满了一次)。这个网址能找到很多你需要的东西,建议到处看看。
2、设定系统环境变量NUTCH_JAVA_HOME了。
#vi /etc/profile
加入下面内容:
NUTCH_JAVA_HOME="/usr/java/jdk"
EXPORT最后加入 NUTCH_JAVA_HOME
3、解压缩安装:
#tar zxvf Nutch-0.8.tar.gz
#mv Nutch-0.8 /usr/local/nutch
测试Nutch
#/usr/local/nutch/bin/nutch
出现几行提示信息,说明安装成功。
另外得修改一下这个文件,nutch-default.xml里http.agent.name属性默认为空,必须在nutch-site.xml中为该属性设值,否则会出错。也就是必须为你的爬虫起个名字。
4、.抓取页面
我只做了内部网(Intranet)的测试
在 nutch 目录中创建一个包含该网站顶级网址的目录urls ,在目录中再建个文件(自己起个名字吧我还用的urls)包含如下内容:
![::URL::](http://www.blogcn.com/images/aurl.gif)
#cd /usr/local/nutch/urls
#touch urls
#vi urls
加入
![::URL::](http://www.blogcn.com/images/aurl.gif)
Nutch爬虫使用一个Filter来识别URL是否需要抓取。我们可以通过conf/crawl-urlfilter.txt文件的修改来实现这个Filter,将文件中的
+^
![::URL::](http://www.blogcn.com/images/aurl.gif)
内容修改为
+^
![::URL::](http://www.blogcn.com/images/aurl.gif)
保存退出以后开始抓取了!
#bin/nutch crawl urls -dir xxxcrawltest -depth 4 -threads 4 >& crawl.log
在这个爬行命令中,我们设置抓取结果存储于xxxcrawltest文件夹中,抓取日志为crawl.log,另外限定了抓取深度为3,也就是告诉Crawler需要执行4次“产生/抓取/更新”循环就可以抓取完毕了。由于只是为了实验,深度为4就可以了(这还爬了半个小时左右呢),但是在实际运行时需要根据实际情况来进行设置。
5、之后配置 Tomcat (我的 tomcat 安装在 /usr/local/jakarta-tomcat-5.0.28) ,
# rm -rf /usr/local/ jakarta-tomcat-5.0.28/webapps/ROOT*
# cp nutch-0.8.war /usr/local/ jakarta-tomcat-5.0.28/webapps/ROOT.war
# cd /usr/local/jakarta-tomcat-5.0.28/webapps/
# jar xvf ROOT.war
# ../bin/catalina.sh start
出现了页面!不过测试发现不能正常搜索页面,查日志文件发现以下错误:
500 Servlet Exception
java.lang.NullPointerException
at net.nutch.searcher.NutchBean.init(NutchBean.java:82)
是segment文件夹位置的问题。默认的是./segment所以我们应该修改为实际的地址。我的是/usr/local/nutch/guxcrawltest/segment
解决方法是这样的:
找到tomcat的ROOT目录下的一个文件:nutch-site.xml
#vi /usr/local/ jakarta-tomcat-5.0.28/webapps/ROOT/WEB-INF/classes/nutch-site.xml
修改成下面样式:在<configtion>和</configtion>之间添加
<property>
<name>searcher.dir</name>
<value>/usr/local/nutch/xxxcrawltest</value>
<description>My path to nutch's searcher dir.</description>
</property>
然后重启TOMCAT,终于可以搜索了。