1、介绍
lucene默认自带的分词器对中文支持并不好,所以对于中文索引的分词器,建议使用第三方开源的中文分词器。
2、常见分词器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| private String testText = "解决:就是指定paoding 的一个字典文件目录,这个文件在下载下来的压缩包中的dic中";
public Analyzer getAnalyzer() { Analyzer analyzer = null; analyzer = new StandardAnalyzer();
return analyzer; } @Test public void tokenTest() throws Exception { Analyzer analyzer = getAnalyzer(); TokenStream ts = analyzer.tokenStream("myfield", testText); OffsetAttribute offsetAtt = ts.addAttribute(OffsetAttribute.class); ts.reset(); while (ts.incrementToken()) { System.out.println(offsetAtt.toString()); } ts.end(); ts.close(); }
|
3、第三方中文分词器
第三方中文分词器ansj对于中文的分词效果较好,建议使用。
ansj_lucene5_plug-5.1.1.2.jar
ansj_seg-5.1.1.jar
nlp-lang-1.7.2.jar
下载链接
1 2 3 4
| public Analyzer getAnalyzer() { Analyzer analyzer = new AnsjAnalyzer(TYPE.index_ansj); return analyzer; }
|