03.Lucene中的常用类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中的常用类的主要内容,如果未能解决你的问题,请参考以下文章

JS常用代码片段-127个常用罗列-值得收藏

从片段类中的对话框添加项目到recyclerview。

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

C#常用代码片段备忘

常用python日期日志获取内容循环的代码片段

swift常用代码片段