lucene 学习笔记之飞龙在天

无情 阅读:647 2021-03-31 21:45:09 评论:0

在看完LuceneOne 的Demo 后,我们接下来将重点分析《Lucene 存储域和索引选项》

回顾LuceneOne 在创建索引的一段代码:

                  Document document = new Document(); 
		  Field idField = new Field("id",article.getId().toString(),Store.YES,Index.NOT_ANALYZED); 
		  Field titleField = new Field("title",article.getTitle(),Store.YES,Index.ANALYZED); 
		  Field contentField = new Field("content",article.getContent(),Store.YES,Index.ANALYZED); 
		  document.add(idField); 
		  document.add(titleField); 
		  document.add(contentField);


这段代码的含义:

<1>、创建文档对象Document

<2>、创建文档对象属性Field

<3>、文档对象Document添加相关文档对象属性Field.


请大家注意:在创建每个文档对象属性Field是,我们都会为每个Field 指定存储域(Store)和索引选项(Index),接下来我们就来见识一下:Store和Index


Field.Store.Yes或者No(存储域选项)

Field.Store设置为Yes, 表示指定的文档对象属性值,完全存储到文件中,方便进行文本的还原操作。

Field.Store设置为No,表示指定的文档对象属性值,不存储到文件中,但可以被索引,内容无法还原。


Field.Index(索引选项)

Field.Index.ANALYZED:进行索引,且分词。主要使用于:文章标题、文章内容,等模糊检索。

Field.Index.NOT_ANALYZED :进行索引,但不进行分词。 主要使用于:用户ID、身份证号、用户姓名等,使用于精确检索。

Field.Index.ANALYZED_NOT_NORMS   :进行分词但不存储到norms        norms是一块特性存储空间,主要存储创建索引时间和权值等信息。

Field.Index.NOT_ANALYZED_NOT_NORMS :即不分词也不存储norms

Fidle.Index.NOT  :不进行索引


今天的重点已经讲解完毕,如果存在什么疑问,我会在以后的文章中一一补充完整。




声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号