孔浩老师 Lucene 视频教程学习笔记(第3讲)

孔浩老师Lucene学习笔记
第3讲 Lucene索引
这一节课孔老师为我们写了一个用户创建索引的工具类IndexUtil.java。
其实我们的Lucene就是创建索引,分词,然后搜索,我们就是一直在颠来倒去地做这几件事情。
文档(Document)和域(Field)的概念很重要,我们是为文档添加域。
事实上,我们的Document类类似于数据表里的一条记录,而我们的Field类似于数据表的字段。
需要重点了解的两个概念。
1、域存储(Store)选项
Field.Store.YES或者NO表示这个类是否可以被还原,即是否可以使用Document类的get()方法获取到原来的值。
我们的最佳实践是:(一张表格,第1列是域索引选项,第2列是域存储选项)。
孔浩老师 Lucene 视频教程学习笔记(第3讲)_第1张图片
2、域索引选项
(1)ANALYZED:进行分词,并且进行索引,例如文章的标题、文章的内容;
(2)NOT_ANALYZED:不分词,但是进行索引;
(3)ANALYZED_NOT_NORMS:分词,但不存储norms的信息;
说明:norms是一个用于排序的评分规则(类似于创建索引的时间和权值)。
(4)NOT_ANALYZED_NOT_NORMS:不分词,也不存储norms的信息;
(5)NO:不进行索引。
孔浩老师说学到这个时候了就一定要熟悉导入源代码的过程。
生成的索引我们可以看到以下几类文件:
fnm:存储Field的信息;
fdt和fdx:存储store为yes的一些具体的值;
frq:用于评分和排序;
nrm:用于存储评分的信息;
prx:表示偏移量;
(重要)tii、tis专门用于存储索引里所有的内容信息。

你可能感兴趣的:(Lucene)