首页 > 代码库 > 03.Lucene中的常用类

03.Lucene中的常用类

Document

Document是文档或者数据的抽象,它包含很多的Field域对象(可以重复),最终是要被持久化保存到索引库中的

Field

Lucene中的域对象,是对原始数据的切割,如:文件名,文件内容,文件大小等。域对象可以指定是否分词,是否索引和是否存储。不分词则会以一个完整的字段出现在索引中(如:商品id、订单号、身份证号等);不索引则不会被检索到,那么分词也没有了意义,但是可以存储(如:文件路径、图片路径等,不用作为查询条件的不用索引);不存储也可以被检索到,这取决于这个Field的内容是否需要被展示(如:大段的简介,长文本信息)。

Lucene不建议我们手动的决定Field的特性,而是封装好了一些域对象给我们
技术分享

IndexWriter

IndexWriter是索引过程的核心组件,通过IndexWriter可以创建新索引、更新索引、删除索引操作。

Directory

Directory描述了索引的存储位置,底层封装了I/O操作,负责对索引进行存储。它的子类常用的包括FSDirectory(在文件系统存储索引)、RAMDirectory(在内存存储索引)。

IndexSearcher和IndexReader

通过IndexSearcher执行搜索,构建IndexSearcher需要IndexReader读取索引目录

技术分享

TopDocs

Lucene搜索结果可通过TopDocs遍历,TopDocs类提供了少量的属性:搜索结果条数和一个包含Document在索引库中id的数组。通过遍历这个数组可以得到具体的文本对象。

Analyzer

Analyzer是一个抽象类,它是Lucene的分析器,可以对Field进行分词处理,并且生成词汇单元来建立索引。在非精确搜索时也需要对搜索关键字进行分词处理。Lucene自带的分析器对中文的支持不是很好,因此我们多使用第三方的分析器。

03.Lucene中的常用类