nutch1.2中加入中文分词以及搜索错误解决
在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.