1·通知
网上的东西对自己集成插件只具有参考性,不具有指导性,要根据具体情况、具体所引用的包来具体对待。
2·步骤
2·1·对myeclipse中项目的组织结构的了解。
在该项目中,
是folder,folder只是方便开发人员进行组织管理的,其中的内容还不能作为项目运行的内容。只有sourceFolder中的内容才能当做真正的项目内容。前者往后者的转换,得在folder上右击,选择buildpath——>use as source Folder。
2·2·管理分词插件
(1)
下建立一个folder,folder名为analysis-zh。在
analysis-zh下,建立
如下层次结构的folder
,(
具体folder名根据实际情况而言)。在最底层的folder,建立file文件,名为:ChineseAnalyzer.java,该java文件继承了NutchAnalyzer抽象类。对于该类的了解,有待开发,现在只是将具体步骤写出。
(2)将
添加到analysis-zh包下。
(3)将含有ChineseAnalyzer.java的包,改为sourceFolder。选中src——》右击——》use as sourceFolder.
(4)对上一步产生的sourcefolder打包。步骤如下:右击sourceFolder,选中
,右击——》export——》Java-JavaFile——》next——》选择
,
——》next——》next——》
。
(5)建立一个plugin.xml文件。
(6)在ConfAndPlugins——》plugins下,新建包analysis-zh,将plugin-src下的analysis-zh下的IKAnalyzser.jar、analysis-zh.jar、plugin.xml复制到该包中。
2·2·修改代码
2·2·1修改analysis包下的NutchDocumentAnalyze.修改情况如下:
(1)public static final int INTER_ANCHOR_GAP = 4;
/** Analyzer used to analyze anchors. */
private static Analyzer ANCHOR_ANALYZER;处添加private static Analyzer IK_ANALYZER;
(2) public NutchDocumentAnalyzer(Configuration conf)函数处添加IK_ANALYZER=new IKAnalyzer();
(3)public TokenStream tokenStream(String fieldName, Reader reader)处注释掉
// if ("anchor".equals(fieldName))
// analyzer = ANCHOR_ANALYZER;
// else
// analyzer = CONTENT_ANALYZER;
添加
analyzer=IK_ANALYZER;
2·2·2修改analysis下的NutchAnalysis.java。具体修改步骤,先不谈,反正将已经施行的版本中的赋值粘贴过来就行了。
2·3·为NutchBean添加main()方法。
将已经施行了的版本的NutchBean的main方法拷过来即可。具体,main()方法的实现过程则先不谈。
3·测试
3·1说明:测试是用Searcher/NutchBean中进行,因为NutchBean是用来测试查询的,查询必要用到分词,所以可以查看分词效果如何。
3·2实施
(1)注释掉main中的以下代码:
// if (args.length == 0) {
// System.err.println(usage);
// System.exit(-1);
// }
(2)配置runConfiguration中的参数,可以赋以任意两个值。因为main方法中有args[0] =;args[1] = ;赋值时用来启动这两个参数。
(3)配置索引文件路径。在args[1]中用来配置索引文件的路径。在本例中为,
args[1] = "/nutch/indexandanalyzer/test";我的配置文件的范围在E\nutch\indexandanalyzer\test路径下。而workspace在E:盘符下。\指代的是workspace的根路径。所以文件路径可以采用如上的配置。
(4)实施观察。在main函数的Hits下设置断点,然后debug。在variables下的query中可以看到分词的效果。(若没有variable,则再windows——>show view——>other中查找)。