- 论坛徽章:
- 0
|
架设自己的搜索引擎,Nutch安装手记之
Nutch 是一个刚刚诞生开放源代码(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文件,改成如下内容
searcher.dir
D:\jsp\sousuo\nutch\crawled
在这里value标签就是指定你搜索的目录,这个目录,也就是开头你抓取后存放抓取内容及索引的目录。D:\jsp\sousuo\nutch\crawled部分,你可以自由修改。
接下来修改tomcat\conf下的server.xml文件,将其中的Connector部分改成如下形式即可:
这里添加了URIEncoding="UTF-8" useBodyEncodingForURI="true"语句,目的是为了解决汉字编码问题,以免在进行中文搜索时,出现乱码。
最后可以启动tomcat,在IE地址栏中输入
http://localhost/nutch
, 即可,出现nutch的搜索界面,你现在马上就可以开始搜索了。
你可以打开
http://9ding.xicp.net
,进行搜索测试。这是我的演示程序。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/25217/showart_210205.html |
|