在nutch当中加入中文分词。这里我使用的IK_Analyzer
1、下载IKAnalyzer3.2.5Stable.jar。
2、需要修改org.apache.nutch.analysis包下面的NutchDocumentAnalyzer.java的tokenStream方法
2.1 : 加入属性变量 -- private static Analyzer IK_ANALYZER;
2.2 : NutchDocumentAnalyzer 构造方法中 加入 :
IK_ANALYZER = new IKAnalyzer();
2.3 : 在 tokenStream 方法中加入
Analyzer analyzer;
analyzer = IK_ANALYZER;
//以下几行代码必须加上
TokenStream tokenStream = analyzer.tokenStream(fieldName, reader);
tokenStream.addAttribute(TypeAttribute.class);
tokenStream.addAttribute(FlagsAttribute.class);
tokenStream.addAttribute(PayloadAttribute.class);
tokenStream.addAttribute(PositionIncrementAttribute.class);
//如果不加,在search的时候报错,错误如下:
Exception in thread "main" java.lang.IllegalArgumentException: This AttributeSource does not have the attribute 'org.apache.lucene.analysis.tokenattributes.TypeAttribute'.
2.4 : 在这个包下找到org.apache.nutch.analysis.NutchAnalysis.jj
将<SIGRAM: <CJK> >替换为 <SIGRAM: (<CJK>)+ >
然后使用javacc工具编译,可以得到7个**.java文件,把这些文件覆盖这个包下面文件。
2.5 : 编译src/build.xml
加入 <include name="IKAnalyzer3.2.5Stable.jar"/>
3、根目录下 ant.
nutch1.2中加入中文分词以及搜索错误解决
最新推荐文章于 2015-05-31 15:57:30 发布