最近在搭建nutch搜索平台,期间遇到许多问题,在此与各位分享。由于具体安装过程网上已经有详细的解释,再次不必多言,只简单提一下大致过程,以期各位有宏观上的认识。
nutch0.8安装:http://blogger.org.cn/blog/more.asp?name=lhwork&id=19244
nutch0.9安装:http://www.cnblogs.com/dev2dev/archive/2006/02/01/324638.html
nutch0.9使用:http://www.cnblogs.com/dev2dev/articles/326394.html
安装过程概览如下,我会在每个步骤下将可能出现的问题做自己的说明。
[ 安装cygwin ]
为什么需要安装cygwin 呢?因为nutch中网页“爬行”与索引的建立都使用unix的shell命令(请看nutch主目录下的bin目录),而大多数的朋友都是使用windows,所以我们需要在window上来模拟unix环境,cygwin正好完成了这个工作。它使得我们可以在windows平台上使用shell命令。
什么是cygwin:http://baike.baidu.com/view/3968.html?wtp=tt
安装完成后,点击cygwin主目录下的cygwin.bat可以自动完成必须的环境变量的配置,不用我们动手了。
[安装nutch ]
虽然说是安装nutch,实际上nutch并不需要什么安装,我们将它下来下来以后解压就可以了。
然后在Windows系统的环境变量设置中,增加NUTCH_JAVA_HOME变量,并将其值设为JDK的安装目录。
[对具体网站进行爬行和索引]
在这里我们需要对几个文件进行修改,以使得我们的程序能够对具体的网站进行爬行与建立索引。下面以对中山大学的站点进行处理为例。
中山大学的主页为:http://www.sysu.edu.cn
1.对conf/crawl-urlfilter.txt文件的修改。
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
改为:
# accept hosts in MY.DOMAIN.NAME
+^http://www.sysu.edu.cn
说明:+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/这是一个用正则表达式,匹配允许爬行的网页。上面我们将其设定为唯一的具体网页了。实际上,改成+^http://([a-z0-9]*\.)*就能匹配所有的网页了。
2.在nutch主目录下(其它位置也可以,不过在运行命令时候需要指定到具体的位置)url.txt。这是指在nutch0.9下面,如果是在nutch0.8下面,需要建立一个urls的文件夹,然后在下面家里url.txt文件。
在url.txt中输入你要爬行和建立索引的网址。
3.虽然很少有文章提到,但是实际上许多网页对爬虫进行了一定的限制,只有遵循一定协议的爬虫才能进行爬行,因此需要配置爬行的协议。所以需要对config\nutch-site.xml进行修改,修改后的类容如下。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>http.agent.name</name>
<value>www.sysu.edu.cn</value>
<description>My Search Engine</description>
</property>
<property>
<name>http.agent.description</name>
<value></value>
<description>Further description of our bot- this text is used in
the User-Agent header. It appears in parenthesis after the agent name.
</description>
</property>
<property>
<name>http.agent.url</name>
<value></value>
<description>A URL to advertise in the User-Agent header. This will
appear in parenthesis after the agent name. Custom dictates that this
should be a URL of a page explaining the purpose and behavior of this
crawler.
</description>
</property>
<property>
<name>http.agent.email</name>
<value></value>
<description>An email address to advertise in the HTTP 'From' request
header and User-Agent header. A good practice is to mangle this
address (e.g. 'info at example dot com') to avoid spamming.
</description>
</property>
</configuration>
注意其中的红色部分,虽然网上资料都说可以不用修改,但是如果出现意味,不妨这里找原因。
[如何进行索引建立]
在完成以上过程以后就可以建立索引了,点击左面上的cygwin的图标,进入命令输入界面(有点像DOS),
输入:cd /cygdrive/e/nutch-0.9
说明:e表示e盘。
输入:bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4 >& crawl.log
说明:url.txt为你上面建立的url 文件,如果是nutch0.8那,应该是urls.
crawled为你的索引目录。
3代表爬行深度。
4代表线程数。
crawl.log是日志文件。
待执行结束后,我们查看日志文件,最后一行出现finished: crawl字样代表索引建立成功。接下来就可以进行查询了。
[如何进行搜索]
将nutch目录下的.war文件拷贝到tomcat目录下(如果你还没有安装tomcat请先安装),然后改名为nutch.war。
打开ROOT\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>I:/nutch-0.7.1/crawled</value>
</property>
</nutch-conf>
其中的“<value>I:/nutch-0.7.1/crawled</value>”部分,应根据自己的设置进行相应修改。
在浏览器中输入http://localhost:8080/nutch即可进入查询主页面进行查询了。
[查询页面乱码问题]
这是tomcat的问题,对Tomcat 的 server.xml 文件(在conf文件夹下)的 connnector:
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8" useBodyEncodingForURI="true" />
其中 URIEncoding="UTF-8" useBodyEncodingForURI="true" 是需要新增的。
[程序修改后的重组问题]
nutch能方便地根据自己的需要进行修改,例如我们要根据添加自己的分词工具,则修改相关的java文件即可,例如,我们要修添加JE分词,只需修改\src\java\org\apache\nutch\analysis下的NutchDocumentAnalyzer.java文件后重新编译即可。
那么如何重新组装呢?大家注意在nutch主目录下有一个build.xml文件,它就是重组时候所用的,不过光有它还不行,因为运行他还需要一个工具。那就是ant。
下载地址:http://ant.apache.org/
然后将下载的文件解压后设置环境变量,例如我的解压地址为E:\apache-ant\apache-ant-1.7.1。我就设置ANT_HOME为E:\apache-ant\apache-ant-1.7.1。并在path变量的后面添加%ANT_HOME%\bin。进入到命令行输入ant如果不提示无法识别命令,那么ant安装配置成功了。
从命令行进入到build.xml所在的目录,输入ant命令。即可开始重新编译,如果没有提示错误,那说明你的源码修改是正确的,将在改目录下产生一个build文件目录,进入该文件目录将nutch-0.9.job文件拷贝,返回上级目录粘贴,替换掉原来的nutch-0.9.job文件即可。
分享到:
相关推荐
NUTCH安装步骤.NUTCH安装步骤.NUTCH安装步骤.NUTCH安装步骤.NUTCH安装步骤.NUTCH安装步骤.NUTCH安装步骤.NUTCH安装步骤.NUTCH安装步骤.
nutch常见问题归总,对初学nutch的一些问题做出的整理
windows下安装nutch 各异常说明
Nutch是一个由Java实现的,刚刚诞生开放源代码(open-source)的web搜索引擎。
nutch2.2.1安装步骤,需要自己下载以下软件: apache-ant-1.10.5-bin.tar.gz apache-nutch-2.2.1-src.tar.gz apache-tomcat-8.5.39.tar.gz jdk-8u201-linux-x64.tar.gz solr-4.10.3.zip
我自己对nutch安装开发环境的一些理解,以及遇到问题的解决方法
介绍关于Nutch的安装
nutch使用&Nutch;入门教程 pdf
Linux下Nutch分布式配置 使用:分布式爬虫、索引、Nutch搜索本地数据、Nutch搜索HDFS数据。
windows下nutch的安装.pdf
好动系,我自己从网上下的,一步一步教你怎么做,很容易上手的!
Nutch在windows下的安装 JDK安装 Tomcat安装 Cygwin安装
在使用Nutch之前,当然是需要先对其进行安装了。用搜索引擎查找了一下相关内容,发现大部分关于Nutch如何安装的文章都是基于Linux的,而基于Windows安装的文章虽有,但非常简略。由于运行Nutch自带的脚本命令需要...
自己整理的亲测可用,已经安装了几遍,喜欢的可以看看
Nutch开发入门 Nutch安装和使用 Nutch二次开发 很不错
1.1 Nutch 简介 1.1.1 Nutch 的目标 1.1.2 Nutch 的优点 1.1.3 Nutch 与Lucene 关系 1.2 Nutch 安装 1.2.1 环境介绍 1.2.2 安装JDK 1.2.3 安装Tomcat 1.2.4 安装Nutch
nutch应用,nutch中文分词,nutch中文乱码
2. nutch的安装与配置.....3 2.1 JDK的安装与配置.3 2.2 nutch的安装与配置........5 2.3 tomcat的安装与配置......5 3. nutch初体验7 3.1 爬行企业内部网....7 3.1.1 配置nutch....7 3.1.2 配置tomcat..8 3.1.3 ...
nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据
解决Nutch摘要问题,跟nutch摘要相关的一些问题