博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Using Nutch 0.8.1 for Intranet Crawling and Searching
阅读量:4136 次
发布时间:2019-05-25

本文共 2704 字,大约阅读时间需要 9 分钟。

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

约定 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 试试搜索吧。 

转载地址:http://fjavi.baihongyu.com/

你可能感兴趣的文章
你准备写代码到多少岁?程序员们是这么回答的!
查看>>
码农:和产品对一天需求,产品经理的需求是对完了,可我代码呢?
查看>>
程序员过年回家该怎么给亲戚朋友解释自己的职业?
查看>>
技术架构师的日常工作是什么?网友:搭框架,写公共方法?
查看>>
第四章 微信飞机大战
查看>>
九度:题目1008:最短路径问题
查看>>
九度Online Judge
查看>>
九度:题目1027:欧拉回路
查看>>
九度:题目1012:畅通工程
查看>>
九度:题目1017:还是畅通工程
查看>>
九度:题目1034:寻找大富翁
查看>>
第六章 背包问题——01背包
查看>>
第七章 背包问题——完全背包
查看>>
51nod 分类
查看>>
1136 . 欧拉函数
查看>>
面试题:强制类型转换
查看>>
Decorator模式
查看>>
Template模式
查看>>
State模式
查看>>
Observer模式
查看>>