论坛首页 Java企业应用论坛

nutch1.2中加入中文分词以及搜索错误解决

浏览 2072 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-02  

在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.

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics