集成nutch和solr,并加入中文分词的过程

  1. 准备工作
  2. 安装nutch
  3. 安装solr
  4. 加入中文分词
  5. 运行

1.准备工作

首先安装好jdk和tomcat,我安装的是sun-java6-jdk,注意tomcat的用户最好改成正在使用的用户(有时候在当前用户修改环境变量时,tomcat如果是root用户,可能不会载入该环境变量)

 

2.安装nutch

我下载的是src版本,下载后解压,进入NUTCH目录,并用ant命令编译.

 

建立urls入口地址:mkdir urls; echo "http://***"> seed.txt

 

加入过滤网址:vim conf/crawl-urlfilter.txt,写入过滤规则,注意每一行开头不能有空格,否则在测试时会报异常或者错误 (该目录下的regex-urlfilter.txt也有类似的作用,但是如何设置在有需要时再研究)

 

测试 "Usage: bin/nutch Crawl <urlDir> [-dir d] [-threads n] [-depth i] [-topN N]  [-solr solrURL]"

Crawl命令相当于是inject, generate,fecth,parse,update,invertlinks等命令的组合使用,具体见源码.使用细节见scholr_search/books/nutch.pdf

 

3.安装solr

下载solr.1.4.1,解压

 

进入solr目录(我解压在/test-solr位置)

 

测试example是否能正常运行: cd example ;  java -jar start.jar

 

将$NUTCH_DIR/conf/schema.xml拷到/test-solr/example/solr/conf/schema.xml,并且将content对应的的stored标记改为true.

 

测试的example默认是利用jetty容器,在实际使用时,我改为利用tomcat容器,只需要建立一个映射,给出webapps和solr的主目录:

cd $TOMCAT_HOME/conf/Catalina/localhost/

vim test-solr.xml

"""

test-solr.xml的内容为:

<Context docBase="/test-solr/example/webapps/solr.war" debug="0" crossContext="true" >

    <Environment name="solr/home" type="java.lang.String" value="/test-solr/example/solr" override="true" /> 
   </Context>

"""

$TOMCAT_HOME/bin/startup.sh

"""

然后打开浏览器,输入http://localhost:8080/test-solr/admin

"""


4.加入中文分词

我在建立solr工程时遇到了麻烦,折腾了三天未果,只好利用别人已经写好的paoding-analysis.jar和chinese-tokenizer.jar. 步骤为:

 

unzip solr.war

 

修改

test-solr.xml的内容为:

<Context docBase="/test-solr/example/webapps/solr" debug="0" crossContext="true" >

    <Environment name="solr/home" type="java.lang.String" value="/test-solr/example/solr" override="true" /> 
   </Context>

 

"""

解压的缘故是两个jar包需要加入到WEB-INF/lib目录下,这个目录解压后才会看到

"""

cp $DIR/paoding-analysis.jar /test-solr/example/webapps/solr/WEB-INF/lib/

cp $DIR/chinese-tokenizer.jar /test-solr/example/webapps/solr/WEB-INF/lib/

 

vim /test-solr/example/solr/conf/schema.xml

"""

将type=text 处改为

<!--      <tokenizer class="solr.WhitespaceTokenizerFactory"/>-->
             <tokenizer class="com.scholat.ChineseTokenizerFactory" mode="most-words"/>

 

有的文章加入对query的修改,是因为将index和query的analyzer分开了,这里省略了analyzer标签,应该默认将两者都修改了。
"""

 

在/nutch-1.2目录下运行:

bin/nutch crawl urls -dir towns -depth 10 -threads 10 -topN 10 -solr http://localhost:8080/test-solr

(或者分开运行:

bin/nutch crawl urls -dir towns -depth 10 -threads 10 -topN 10

bin/nutch solrindex http://localhost:8080/test-solr towns/crawldb/ towns/linkdb/ towns/segments/*)

 

整个过程完成,可以通过http://localhost:8080/test-solr/admin 访问.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值