一、重要类
(1)IndexWriter:索引过程中的核心组件,用于创建新索引或者打开已有索引,以及向索引中添加、删除、更新被索引文档的信息。
(2)Document:代表一些域(field)的集合。
(3)Field及其子类:一个域,如文档创建时间,作者,内容等。
(4)Analyzer:分析器。
(5)Directory:可用于描述Lucene索引的存放位置。
二、文档索引的基本步骤
(1)创建索引库IndexWriter
(2)根据文件创建文档Document
(3)向索引库中写入文档内容
三、索引、Document、Filed之间的关系
多个Filed组成一个Document,多个Document组成一个索引
Document doc = new Document();
Field pathField = new StringField("path", filetoIndex.getPath(),Field.Store.YES);
doc.add(pathField);
writer.addDocument(doc);
四、Field的实现类型
BinaryDocValuesField,
DoubleField,
FloatField,IntField,
LongField,
NumericDocValuesField,
SortedDocValuesField,
SortedSetDocValuesField,
StoredField,
StringField,
TextField
重要:
StringField: A field that is indexed but not tokenized
TextField: A field that is indexed and tokenized
Field.Store.Yes/No
在创建一个Field的时候,需要传入一个参数,用于指定内容是否需要存储到索引中。这些被存储的内容可以在搜索结果中返回,呈现给用户。
五、对富文本(非纯文本)的索引
若需要对此类文本进行索引,需要使用Tika等工具先将其正文内容提取出来,然后再进行索引。