`
backsnow
  • 浏览: 127003 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

集成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 访问.

分享到:
评论
2 楼 backsnow 2011-03-10  
另外,修改regex-urlfilter.txt
1 楼 backsnow 2011-03-10  
还要记得改nutch-site.xml

相关推荐

Global site tag (gtag.js) - Google Analytics