本方案中,Solr作为处理搜索结果的源和入口,有效的减轻对Nutch的搜索负担,让Nutch负责她最擅长的工作:抓取(crawling)和提取(extracting)内容。使用Solr作为搜索后端,换句话说,就是允许使用所有Solr
Server
的高级特性,诸如:查询拼写检查(spell-check),搜索提醒(suggestion),数据复制(data-replication),查询缓存等等。
Nutch和Solr的安装
首先下载我们需要的软件,Apache Solr
和
Nutch
。
1、从官方下载Solr Version 1.3.0
2、解压Solr安装包。
3、下载Nutch Version 1.0
4、解压Nutch安装包。
5、配置Solr
简单起见,我们以Solr Example中的配置为基础
a、从apache-nutch-1.0/conf拷贝Nutch Schema到apache-solr-1.3.0/example/solr/conf目录下,覆盖掉已经存在的。
我们希望允许Solr为搜索结果创建摘要,因此我们需要存储内容以便能够索引它。
b、调整schema.xml,以便"content"字段的"stored"属性等于true。
<field name="content" type="text" stored="true" indexed="true"/>
另外,我们希望能够容易的调整查询的关联度,因此这里创建一个新的请求处理器(request handler)叫dismax。
c、打开apache-solr-1.3.0/example/solr/conf/solrconfig.xml文件,把下面这段粘贴进去
<requestHandler name="/nutch" class="solr.SearchHandler" >
<lst name="defaults">
<str name="defType">dismax</str>
<str name="echoParams">explicit</str>
<float name="tie">0.01</float>
<str name="qf">
content^0.5 anchor^1.0 title^1.2
</str>
<str name="pf">
content^0.5 anchor^1.5 title^1.2 site^1.5
</str>
<str name="fl">
url
</str>
<str name="mm">
2<-1 5<-2 6<90%
</str>
<int name="ps">100</int>
<bool hl="true"/>
<str name="q.alt">*:*</str>
<str name="hl.fl">title url content</str>
<str name="f.title.hl.fragsize">0</str>
<str name="f.title.hl.alternateField">title</str>
<str name="f.url.hl.fragsize">0</str>
<str name="f.url.hl.alternateField">url</str>
<str name="f.content.hl.fragmenter">regex</str>
</lst>
</requestHandler>
6、启动Solr
cd apache-solr-1.3.0/example
java -jar start.jar
7、配置Nutch
a、打开apache-nutch-1.0/conf下的nutch-site.xml,用下面的内容(我们制定了蜘蛛的名称,激活插件,限制单机一次运行抓取的最大URL数为100)替换:
<?xml version="1.0"?>
<configuration>
<property>
<name>http.agent.name</name>
<value>nutch-solr-integration</value>
</property>
<property>
<name>generate.max.per.host</name>
<value>100</value>
</property>
<property>
<name>plugin.includes</name>
<value>protocol-http|urlfilter-regex|parse-html|index-(basic|anchor)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
</property>
</configuration>
b、打开apache-nutch-1.0/conf下的regex-urlfilter.txt,用下面的内容替换:
-^(https|telnet|file|ftp|mailto):
# skip some suffixes
-\.(swf|SWF|doc|DOC|mp3|MP3|WMV|wmv|txt|TXT|rtf|RTF|avi|AVI|m3u|M3U|flv|FLV|WAV|wav|mp4|MP4|avi|AVI|rss|RSS|xml|XML|pdf|PDF|js|JS|gif|GIF|jpg|JPG|png|PNG|ico|ICO|css|sit|eps|wmf|zip|ppt|mpg|xls|gz|rpm|tgz|mov|MOV|exe|jpeg|JPEG|bmp|BMP)$
# skip URLs containing certain characters as probable queries, etc.
-[?*!@=]
# allow urls in foofactory.fi domain
+^http://([a-z0-9\-A-Z]*\.)*lucidimagination.com/
# deny anything else
-.
8、创建一个种子列表(初始化的URL列表)
mkdir urls
echo "http://www.haoguoliang.com/
" > urls/seed.txt
9、将种子URL列表导入Nutch的crawldb(注意在nutch文件夹下执行)
bin/nutch inject crawl/crawldb urls
10、生成获取(fetch)列表,以便获取和分析内容
bin/nutch generate crawl/crawldb crawl/segments
以上命令在crawl/segments目录下生成了一个新的segment目录,里边存储了抓到的URLs,下边的指令里,我们需要最新的segment目录作为参数,存储到环境变量SEGMENT里:
export SEGMENT=crawl/segments/`ls -tr crawl/segments|tail -1`
现在,启动抓取程序真正开始抓取内容
bin/nutch fetch $SEGMENT -noParsing
接下来我们分析、解析抓取下来的内容
bin/nutch parse $SEGMENT
更
新Nutch
crawldb,updatedb命令会存储以上两步抓取(fetch)和分析(parse)最新的segment而得到的新的URLs到Nutch
crawldb,以便后续的继续抓取,除了URLs之外,Nutch也存储了相应的页面内容,防止相同的URLs被反反复复的抓取。
bin/nutch updatedb crawl/crawldb $SEGMENT -filter -normalize
到此,一个完整的抓取周期结束了,你可以重复步骤10多次以便可以抓取更多的内容。
11、创建超链库
bin/nutch invertlinks crawl/linkdb -dir crawl/segments
12、索引所有segments中的内容到Solr中
bin/nutch solrindex http://127.0.0.1:8983/solr/
crawl/crawldb crawl/linkdb crawl/segments/*
现在,所有Nutch抓取的内容已经被Solr索引了,你可以通过Solr Admin执行查询操作了
http://127.0.0.1:8983/solr/admin
分享到:
相关推荐
Nutch+solr + hadoop相关框架搭建教程
本项目是基于Apache Nutch和Solr开发的AJAX页面内容爬取与处理设计源码,主要使用Java进行开发。项目共包含1064个文件,其中Java源代码文件458个,XML配置文件181个,文本文件81个,HTML页面文件56个,JPG图片文件56...
基于Apache Nutch和Solr以及Htmlunit, Selenium WebDriver等组件扩展,实现对于AJAX加载类型页面的完整页面内容爬取、解析、清洗、持久化、全文检索等处理
Nutch 和 Solr (参见 ) 版本 1. 索尔 Solr 用于 8.5.1(或 7.3.1)版本wget http://archive.apache.org/dist/lucene/solr/8.5.1/solr-8.5.1.tgz 2. 阿帕奇纳奇 使用 Apache Nutch 版本 1.17(或 1.16)。 wget ...
自己写的 hadoop nutch solr 环境搭建手册,成功搭建后写的,会有红色标注容易出错的地方
资源名称:Nutch相关框架视频教程资源目录:【】Nutch相关框架视频教程1_杨尚川【】Nutch相关框架视频教程2_杨尚川【】Nutch相关框架视频教程3_杨尚川【】Nutch相关框架视频教程4_杨尚川【】Nutch相关框架视频教程5_...
nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供一个较新的中文教程和文档,供开发者学习。 github地址: https://github.com/CrawlScript/nutcher 目录: ...
LoremIpsum搜索 包含与 lucene 和 solr 一起使用的搜索算法... export CLASSPATH="<lucene>/lucene/replicator/lib/*:<nutch>/build/*:<nutch>/build/lib/*:<lucene>/solr/dist/*:<lucene>/solr/ dist/solrj-lib/*:*:.
基于Apache Nutch 1.8和Htmlunit组件,实现对于AJAX加载类型页面的完整页面内容抓取解析。 According to the implementation of Apache Nutch 1.8, we can't get dynamic ...
eclipse配置nutch,eclipse配置nutch
使用 Nutch 和 Solr 在 hadoop 上进行分布式 XSS fuzz 需要 纽扣 1.7 Solr 4.10.1(最新版本) Hadoop 1.2.1 设置 在使用 map-reduce 设置在 hadoop 上运行的 Nutch 设置 Solr: 从下载最新的 Solr 提取 Solr:...
Nutch1.0:Nutch1.0修改版(整合中文分词)原始码修改,编译打包
课程背景:Nutch诞生于2002年8月,是Apache旗下的一个用Java实现的开源搜索引擎项目,自Nutch1.2版本之后,Nutch已经从搜索引擎演化为网络爬虫,接着Nutch进一步演化为两大分支版本:1.X和2.X,最大的区别在于2.X对...
里面描述了Nutch的基本流程,Nutch与eclipse的结合,Nutch与Solr的结合
1.1 什么是 nutch Nutch 是一个开源的、Java 实现的搜索引擎。它提供了我们运行自己的搜 引擎所需的全部工具。...此 nutch 对学术搜索和政府类站点的搜索来说,是个好选择,因为一 个公平的排序结果是非常重要的。
1.1 Solr 简介 1.1.1 Solr 的特性 1.1.2 Solr 的目录结构 1.1.3 Solr 与Lucene 关系 1.2 Solr 安装 1.2.1 环境介绍 1.2.2 安装Solr 1.2.3 结合Nutch
虽然Nutch的页面排序方法比较合理,但是很多情况下仍然不能 满足需要。分析开源搜索引擎Nutch代码,研究了Nutch的页面排序方法。在Nutch原有的结构基础上提出了3种修改Nutch 排序的方法,对每种方法的实现进行了阐述...
6. nutch分析方法和工具........33 6.1 Crawldb......33 6.2 Linkdb........35 6.3 Segments....35 6.4 Index..39 7. nutch分布式文件系统........41 2007-8-26 北京邮电大学-李阳 Nutch入门学习 7.1 概述...41 7.2...
基本上,这将允许您限制将存储在 Solr/Elasticsearch 索引中的内容的 MIME 类型,而无需限制抓取/解析过程,因此无需使用 URLFilter 插件系列。 这也解决了一个特殊的极端情况,当某些 URL 没有任何格式可以过滤,...
nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据nutch 爬虫数据