原本以为这并不是什么特别难的问题,所以前面一直都没重视,这两天下手感觉好难。网上大多都是比较旧的版本自不必说,最主要的是官方插件虽有源码却没注释,着实令人头大,好在问题也解决了。
先贴一段代码:
Map<String, String> args = new HashMap<String, String>(); args.put("type",AnsjAnalyzer.TYPE.nlp_ansj.name()); args.put(StopLibrary.DEFAULT, "停用词典KEY"); args.put(DicLibrary.DEFAULT, "自定义词典KEY"); args.put(SynonymsLibrary.DEFAULT, "同义词典KEY"); args.put(AmbiguityLibrary.DEFAULT, "歧义词典KEY"); args.put("isNameRecognition", "是否开启人名识别, 默认true"); args.put("isNumRecognition", "是否开启数字识别, 默认true"); args.put("isQuantifierRecognition", "是否开启量词识别, 默认true"); args.put("isRealName", "是否保留原字符, 默认false"); Analyzer analyzer = new AnsjAnalyzer(args); IndexWriterConfig iwc = new IndexWriterConfig(analyzer);
第一步:配置ansj_library.properties文件
stopLibrary=library/newWord,添加停用词典
第二步:修改args.put(StopLibrary.DEFAULT,"停用词典KEY");为
args.put(StopLibrary.DEFAULT,"stopLibrary");
第三步:重新索引
过滤完成!
需要说明的是这些KEY应该是指.properties文件里对应的变量。。。