Lucene 学习总结之七-索引流程

1 IndexReader打开索引文件,读取并打开指向索引文件的流。 1.1.1、找到最新的segment_N文件 1.1.2、通过segment_N文件中保存的各个段的信息打开各个段 1.1.3、得到的IndexReader对象如下   2 将查询语句转换为查询对象Query对象树 2.1、创...

2018-08-19 17:59:45

阅读数:60

评论数:0

Lucene学习总结之六:Lucene打分公式的数学推导

在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下。因为Lucene的搜索过程,很重要的一个步骤就是逐步的计算各部分的分数。 Lucene的打分公式非常复杂,如下: 在推导之前,先逐个介绍每部分的意义: t:Term,这里的T...

2018-08-19 16:55:38

阅读数:37

评论数:0

Lucene学习总结之五:Lucene段合并(merge)过程分析

一、段合并过程总论 IndexWriter中与段合并有关的成员变量有:   HashSet<SegmentInfo> mergingSegments = new HashSet<SegmentInfo>(...

2018-08-19 16:45:21

阅读数:77

评论数:0

Lucene学习总结之四:Lucene索引过程分析(4)

6、关闭IndexWriter对象 代码: writer.close(); --> IndexWriter.closeInternal(boolean)       --> (1) 将索引信息由内存写入磁盘: flush(wa...

2018-08-18 17:08:29

阅读数:72

评论数:0

Lucene学习总结之四:Lucene索引过程分析(3)

5、DocumentsWriter对CharBlockPool,ByteBlockPool,IntBlockPool的缓存管理 在索引的过程中,DocumentsWriter将词信息(term)存储在CharBlockPool中,将文档号(doc ID),词频(freq)和位置(prox)信息存...

2018-08-18 17:07:47

阅读数:50

评论数:0

Lucene学习总结之四:Lucene索引过程分析(2)

3、将文档加入IndexWriter 代码: writer.addDocument(doc);  -->IndexWriter.addDocument(Document doc, Analyzer analyzer)       -->d...

2018-08-18 17:06:50

阅读数:27

评论数:0

Lucene学习总结之四:Lucene索引过程分析(1)

对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析。 Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:《...

2018-08-18 15:53:05

阅读数:28

评论数:0

Lucene学习总结之三:Lucene的索引文件格式(2)

四、具体格式 上面曾经交代过,Lucene保存了从Index到Segment到Document到Field一直到Term的正向信息,也包括了从Term到Document映射的反向信息,还有其他一些Lucene特有的信息。下面对这三种信息一一介绍。 4.1. 正向信息 Index –&...

2018-08-18 15:35:10

阅读数:36

评论数:0

Lucene学习总结之三:Lucene的索引文件格式(1)

Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程。 Lucene的搜索过程,就是按照...

2018-08-18 14:58:33

阅读数:22

评论数:0

Lucene学习总结之二:Lucene的总体架构

Lucene总的来说是: 一个高效的,可扩展的,全文检索库。 全部用Java实现,无须配置。 仅支持纯文本文件的索引(Indexing)和搜索(Search)。 不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。 在Lucene in action中,Lucene 的构架和过...

2018-08-18 14:36:52

阅读数:35

评论数:0

Lucene学习总结之一:全文检索的基本原理

一、总论 根据http://lucene.apache.org/java/docs/index.html定义: Lucene是一个高效的,基于Java的全文检索库。 所以在了解Lucene之前要费一番工夫了解一下全文检索。 那么什么叫做全文检索呢?这要从我们生活中的数据说起。 我们生活中...

2018-08-18 14:32:46

阅读数:25

评论数:0

提示
确定要删除当前文章?
取消 删除