源项目nutch实验报告.docx_第1页
源项目nutch实验报告.docx_第2页
源项目nutch实验报告.docx_第3页
源项目nutch实验报告.docx_第4页
源项目nutch实验报告.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告课程名称现代信息检索实验项目专业班级姓名学号成绩年 月 日 一、 实验目的(介绍本次实验的预期目标,完成的功能)预期目标:通过搭建开源项目nutch,从互联网上抓取数据,为这些抓取的网页数据建立一个索引。通过lucene把抓取的数据根据开源的分词器(庖丁分词)分词,并建立索引,在分词的时候可自定义分词的字典文本。完成功能:由于在window上搭建,因此安装了cygwin,用来模拟linux的环境,然后用nutch命令将需要抓取的网页数据抓取到本地并建立索引,最终能通过页面输入关键字查出相关的网页内容。二、 实验过程(介绍实验中涉及的关键过程,如核心算法、数 据结构等)1.实验用到软件jdk :jdk1.6.0_20nutch: apache-nutch-1.1tomcat: apache-tomcat-6.0lucene: lucene3.0solor: solor 1.42.由于在window上搭建,因此安装了cygwin,用来模拟linux的环境。步骤.双击cygwin 出现如下界面点击“下一步”后,安装向导要求选择cygwin的安装方式,如图2所示:图示中共有三种安装方式:(1)install from internet:从internet上下载并安装软件;(2)download without installing:从internet上下载安装的文件,但暂时不安装;(3)install from local directory:从本地含有安装文件的目录进行安装。我们选择第三项“install from local directory”后,点击“下一步”,如图3所示:安装向导要求选择cygwin的安装路径,我们可以在“root directory”文本框中更改安装路径,点击“下一步”,如图4所示:安装向导要求选择cygwin安装文件所在的本地存储路径,可以在“local package directory”中设置,点击“下一步”,如图5所示:安装向导显示出所要安装的内容列表,用户可以根据自己的实际需要来决定安装哪些程序。点击循环箭头图标后面的文字,可以更改安装的方式,常用的方式有default(表示只安装缺省的安装项)、install(表示安装全部程序,空间要求较大)、reinstall(表示重新安装程序)。推荐选择“install”方式,一步到位,以免后扰,不过用户应保证至少有2g以上的空间可供使用。点击“下一步”后,就开始正式的安装了(如图6所示)。最后出现如图7所示的窗口,点击“完成”后,cygwin安装完毕。至此,cygwin就安装完毕了。3安装nutch去网站上下载到nutch的最新版本,将其解压到指定目录中,本次实验下载的是apache-nutch-1.1-bin4.测试nutch命令在运行nutch的脚本命令前,需要设置一些环境变量。cygwin提供了一个名为cygwin.bat的文件,通过它可以自动完成必需环境变量的设置。该文件可在cygwin所在的根目录下找到,感兴趣的读者还可通过ultraedit等编辑器打开该文件一查究竟。其实cygwin安装完成之后,会在windows系统桌面生成一图标,如图8所示:此图标就是cygwin根目录下cygwin.bat文件的快捷方式,双击此图标将打开一类似dos窗口。本实验将nutch解压到了e:cygwinusrlocal中,故在此命令窗口中输入命令“cd /usr/local/apache-nutch-1.1-bin”,读者可根据自己的安装路径进行相应的修改,然后使用命令“ls -l”可查看nutch-0.7.1中的所有子目录及文件信息。执行命令“bin/nutch”,如果读者能看到如图9所示的提示, nutch在windows系统中的安装已经大功告成了!5.配置nutch的网络抓取在/usr/local/apache-nutch-1.1-bin的目录下建立一个urls的文件,写入需要抓取网页的网站地址,如,之类的网站地址,一行只能写一个网站地址然后通过doc命令进入/usr/local/apache-nutch-1.1-bin下面 然后执行./bin/nutch crawl urls -dir crawl.demo -depth 2 -threads 4 -topn 50 & crawl.log 命令 此命令说明nutch从网上抓取数据,并用nutch自带的lucene建立索引放在crawl.demo的目录下面如图所示图上所显示的就是网站索引。在用lucene建立索引的时候,其实是调用的solor来建立索引的,但是solor本身是基于lucene的,所以在建立索引的时候使用的分词器可以在e:cygwinusrlocalapache-nutch-1.1-binconf目录下面的schema.xml里面修改字典引用文本。 如下这段中说明用的是solor的分词,stopwords.txt表示可以过滤掉的分词的内容,碰到or and 之类的不进行分词建立索引,protwords.txt 表示需要预留要分词的内容urls是存放sina 163网址的文件夹目录-dir crawl.demo是抓取的页面的存放目录-depth指爬行的深度,这里处于测试的目的,选择深度为 2 ,完全爬行一般可设定为10左右-threads指定并发的进程这是设定为 4topn指在每层的深度上所要抓取的最大的页面数,完全抓取可设定为1万到100万,这取决于网站资源数量在执行抓取命令的时候在window上出现问题1. injector: starting at 2011-10-10 15:19:26 2. injector: crawldb: crawl/crawldb 3. injector: urldir: urls 4. injector: converting injected urls to crawl db entries. 5. exception in thread main java.io.ioexception: job failed! 6. at org.apache.hadoop.mapred.jobclient.runjob(jobclient.java:1252) 7. at org.apache.nutch.crawl.injector.inject(injector.java:217) 8. at org.apache.nutch.crawl.crawl.main(crawl.java:143)在crawl.log里如果出现如上显示的日志信息,说明环境配置的有问题解决方法如下:方法一:重新安装cygwin,换一个国外的映像,(163的映像是汉化版的)方法二:cygwin shell里边直接set lang=en_us是没作用的,好像cygwin shell不支持set命令,而cygwin也没有locale命令。于是到”系统属性高级环境变量”中增加一个环境变量名为lang,将值设为en_us方法三:让cygwin shell使用英文界面只用在/.bashrc这个文件里面加上一句话: export lang=en_us6.tomcat 的配置把tomcat放到e:cygwinusrlocal下面然后把nutch提供的应用程序放到tomcat目录下即把nutch-1.1.war 放到tomcat目录下e:cygwinusrlocalapache-tomcatwebapps设定搜索目录(是由于默认的segment路径与我们实际的路径不符所造成的)rootlocalhost nutch#cd /tomcatrootlocalhost tomcat#vi webapps/root/web-inf/classes/nutch-site.xml增加四行代码,修改成为searcher.dir e:cygwinusrlocalapache-nutch-1.1-bincrawl.demo 设置此行的目的是让应用查询的时候通过e:cygwinusrlocalapache-nutch-1.1-bincrawl.demo目录的下索引查找相应的网站中文乱码 nutch对中文的支持还不完善,需要修改tomcat文件夹下conf/server.xml文件 rootlocalhost tomcat#vi conf/server.xml 增加两句,修改为 配置完如下设置之后 就可以进入tomcat目录下启动tomcat用命令进入/usr/local/apache-tomcat/bin 下面 然后用./catalina.sh start 启动tomcat如图所示表示tomcat已经启动成功。在网页上输入http:/localhost:8080/nutch-1.1进入查询页面输入新浪,出现下图的查询结果,到此构建以nutch网络抓取,lucene分词并建立索引的实验成功。7.核心算法和基础结构nutch作为一个搜索引擎,其基本组成也同其他搜索引擎一样。简单的说,包括爬虫,索引和搜索三部分。如下如为nutch的工作原理nutch的核心算法重新使用map reduce实现,lucene使用了倒排索引lucene将输入数据以一种称为源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引。在进行关键字快速查找时,这种数据结构能够有效的利用磁盘空间。lucene会使用倒排结构存储数据的原因是:把从文档中抽取出来的语汇单元看作是查找关键字,而不是把文档作为中心实体。换句话说,倒排索引不是回答“这个文档中包含哪些单词?”这个问题,而是经过优化以后用来快速回答“哪些文档包含单词x?”这个问题。三、 实验结果分析(分析实验的最终结果)通过本次成功搭建了以nutch为网络抓取的搜索

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论