lucene 学习笔记之飞龙在天
在看完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.作者投稿可能会经我们编辑修改或补充。