添加庖丁分词器分为两个步骤,首先要在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/