首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

转:Nutch跟Solr的集成方法

2012-07-15 
转:Nutch和Solr的集成方法另外,我们希望能够容易的调整查询的关联度,因此这里创建一个新的请求处理器(requ

转:Nutch和Solr的集成方法

另外,我们希望能够容易的调整查询的关联度,因此这里创建一个新的请求处理器(request handler)叫dismax。

c、打开apache-solr-1.3.0/example/solr/conf/solrconfig.xml文件,把下面这段粘贴进去

<requestHandler name="/nutch" >

<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&lt;-1 5&lt;-2 6&lt;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

热点排行