东北大学计算机应用技术研究所Web信息处理小组

urrr... These guys do research ?!

搭建基于Nutch1.0的搜索引擎说明文档

 

一、简介

  Nutch是一个开源的Web搜索引擎。

       主要分为两个部分:爬虫crawler和查询searcher,两者之间的接口是索引。

 

二、需要的软件

  • JDK1.6

  • Tomcat6.0

  • cygwin

  • nutch1.0

三、安装与配置

1. JDK

  • 下载地址:http://www.sun.com

  • 安装目录:C:\Java\jdk1.6.0_14

  • 修改环境变量:

JAVA_HOME= C:\Java\jdk1.6.0_14

CLASSPATH= C:\Java\jdk1.6.0_14\lib\dt.jar; C:\Java\jdk1.6.0_14\lib\tool.jar

PATH= %JAVA_HOME%\bin

  • 测试:

Java -version

2. Tomcat6.0

  • 下载地址:

http://tomcat.apache.org/download-60.cgi?Preferred=http%3A%2F%2Fapache.freelamp.com

  • 安装目录:C:\tomcat6

  • 安装测试:

                a)  启动tomcat:在DOS下,cd C:\tomcat6\bin\startup.bat

                b)  浏览器地址栏输入:

             http://localhost:8080/

                   出现tomcat主页则成功

      • 更改C:\tomcat6\conf \tomcat-users.xml内容

      <tomcat-users>

        <role rolename="manager"/>

        <user username="tomcat" password="tomcat" roles="manager"/>

      </tomcat-users>

      3. Cygwin

      • 下载地址:

      http://www.cygwin.cn/

      • 使用原因:

                 运行Nutch自带的脚本命令需要Linux的环境,使用cygwin来模拟该环境。cygwin是在windows平台上运行的unix模拟环境。

            • 安装目录:C:\cygwin

                           注意:在选择下载站点需要输入如下网址,并在最后选择本地磁盘安装:

                                  http://www.cygwin.cn/pub/

              • 测试:

              进入cygwin

              4. Nutch

              • 下载地址:

              http://www.apache.org/dyn/closer.cgi/lucene/nutch/

              • 版本:nutch-1.0

              • 解压后到:C:\nutch-1.0

              • 设置Nutch的环境变量:

              NUTCH_JAVA_HOME= C:\Java\jdk1.6.0_14

              • 修改环境变量PATH :

                PATH= %JAVA_HOME%\bin; % NUTCH_JAVA_HOME %\bin

                • 在C:\nutch-1.0下建立url.txt文件来制定爬去列表

                      在txt文件中写入需要爬取的网站地址http://dblp.lab/

                      • 测试:

                            开启Cygwin

                          cd cygdriver/c/nutch-1.0

                          bin/nutch

                          若出现若干命令,则说明Nutch配置成功

                          四、抓取网页数据

                          1. 指定爬虫规则

                          • 修改Nutch-1.0/conf/crawl-urlfilter.txt

                          # accept hosts in MY.DOMAIN.NAME

                          +^http://dblp.lab/

                          • 修改Nutch-1.0/conf/nutch-site.xml

                          <configuration>

                            <property>

                            <name>http.agent.name</name>

                            <value>my nutch agent</value>

                            </property>

                            <property>

                            <name>http.agent.version</name>

                            <value>1.0</value>

                            </property>

                          </configuration>

                          2. 开始爬取

                          3. 打开Cygwin

                          4. 在命令行输入

                          cd /cygdrive/c/nutch-1.0

                          5. 执行命令

                          Bin/nutch crawl url.txt -dir crawled -depth 3 - threads 4 >&crawl.log

                             其中:dir是指定爬取内容所存放的目录,depth表示以要爬取网站顶级网址为起点的爬行深度,threads指定并发的线程数

                          6. 爬取中......(采集网页并建立索引)

                          7. 结束后在Nutch目录下产生爬取内容的文件夹crawled和日志文件夹logs

                          五、部署Web前端

                          1. 将nutch-1.0.war拷贝到webapps目录下

                          2. 通过浏览器访问如下网址,war包会自解压

                          http://localhost:8080/nutch-1.0/

                          3. 修改nutch的web配置

                                 更改c:\tomcat6\webapps\nutch-1.0\WEB-INF\classes\nutch-site.xml ,将内容更改为索引生成的目录

                          <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="nutch-conf.xsl"?>

                          <!-- Put site-specific property overrides in this file. -->

                          <nutch-conf>

                          <property>

                            <name>searcher.dir</name>

                            <value>C:\nutch-1.0\crawled</value>

                          </property>

                          </nutch-conf>

                          六、解决中文乱码问题

                                   修改文件C:\tomcat6\conf\server.xml

                          <Connector port="8080" maxThreads="150" minSpareThreads="25"

                          maxSpareThreads="75" enableLookups="false" redirectPort="8443"

                          acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"

                          URIEncoding="UTF-8" useBodyEncodingForURI="true" protocol="HTTP/1.1" />

                           

                          七、搭建完成

                          1. 启动Tomcat

                          2. 通过浏览器访问

                          http://localhost:8080/nutch-1.0/

                          (by 王海明)

                          posted on 2009-06-04 11:21 wipt 阅读(2852) 评论(8)  编辑  收藏

                          Feedback

                          # re: 搭建基于Nutch1.0的搜索引擎说明文档 2009-09-25 12:00 sfd

                          LZ,你自己试过吗?  回复  更多评论   

                          # re: 搭建基于Nutch1.0的搜索引擎说明文档 2009-09-25 15:02 wipt

                          @sfd
                          经过测试,没有问题。但是只能保证在特定的环境下没有问题,不保证对应所有版本的操作系统,运行环境以及软件下都没有问题。  回复  更多评论   

                          # re: 搭建基于Nutch1.0的搜索引擎说明文档 2009-11-03 14:52 方红

                          nutch1.0 分布式爬行能在window xp 上运行吗  回复  更多评论   

                          # re: 搭建基于Nutch1.0的搜索引擎说明文档 2009-11-03 14:59 wipt

                          @方红
                          我们的系统运行在windows server 2003上。在调试阶段运行于windows xp下。但是不清楚您所说的分布式爬行是不是nutch的默认配置。  回复  更多评论   

                          # re: 搭建基于Nutch1.0的搜索引擎说明文档 2010-02-10 09:36 优仁

                          设置Nutch的环境变量:

                          NUTCH_JAVA_HOME= C:\Java\jdk1.6.0_14

                          请问这个地方是不是写错了呢
                          是不是应该是:NUTCH_JAVA_HOME= C:\nutch-1.0  回复  更多评论   

                          # re: 搭建基于Nutch1.0的搜索引擎说明文档[未登录] 2010-11-23 22:44 老谢

                          环境:windows+cygwin(用于模拟unix系统)+nutch1.0

                          要用于生产环境。


                          当我抓取完网页以后,启动tomcat,输入关键字搜索网页后,那么我再次运行nutch抓取网页的时候就会报错!
                          当我把tomcat关闭以后抓取网页就没有任何问题。后来我仔细查了一下是因为tomcat启动后占用了nutch的索引文件而没有释放资源造成的。 也就是说在tomcat启动的时候,nutch是不能抓取网站合并索引的。

                          在生产环境下,要求每一个小时就要增量抓取一次,我总不能把tomcat关了吧。

                          在生产环境下,这个问题应该怎么解决呢?
                            回复  更多评论   

                          # re: 搭建基于Nutch1.0的搜索引擎说明文档[未登录] 2010-11-23 22:45 老谢

                          环境:windows+cygwin(用于模拟unix系统)+nutch1.0

                          要用于生产环境。


                          当我抓取完网页以后,启动tomcat,输入关键字搜索网页后,那么我再次运行nutch抓取网页的时候就会报错!
                          当我把tomcat关闭以后抓取网页就没有任何问题。后来我仔细查了一下是因为tomcat启动后占用了nutch的索引文件而没有释放资源造成的。 也就是说在tomcat启动的时候,nutch是不能抓取网站合并索引的。

                          在生产环境下,要求每一个小时就要增量抓取一次,我总不能把tomcat关了吧。
                          请回到我的邮箱里吧:xieyunchaobest@gmail.com

                          在生产环境下,这个问题应该怎么解决呢?
                            回复  更多评论   

                          # re: 搭建基于Nutch1.0的搜索引擎说明文档[未登录] 2010-11-23 22:48 wipt

                          @老谢

                          不好意思,负责这个部分的同学已经毕业了  回复  更多评论   


                          只有注册用户登录后才能发表评论。


                          网站导航: