架设自己的搜索引擎,Nutch安装手记

 utch 是一个刚刚诞生开放源代码 (open-source) web 搜索引擎 .

尽管 Web 搜索是漫游 Internet 的基本要求 , 但是现有 web 搜索引擎的数目却在下降 . 并且这很有可能进一步演变成为一个公司垄断了几乎所有的 web 搜索为其谋取商业利益 . 这显然不利于广大 Internet 用户 .

Nutch为我们提供了 这样一个不同的选择. 相对于那些商用的搜索引擎, Nutch作为开放源代码搜索引擎将会更加透明, 从而更值得大家信赖. 现在所有主要的搜索引擎都采用私有的排序算法, 而不会解释为什么一个网页会排在一个特定的位置. 除此之外, 有的搜索引擎依照网站所付的费用, 而不是根据它们本身的价值进行排序. 与它们不同, Nucth没有什么需要隐瞒, 也没有动机去扭曲搜索的结果. Nutch将尽自己最大的努力为用户提供最好的搜索结果。

Nutch 是一个应用程序,是一个网络蜘蛛 ,它会在网站上自动爬行,抓取网页。Nutch 的爬虫有两种方式:

爬行企业内部网(Intranet crawling)。针对少数网站进行。用 crawl 命令。

爬行整个互联网。 使用低层的 inject, generate, fetch 和 updatedb 命令。具有更强的可控制性。

在我的试用安装时,对安吉高级中学网站(http://www.angao.com)进行了抓取,进行了调试。花了我半天时间,总算行了,大家可以查看演示网址:

http:// http://9ding.xicp.net/zh/   在里面进行搜索下,感受Nutch的强大功能。

在安装时,前提条件是在你的计算机中已安装好JDK,Tomcat,并已设置好环境变量等。由于Nutch是一个在Linux下运行的应用软件,如果想在windows平台下运行,需安装cygwin软件,这是一个模块Lunux系统环境的软件,以便能正常运行Nutch脚本。

 

具体要求:

 

已安装好java1.4版本以上,Tomcat4版本以上,有一个调试好的JSP运行环境。

设置系统变量 NUTCH_JAVA_HOME,由于我的java程序安装在d:/jsp/j2se5,所以在我的机器上把变量设置为NUTCH_JAVA_HOME=d:/jsp/j2se5,在winXP系统中,在我的电脑->属性->高级 标签下->环境变量->双击设置。

安装cygwin软件,这是一个Linux环境模拟软件。

有一个比较大的硬盘空间,推荐4G以上。

下载Nutch,进行安装。

附软件下载地址:

j2SE5.0    http://java.sun.com/javase/downloads/index.html

Tomcat5.5   http://tomcat.apache.org/download-55.cgi

Cygwin    http://www.cygwin.com/

Nutch     http://lucene.apache.org/nutch/

 

 

安装步骤:

1、 由于大多数使用的都是windows系统,所以必需先安装Cygwin软件。

 

我也是这样。从cygwin 网站中下载来的是cygwin_setup.exe安装文件,直接双击就可以安装了,安装时有三种方式,我选择的是在线安装,把所有的部件全都安装了。这 个安装方式比较慢,我花了3个多小时。安装完毕后,在桌面上出现了cygwin的快捷方式,直接双击该图标,在命令行中输入:

cd /cygdrive/d/jsp 回车

再输入命令ls(这是个Linux命令,作用相当于DOS下的dir命令),窗口显示d:/jsp下所有的目录及文件。

提示:由于我所有的jsp相关文件都是安装在d:/jsp目录下,所以这里为了演示,输入命令为

cd /cygdrive/d/jsp  ,这里d/jsp可以替换为你自己的文件目录。如果你能显示出目录文件,就说明cygwin 已安装成功了。

设置 系统变量 NUTCH_JAVA_HOME,设置好后,需重启电脑。

 

2、抓取网站内容前的准备工作

 

1) 把下载后的nutch-0.7.2.tar.gz解压缩到你的指定目录下,我是放在D:/jsp/sousuo/nutch目录。建立一个文本文件,内容 是你要抓取的网站地址,我的内容是http://www.angao.com,然后保存到nutch的安装目录下。文件名取为urls.txt。

2)打开Nutch安装目录下,修改conf子目录下的crawl-urlfilter.txt文件,在最下面部分改为

# accept hosts in MY.DOMAIN.NAME

#+^http://([a-z0-9]*/.)*MY.DOMAIN.NAME/

+^http://www.angao.com/   ##这里改为你要抓取的网站地址,其实这里是配置一个##

##取过滤器,用来配置网站的哪部分内容是你想要抓取的##

# skip everything else

修改好后,保存。

3),在你的nutch安装目录下建立一个crawled子目录,用来存放网站抓取后的内容及索引,目录名是可以任意的。

 

3、运行Crawl命令抓取网站内容

双击桌面cygwin图标,打开命令窗口。输入

cd /cygdriver/d/jsp/sousuo/nutch 回车,

此时目录转到d:/jsp/sousuo/nutch下,这也是我的nutch安装目录,如果你的nutch安装在其它目录,则命令cd /cygdriver/d/jsp/sousuo/nutch中的d/jsp/sousuo/nutch部分改为你的nutch安装路径即可。

然后再输入

bin/nutch crawl urls.txt –dir crawled –depth 3 –threads 4 >& crawl.log

稍等几分钟,程序抓取过程结束,在你的crawled子目录下,将会看到抓取的内容。

下面解释下该命令:

crawl 命令有几个参数,它们是:

dir     指定抓取后内容及索引的存放目录

depth   指定网站抓取的层数

-delay    指定连接目标网站延迟时间

threads 指定程序运行的线程数,以提高抓取速度。

在命令bin/nutch crawl urls.txt –dir crawled –depth 3 –threads 4 >& crawl.log中

urls.txt 是开头建立好的,内容是目录网址,>&crawl.log是指定记录文件,在抓取过程中的错误及其它内容都会记在此文件中。 bin/nutch crawl部分是运行nutch安装目录下的bin子目录下的nutch脚本 crawl是命令名。

 

 

4、使用Tomcat进行搜索测试

nutch安装目录下的nutch-0.7.2.war文件拷到Tomcat的webapps目录下。当war展开后,改名为nutch。修改webapps/nutch/WEB-INF/classes目录下的nutch-site.xml文件,改成如下内容

<nutch-conf>

    <property>

     <name>searcher.dir</name>

     <value>D:/jsp/sousuo/nutch/crawled</value>

  

    </property>

 

</nutch-conf>

在这里value标签就是指定你搜索的目录,这个目录,也就是开头你抓取后存放抓取内容及索引的目录。<value>D:/jsp/sousuo/nutch/crawled</value>部分,你可以自由修改。

接下来 修改tomcat/conf下的server.xml文件,将其中的Connector部分改成如下形式即可:
  <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"语句,目的是为了解决汉字编码问题,以免在进行中文搜索时,出现乱码。

最后可以启动tomcat,在IE地址栏中输入http://localhost/nutch , 即可,出现nutch的搜索界面,你现在马上就可以开始搜索了。

你可以打开http://9ding.xicp.net ,进行搜索测试。这是我的演示程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值