-
Lucene-12-lucene 搜索之 IndexSearcher 实现分页查询
IndexSearcher 常用方法
文档信息本身
IndexSearcher.doc(int docID) 获取索引文件中的第n个索引存储的相关字段,返回为Document类型,可以据此读取document中的Field.STORE.YES的字段;
IndexSearcher.doc(int docID, StoredFieldVisitor fieldVisitor) 获取S...
2022-01-10 13:01:55 |
Lucene
-
Lucene-11-lucene 搜索之 IndexSearcher 构建过程
IndexSearcher
搜索引擎的构建分为索引内容和查询索引两个大方面,这里要介绍的是lucene索引查询器即IndexSearcher的构建过程;
首先了解下IndexSearcher:
IndexSearcher提供了对单个IndexReader的查询实现;
我们对索引的查询,可以通过调用search(Query,n)或者search(Query,Filter,n)方法;
...
2022-01-10 13:01:55 |
Lucene
-
Lucene-10-lucene 的索引构建原理
lucene创建索引的原理
IndexWriter的addDocument方法详解
今天看了IndexWriter类的addDocument方法,IndexWriter对此方法的说明如下:
将文档添加到此索引。
请注意,如果遇到异常(例如磁盘已满),则索引将保持一致,但可能尚未添加此文档。
此外,即使使用复合文件(当合并部分成功时),索引也可能有一个非复合格式的段。
此方法定期...
2022-01-10 13:01:55 |
Lucene
-
Lucene-09-segment 中文分词
为什么要使用lucene中文分词器
在lucene的开发过程中,我们常会遇到分词时中文识别的问题,lucene提供了 lucene-analyzers-common.jar 包来支持分词,但多的是对英国,法国,意大利等过语言的支持,
因此我们需要引入中文分词的概念。
各种中文分词器及其对比
jcseg 中文分词器
jcseg 是使用Java开发的一款开源的中文分词器, 使用mmse...
2022-01-10 13:01:55 |
Lucene
-
Lucene-08-analysis 分析器
analysis说明
lucene ananlysis应用场景
lucene提供了analysis用来将文本转换到索引文件或提供给IndexSearcher查询索引;
对于lucene而言,不管是索引还是检索,都是针对于纯文本输入来讲的;
通过lucene的强大类库我们可以访问各种格式的文档,如HTML、XML、PDF、Word、TXT等,
我们需要传递给lucene的只是文件中的...
2022-01-10 13:01:55 |
Lucene
-
Lucene-07-field 字段类型
Lucene的Field说明
Lucene存储对象是以document为存储单元,对象中相关的属性值则存放到Field中;
lucene中所有Field都是IndexableField接口的实现
接口
表示用于索引的单个字段。 IndexWriter 使用 Iterable<IndexableField> 作为文档。
public interface Indexable...
2022-01-10 13:01:55 |
Lucene
-
Lucene-06-IndexWriter 详解
Lucene 索引创建
构建过程
索引的构建过程描述如下:
1)判断JRE版本是否为64位和是否支持堆外内存,并创建
1.1 如果满足条件,创建MMapDirectory,此种Directory可以有效的利用虚拟机内存地址空间 ;
1.2 如果不满足以上条件,判断系统是否是windows,如果满足条件,创建SimpleFSDirectory,此种directory提供了性能不太...
2022-01-10 13:01:55 |
Lucene
-
Lucene-05-的总体架构
Lucene 的整体结构
在 Lucene in action 中,Lucene 的构架和过程如下图,
说明Lucene是有索引和搜索的两个过程,包含索引创建,索引,搜索三个要点。
让我们更细一些看 Lucene 的各组件:
被索引的文档用Document对象表示。
IndexWriter通过函数addDocument将文档添加到索引中,实现创建索引的过程。
Lucene...
2022-01-10 13:01:55 |
Lucene