【转载】 nutch1.2 中文分词IKAnalyzer插件安装

原文链接http://blog.sina.com.cn/s/blog_8c7c21340100zs7s.html


废话不多说直接进入Ik分词安装主题,首先需要下载IKAnalyzer分词包、ant安装包、javacc安装包,nutch1.2搭建及其中文分词安装需要的所有文件,我已经共享上传到了我的115网盘,可供大家下载。

一、安装ant及其javacc

1、ant 下载地址:http://115.com/file/andmar74#apache-ant-1.8.3-bin.zip

解压后放到C盘根目录,重命名为ant

配置环境变量:新建环境变量ANT_HOME: C:\ant

              修改classpath,在后面添加 %ANT_HOME%lib;

              修改path,在后面添加  %ANT_HOME%\bin;

测试:在命令行输入 ant -version  应该显示的是ant的版本号,出现其他信息说明配置有问题。

2、javacc 下载地址:http://115.com/file/c2rp74cb#javacc-5.0.zip

解压到C盘根目录,重名为javacc5.0

配置环境变量:修改path,在后面添加 C:\javacc5.0\bin;

测试:在命令行输入 javacc 出现版本号及其他一串信息,没有报错,说明安装成功。

3、分词包IKAnalyzer.jar下载地址:http://115.com/file/andmauzf#IKAnalyzer3.2.8.jar

并把IKAnalyzer3.2.8.jar文件拷入nutch1.2/lib目录下

二、修改文件 Query.java,位置在C:\nutch1.2\src\java\org\apache\nutch\searcher下面,一共需要修改两个地方。

1、在36行的位置

添加 importorg.apache.nutch.analysis.ParseException;

2、在454行的位置

修改替换对应的代码为:

 publicstatic Query parse(String queryString, String queryLang, Configuration conf)
  throws IOException {

    try{
  
 return fixup(NutchAnalysis.parseQuery(
          
 queryString, AnalyzerFactory.get(conf).get(queryLang),conf), conf);

   }

   catch (ParseException e) {

    e.printStackTrace();

    throw newIOException(e.getMessage());

   }
 }

三、修改NutchAnalysis.jj代码,位置在C:\nutch1.2\src\java\org\apache\nutch\analysis

在该文件里找到 | <SIGRAM: <CJK> >,这代表按字划分,修改为 | <SIGRAM:(<CJK>)+ >

然后将NutchAnalysis.jj拷到其他目录单独进行编译,比如在C盘根目录新建一个文件夹cheng,把NutchAnalysis.jj拷贝到C:\cheng 下面

javacc工具生成NutchAnalysis.jj的源代码,将生成的所有java源代码(7个文件)全部覆盖到 src/java/org/apache/nutch/analysis

javacc使用方法:cmd进入命令行,切换到NutchAnalysis.jj所在目录(即C:\cheng),

输入命令如下

cd C:\

cd C:\cheng

javacc NutchAnalysis.jj

就会生成7个文件了。

四、修改NutchAnalysis.java文件代码,位置在C:\nutch1.2\src\java\org\apache\nutch\analysis

1、在import区域加入下面的代码

import org.wltea.analyzer.lucene.IKTokenizer;

2、在两个位置加入ParseException异常捕捉命令,否则ant编译时会提示错误。下面是修改后的代码,需要修改的地方已标红。

位置1
public static Query parseQuery(String queryString, Configuration conf) throwsIOException
,ParseException 
   
 return parseQuery(queryString, null, conf); 
 
 

位置2

public static Query parseQuery(String queryString, Analyzeranalyzer, Configuration conf) 
   
 throws IOException,ParseException 
   
 NutchAnalysis parser = new NutchAnalysis( 
         
 queryString,(analyzer != null) ? analyzer : new NutchDocumentAnalyzer(conf)); 
   
 parser.queryString = queryString; 
   
 parser.queryFilters = new QueryFilters(conf); 
   
 return parser.parse(conf);

五、修改NutchDocumentAnalyzer.java文件代码,位置也是C:\nutch1.2\src\java\org\apache\nutch\analysis下。

1)引入IK包(第30行左右)

import org.wltea.analyzer.lucene.IKAnalyzer;
import org.apache.lucene.analysis.tokenattributes.*;

2)修改public TokenStream tokenStream(String fieldName, Reader reader) 函数(第105行左右),替换为:

public TokenStream tokenStream(String fieldName, Reader reader) { 
    
    Analyzer analyzer = new org.wltea.analyzer.lucene.IKAnalyzer(); 
    return analyzer.tokenStream(fieldName, reader); 
  } 

六、修改build.xml的文件代码,位置在C:\nutch1.2

1、在 <target name="war"depends="jar,compile,generate-docs"></target>的<lib></lib>之间<includename="log4j-*.jar"/> 下(大概在200行),加入下面的命令使的编译war文件的时候加入je-analysis的jar文件。

<include name="IKAnalyzer3.2.8.jar"/>

2、修改<targe tname="job" depends="compile">,改为<target name="job" depends="compile,war">这样编译后能自动在bulid文件夹下生成nutch-1.2.job,nutch-1.2.war,nutch-1.2.jar文件了。

七、ant编译

进入命令行,切换到C盘nutch1.2目录下,执行ant命令,就会开始ant工作,完成后会在nutch目录下生成build文件夹。

八、文件替换,在build文件夹下会生成三个文件

1、将build/nutch-1.2.job替换nutch1.2目录下文件

2、将build/nutch-1.2.jar替换nutch1.2目录下文件

3、将build/nutch-1.2.war替换nutch1.2目录下文件

九、重新爬行与建立索引

必须先删除C:\nutch1.2下的crawled文件夹

打开cygwin执行爬取命令

bin/nutch crawl url.txt -dir crawled -depth 3 -threads 4

 

十、tomcat搜索

事先删除C:\tomcat6.0\webapps下的nutch-1.2文件夹和nutch-1.2.war

1、将新生成的nutch-1.2.war拷贝到tomcat6.0/webapps目录,启动Tomcat服务后,会自动在该目录下生成一个nutch-1.2文件夹。

2、将新生成的nutch-1.2.jar文件和分词包(IKAnalyzer3.2.8.jar)拷贝到tomcatWEB-INF/lib下面

3、启动tomcat会自动生成nutch-1.2文件夹,修改C:\tomcat6.0\webapps\nutch-1.2\WEB-INF\classes下的nutch-site.xml
修改方法同前一篇博客相同,这里不再赘述。

4、重启tomcat,浏览器输入http://localhost:8080进入到nutch搜索界面,输入关键词进行搜索,这时会出现空白页,这时还需要修改一个地方。

还是C:\tomcat6.0\webapps\nutch-1.2\WEB-INF\classes下的nutch-site.xml文件,增加一个属性:
<property>
 
 <name>plugin.includes</name>
 
 <value>protocol-http|urlfilter-regex|parse-(text|html|js)|analysis-(zh)|index-basic|query-(basic|site|url)|summary-lucene|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
</property>
重启tomcat,进行搜索,这时候分词的问题应该解决了吧!

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值