开发者学堂课程【Lucene 知识精讲与实战(上): CJKAnalyzer】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/700/detail/12342
CJKAnalyzer
CJKAnalyzer 它也叫做中日韩分词器。
它的特点是:支持中日韩文字,CJK 就是这三个国家的缩写,它采用的分词算法比较复杂,它对中文使用二分法分词(假设对“这个支持中日韩文字”进行二分法分词,会分为“这个 个支 支持 持中 中日 日韩 韩文 文字”),会去掉空格、标点符号,大写字母会转换成小写字母。
1.测试
把测试代码进行复制,粘贴到测试类中。
(1)请看以下代码:
/**
*中日韩分词器:使用二分法分词,去掉空格,去掉标点符号,所有大写字母转换成小写字母。
*@throws Exception
*/
@Test
public void TestwhitespaceAnalyzer throws Exception{
//1.创建分词器,分析文档,对文档进行分词
Analyzer analyzer new WhitespaceAnalyzer ();
//2.创建 Directory 对象,声明索引库的位置
Directory directory = FSDirectory.open(Paths.get("E:\\dir"));
//3、创建 IndexwriteConfig 对象,写入索引需要的配置
IndexwriterConfig config = new IndexwriterConfig(analyzer);
//4.创建 Indexwriter 写入对象
Indexwriter indexwriter = new Indexwriter(directory,config);
/5.写入到索引库,通过 Indexwriter 添加文档对象 document
Document doc = new Document
doc.add(new TextField("name","vivo X238GB+128GB 幻夜蓝",Field.Store.YEs));
indexwriter.addDocument (doc);
//6.释放资源
indexwriter.close();
}
(2)演示前先关闭 look 小工具,防止占用磁盘。
(3)如图:
将索引库之前的内容清除。
(4)执行测试代码,如图:
(5)执行完成之后,打开 look 小工具,查看分词好的内容。
如图:
分成了六个词:幻夜、夜蓝、x23、vivo、sgb、128gb 。
可以看到,它的分词效果比之前 Lucene 自带的分词器效果好。但是还是达不到企业执行的效果。
以上就是 CJKAnalyzer 执行的效果。