Nutch12configtest.docx
《Nutch12configtest.docx》由会员分享,可在线阅读,更多相关《Nutch12configtest.docx(11页珍藏版)》请在冰点文库上搜索。
Nutch12configtest
Nutch1.2安装测试报告
本次试验平台在windows7操作系统上搭建,使用了Cygwin、Apache-Tomcat6.0.32、JDK1.6和Nutch1.2。
Cygwin用来模拟Linux终端模式,Apache-Tomcat6.0.32将本地机器配置成小型服务器,Nutch1.2作为搜索引擎的核心(运行在JAVA平台上)综合了网页爬取、索引和查询三个模块。
一、Nutch搜索引擎平台搭建
组件列表:
Cygwin:
Apache-Tomcat6.0.32:
http:
//tomcat.apache.org/
JDK1.6:
Nutch-1.2:
http:
//lucene.apache.org/nutch
1、Cygwin安装
Cygwin安装之后修改环境变量,在path中添加【C:
\cygwin\bin;】是Cygwin的解压目录
2、安装JDK1.6
3、Apache-Tomcat6.0.32安装
在tomcat的官方网站下载Apache-Tomcat6.0.32.EXE(安装在windows上的版本),运行.EXE文件,选定JDK的路径,完成tomcat的安装
4、安装Nutch-1.2
将Nutch解压到指定目录,在本地机器上解压到C:
\CYGWIN\目录下,添加变量NUTCH_JAVA_HOME=C:
\ProgramFiles\Java\jdk1.6.0_07,先删除C:
\ProgramFiles\ApacheSoftwareFoundation\Tomcat6.0\webapps\ROOT目录下的所有文件,再将nutch根目录下的nutch.1.2.war解压到C:
\ProgramFiles\ApacheSoftwareFoundation\Tomcat6.0\webapps\ROOT目录中
5、测试Nutch安装成功
运行Cygwin程序,输入命令【cd/cydrive/c/cygwin/nutch-1.2】,进入nutch的目录中,输入bin/nutch命令,将显示nutch的功能列表:
二、启动Nutch爬取网页
1、配置文件
①在nutch\bin目录下创建一个urls目录,然后在目录里面新建一个文件,文件名为“url.txt”,内容为要爬行的网站的顶级域名如:
②打开nutch-1.2\conf\crawl-urlfilter.txt文件,把MY.DOMAIN.NAME字符替换为url.txt内的url的域名,其实更简单点,直接删除MY.DOMAIN.NAME这几个字就可以了,也就是说,只保存+^http:
//([a-z0-9]*\.)*这几个字就可以了,表示所有http的网站都同意爬行。
如:
+^http:
//([a-z0-9]*\.)*
③打开nutch-1.2\conf\nutch-default.xml文件,在内插入以下内容:
http.agent.name
nutchagent
2、启动cygwin,进入nutch1.2目录,输入命令bin/nutchcrawlurl.txt-dircrawled-depth2-threads4-topN50>&crawl.log
url.txt内存放要爬取网站的顶级域名,
网页的目录,会在nutch目录中创建crawled文件夹
depth2爬行深度为2层
threads4启用4个线程
topN50每层最多页面为50
crawl.log运行日志
程序运行一到两分钟结束,按照每个页面10k大小计算,两层所有页面(2500)总大小可达到2.5M。
三、在浏览器中测试nutch搜索功能(分析、索引、搜索模块测试)
1、配置Tomcat,在C:
\ProgramFiles\ApacheSoftwareFoundation\Tomcat6.0\webapps\ROOT\WEB-INF\classes\nutch-site.xml文件中修改为:
searcher.dir
C:
/cygwin/nutch-1.2/crawled
2、在浏览器中输入http:
localhost:
8080,可进入nutch的浏览器搜索模式
3、在搜索框内输入查询词“房地产”,搜索结果如下:
在网页快照中可以看到缓存到本地机上的网页:
4、查看分析“评分详解”
根据在nutch中搜索“房地产”关键词产生的页面排序,点击“评分详解”,查看nutch中Rank的计算方法:
(这里选择第二条和第三条记录)
NO.2
page
∙title=搜狐游戏频道_游戏产业信息平台
∙segment=20110312123751
∙boost=0.1
∙digest=65cc41e6c2437e7e3a3532fb11a3d126
∙tstamp=20110312043802568
∙url=
scoreforquery:
房地产
∙0.00700805=(MATCH)sumof:
o3.387273E-5=(MATCH)sumof:
▪3.387273E-5=(MATCH)weight(content:
房in15),productof:
▪0.014065133=queryWeight(content:
房),productof:
▪1.162519=idf(docFreq=33,maxDocs=40)
▪0.012098842=queryNorm
▪0.0024082765=(MATCH)fieldWeight(content:
房in15),productof:
▪1.4142135=tf(termFreq(content:
房)=2)
▪1.162519=idf(docFreq=33,maxDocs=40)
▪0.0014648438=fieldNorm(field=content,doc=15)
o9.580655E-5=(MATCH)sumof:
▪9.580655E-5=(MATCH)weight(content:
地in15),productof:
▪0.014065133=queryWeight(content:
地),productof:
▪1.162519=idf(docFreq=33,maxDocs=40)
▪0.012098842=queryNorm
▪0.0068116346=(MATCH)fieldWeight(content:
地in15),productof:
▪4.0=tf(termFreq(content:
地)=16)
▪1.162519=idf(docFreq=33,maxDocs=40)
▪0.0014648438=fieldNorm(field=content,doc=15)
o0.006878371=(MATCH)sumof:
▪8.728691E-5=(MATCH)weight(content:
产in15),productof:
▪0.014426319=queryWeight(content:
产),productof:
▪1.1923718=idf(docFreq=32,maxDocs=40)
▪0.012098842=queryNorm
▪0.0060505327=(MATCH)fieldWeight(content:
产in15),productof:
▪3.4641016=tf(termFreq(content:
产)=12)
▪1.1923718=idf(docFreq=32,maxDocs=40)
▪0.0014648438=fieldNorm(field=content,doc=15)
▪0.006791084=(MATCH)weight(title:
产^1.5in15),productof:
▪0.0725156=queryWeight(title:
产^1.5),productof:
▪1.5=boost
▪3.9957323=idf(docFreq=1,maxDocs=40)
▪0.012098842=queryNorm
▪0.093649976=(MATCH)fieldWeight(title:
产in15),productof:
▪1.0=tf(termFreq(title:
产)=1)
▪3.9957323=idf(docFreq=1,maxDocs=40)
▪0.0234375=fieldNorm(field=title,doc=15)
NO.3
page
∙title=初春装修第一炮2万组建全套厨房家电-搜狐数码
∙segment=20110312123751
∙boost=0.1
∙digest=689f3a5dccb597ed91e813b72a945069
∙tstamp=20110312043824188
∙url=
scoreforquery:
房地产
∙0.0062283836=(MATCH)sumof:
o0.0058055837=(MATCH)sumof:
▪1.4634694E-4=(MATCH)weight(content:
房in12),productof:
▪0.014065133=queryWeight(content:
房),productof:
▪1.162519=idf(docFreq=33,maxDocs=40)
▪0.012098842=queryNorm
▪0.010404944=(MATCH)fieldWeight(content:
房in12),productof:
▪4.582576=tf(termFreq(content:
房)=21)
▪1.162519=idf(docFreq=33,maxDocs=40)
▪0.001953125=fieldNorm(field=content,doc=12)
▪0.0056592366=(MATCH)weight(title:
房^1.5in12),productof:
▪0.0725156=queryWeight(title:
房^1.5),productof:
▪1.5=boost
▪3.9957323=idf(docFreq=1,maxDocs=40)
▪0.012098842=queryNorm
▪0.07804164=(MATCH)fieldWeight(title:
房in12),productof:
▪1.0=tf(termFreq(title:
房)=1)
▪3.9957323=idf(docFreq=1,maxDocs=40)
▪0.01953125=fieldNorm(field=title,doc=12)
o5.5313936E-5=(MATCH)sumof:
▪5.5313936E-5=(MATCH)weight(content:
地in12),productof:
▪0.014065133=queryWeight(content:
地),productof:
▪1.162519=idf(docFreq=33,maxDocs=40)
▪0.012098842=queryNorm
▪0.003932699=(MATCH)fieldWeight(content:
地in12),productof:
▪1.7320508=tf(termFreq(content:
地)=3)
▪1.162519=idf(docFreq=33,maxDocs=40)
▪0.001953125=fieldNorm(field=content,doc=12)
o7.512462E-5=(MATCH)sumof:
▪7.512462E-5=(MATCH)weight(content:
产in12),productof:
▪0.014426319=queryWeight(content:
产),productof:
▪1.1923718=idf(docFreq=32,maxDocs=40)
▪0.012098842=queryNorm
▪0.0052074697=(MATCH)fieldWeight(content:
产in12),productof:
▪2.236068=tf(termFreq(content:
产)=5)
▪1.1923718=idf(docFreq=32,maxDocs=40)
▪0.001953125=fieldNorm(field=content,doc=12)
o2.9236125E-4=weight(content:
"房地产"~5in12),productof:
▪0.042556588=queryWeight(content:
"房地产"~5),productof:
▪3.5174098=idf(content:
房=33地=33产=32)
▪0.012098842=queryNorm
▪0.006869941=fieldWeight(content:
"房地产"in12),productof:
▪1.0=tf(phraseFreq=1.0)
▪3.5174098=idf(content:
房=33地=33产=32)
▪0.001953125=fieldNorm(field=content,doc=12)
从上面两个页面的Rank值的计算过程可以看出:
(1)关键词查询索引库,进行相似度计算,单字与整词分别进行计算
(2)文章权重的度量采用了TF和IDF两个参数
(3)文章标题和正文中的关键词被赋予了不同的权重,标题内的关键字(MATCH)weight(title:
房^1.5in12)
四、总结
1、nutch搜索引擎的配置安装,在windows操作系统进行操作需安装Cygwin模拟器,通过Cygwin启动nutch进行网页爬取
2、nutch、tomcat及浏览器组成两层架构,nutch完成网页爬取、索引和查询功能,tomcat和浏览器组成本地服务器以及访问nutch的接口
3、nutch的工作方式有两种:
爬取内网网页Intranet工作模式,使用crawl命令(本文测试所用为crawl命令),另一种是Internet工作模式,由于链接复杂、网页有重,nutch在Internet爬取网页时的工作流程如下:
抓取程序工作流程
(1.) 建立初始URL集
(2.) 将URL集注入crawldb数据库---inject
(3.) 根据crawldb数据库创建抓取列表---generate
(4.) 执行抓取,获取网页信息---fetch
(5.) 更新数据库,把获取到的页面信息存入数据库中---updatedb
(6.) 重复进行3~5的步骤,直到预先设定的抓取深度。
---这个循环过程被称为“产生/抓取/更新”循环
(7.) 根据sengments的内容更新linkdb数据库---invertlinks
(8.) 建立索引---index
搜索程序工作流程
(1.) 用户通过用户接口进行查询操作
(2.) 将用户查询转化为lucene查询
(3.) 从索引库中提取满足用户检索需求的结果集
(4.) 返回结果
(参考
4、在测试的过程中还存在一些未解决的问题:
(1)存入nutch中的部分网页存在编码错误,在tomcat和nutch的配置文件中编码都设置为UTF-8,但还存在乱码问题
(2)nutch中根据关键字的排名算法还需要进一步验证