如何修改nutch的分词器(添加paoding分词器)

添加庖丁分词器分为两个步骤,首先要在window下修改好引入分词器的源码,将庖丁分词器作为默认的分词器引入,然后将修改后的程序部署到linux下(这一部分有要修改两部分代码:爬取部分要对nutch源码进行重新编译,其次要对部署到tomcat下的查询部分代码进行重新部署)

(1)window下修改nutch源码:插件包nutch核心代码中的org.apache.nutch.analysis包下的NutchDocumentAnalyzer类进行修改,重新声明实例化一个类型为PaodingAnalysis的CONTENT_ANALYZER2对象,对tokenStream函数进行修改,当需要对内容类型非"anchor"的内容进行解析时则调用CONTENT_ANALYZER2分词器,代码如下:

  /** Returns a new token stream for text from the named field. */
  public TokenStream tokenStream(String fieldName, Reader reader) {
	    Analyzer analyzer;
	    if ("anchor".equals(fieldName)){
	    	 analyzer = ANCHOR_ANALYZER;
	    	 return analyzer.tokenStream(fieldName, reader);
	    }else{
	    	analyzer = CONTENT_ANALYZER2;
	    	TokenStream token=analyzer.tokenStream(fieldName, reader);
	    	token.addAttribute(PositionIncrementAttribute.class);
	    	
	    	return token;
	    }
	      

	    
  }

然后根据我另一篇blog中介绍的方法对NutchAnalysis.jj文件进行编译,将编译得到的java类替换org.apache.nutch.analysis包下同名类。

(2)部署到linux下,需要重新编译nutch源码,这里重点对如何配置查询部分进行介绍

首先要对nutch源码进行编译打包成jar文件,到nutch主目录下执行命令ant jar会在build的文件夹下生成一个nutch.jar的编译文件,用这个文件替换掉部署到tomcat下的nutch-1.2的WEB-INF/lib中的同名文件。

然后在对将paoding.jar复制到lib下,将dict复制到classes下,将paoding-*的六个关于庖丁的配置文件复制到classes下,修改paoding-dic-home.properties配置文件中的paoding.dic.home修改为dict的绝对路径值

paoding.dic.home=/usr/local/tomcat/webapps/nutch-1.2/WEB-INF/classes/dict/

重新启动tomcat就完成了nutch查询部分的分词器添加工作。
paoding.dic.home=/usr/local/tomcat/webapps/nutch-1.2/WEB-INF/classes/dict/

 

你可能感兴趣的:(如何修改nutch的分词器(添加paoding分词器))