Using Nutch 0.8.1 for Intranet Crawling and Searching

本文尝试使用 Nutch 0.8.1 来为几个指定的网站建立全文索引,且不使用 Hadoop 提供的分布式能力,只是简单地在一台单独的机器上完成索引工作。如果需要使用 Nutch 的分布式能力,需要熟悉一下 Hadoop.

约定 Nutch 部署后的目录结构如下:
/home/hys/nutch-deployed
    /nutch-0.8.1
        (Nutch 0.8.1 installation goes here)
    /nutch-0.8.1-web
        (Nutch web module for searching goes here)

1. Setting environment variable(s)

$ export NUTCH_JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.08
$ export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.08
$ export NUTCH_HOME=/home/hys/nutch-deployed/nutch-0.8.1

注:环境变量 $NUTCH_HOME 并非必须的,我增加此变量只是为了行文方便。

2. Basic configurations

解开 Nutch 的下载包后在 conf 目录下可以发现很多配置文件,就本文简单的应用来说,只有 nutch-default.xmlnutch-site.xml 需要关注。在这里, nutch-default.xml 是各项默认值的设定,非常不推荐直接修改该文件。如果有某些项需要重新设置,那么就在 nutch-site.xml 重新设置它,对于相同项, nutch-site.xml 会覆盖 nutch-default.xml 。因为 nutch-site.xml 是 final resource ,而 nutch-default.xml 是 default resource 。 Nutch 是基于 Hadoop 框架构建的,所以它也继承了 Hadoop 的这种配置方法。

$ cd $NUTCH_HOME
$ vi conf/nutch-site.xml

以下是我的配置清单:

<property>
  <name>http.agent.name</name>
  <value>NovaCrawler</value>
</property>

<property>
  <name>http.agent.description</name>
  <value>A crawler from Tinova for testing purpose</value>
</property>

<property>
  <name>http.agent.url</name>
  <value>http://huang.yunsong.net</value>
</property>

<property>
  <name>http.agent.email</name>
  <value>huangyunsong at gmail dot com</value>
</property>

<property>
  <name>http.agent.version</name>
  <value>1.0</value>
</property>

4. Specifying root URL(s) for crawling

在 $NUTCH_HOME 下创建一个文件夹,该文件夹中包含一些文本文件,每个文本文件都包含一个爬行起始地址。这里的文件夹名、文件名皆任意。

$ mkdir urls
$ cd urls
$ vi hysblog

http://huang.yunsong.net

$ vi hlyy

http://www.openow.net/home.nv

5. Setting filters for crawling

配置文件是 $NUTCH_HOME/conf/crawl-urlfilter.txt ,在该文件中分别使用 +/- 符号来表示 accept/skip ,文件中有详细的注释说明。对于本文来说,仅仅需要接受来自 www.openow.net 和 huang.yunsong.net 的页面,如下:

+^http://www.openow.net/
+^http://huang.yunsong.net/

6. Crawling

Nutch 提供了一个很好的脚本 nutch ,它的 crawl 指令就是用来执行爬行的。

$ bin/nutch crawl urls -dir crawl

以上指令中:
urls 就是在第4步中创建的用来包含爬行起点的目录
-dir crawl (可选)将会把爬行结果放到 $NUTCH_HOME/crawl/ 目录中。注,这个目录必须不存在。

还有三个可选参数:
-depth 3 (可选)指定爬行深度为3。
-topN 50 (可选)指定在每一级上最多攫取的页面数为50
-threads 2 (可选)指定并发线程数为2

7. Recrawling (Updating index library)

// TODO

8. Searching

Nutch 默认提供了一个 web module for searching ,虽然很简陋,不过能用、能说明问题。当然,可以自己重新开发一个 web module 来构建 web 搜索接口。

nutch-0.8.1.war 文件解压到目录 nutch-0.8.1-web ,然后在 tomcat 的配置目录 conf/Catalina/localhost 中增加一个配置文件 nutch.xml ,其内容为:

<Context docBase="/home/hys/nutch-deployed/nutch-0.8.1-web" reloadable="true" />

启动 tomcat 即可。注意:
1,因为默认情况下,该 Nutch web module 会认为索引库位于 ./crawl ,所以启动 tomcat 时需要切换当前目录到 $NUTCH_HOME
2,别忘记在 server.xml 的 Connector 定义部分加上 URIEncoding="UTF-8"

$ cd $NUTCH_HOME
$ /opt/tomcat-5.5.20/bin/startup.sh

好了,打开 http://localhost:8080/nutch 试试搜索吧。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值