lucene5(3)分词器

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中";
/**
* 分词器
* @return
*/
public Analyzer getAnalyzer() {
Analyzer analyzer = null;
// 默认分词器
analyzer = new StandardAnalyzer();
// 中日韩语言分词器
// analyzer = new CJKAnalyzer();
// 空格分词器(以空格为分词标准)
// analyzer = new WhitespaceAnalyzer();
// 以标点符号来分隔的分词器
// analyzer = new SimpleAnalyzer();
// 等等
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;
}