7. IKAnalyzer中文分词器
分词方式:细粒度切分 和 最大词长切分,
如下为示例:
IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包
最大词长分词后结果类似如下:
ikanalyzer | 是 | 一个 | 开源 | 的 | 基于 | java | 语言 | 开发 | 的 | 轻量级 | 的 | 中
文 | 分词 | 工具包 |
最细粒度分词后结果类似如下:
ikanalyzer | 是 | 一个 | 一 | 个 | 开源 | 的 | 基于 | java | 语言 | 开发 | 的 | 轻
量级 | 量级 | 的 | 中文 | 分词 | 工具包 | 工具
然后我们需要修改代码里面的分词器为IkAnalyzer而不是StandardAnalyzer
9. 高亮
10. 索引库优化
10.1 indexWriter.optimize()方法使用
新增数据时在提交前使用optimize()方法: 将把产生.cfs的文档和原来的文档压缩并合并为一个
10.2 indexWriter.setMergeFactor()方法使用
关键代码:
//通过设置合并因子合并文件,如下:产生三个cfs文档(包括合并的)将压缩合并成一个
indexWriter.setMergeFactor(3);
10.3 使用内存索引库
10.3.1使用示例说明
主要用来模仿从硬盘索引库读入数据到内存索引库,并从内存索引库读到数据,然后添加数据到内存索引库,再从内存索引库读数据(多了新增的数据),最后把内存索引库的数据写入到硬盘索引库。
关键代码:
//使用硬盘索引库
Directory fsDirectory = Configuration.getDirectory();
//使用内存索引库,将把硬盘库上的相关信息加载到内存,注意:必须要硬盘索引库目录的存在
Directory ramDirectory = new RAMDirectory(fsDirectory);
10.3.2修改操作类