lucene
文章平均质量分 80
yuechao_liu
这个作者很懒,什么都没留下…
展开
-
Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。当我们真正进入到Lucene源代码之中的时候,我们会发现:Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程。Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(score)的过程。本文详细解读了转载 2012-04-09 10:42:46 · 180 阅读 · 0 评论 -
Lucene学习总结之七:Lucene搜索过程解析(6)
2.4、搜索查询对象 2.4.4、收集文档结果集合及计算打分在函数IndexSearcher.search(Weight, Filter, int) 中,有如下代码:TopScoreDocCollector collector = TopScoreDocCollector.create(nDocs, !weight.scoresDocsOutOfOrder()转载 2012-04-09 13:58:08 · 194 阅读 · 0 评论 -
Lucene学习总结之七:Lucene搜索过程解析(5)
2.4、搜索查询对象 2.4.3、进行倒排表合并在得到了Scorer对象树以及SumScorer对象树后,便是倒排表的合并以及打分计算的过程。合并倒排表在此节中进行分析,而Scorer对象树来进行打分的计算则在下一节分析。BooleanScorer2.score(Collector) 代码如下:public void score(Co转载 2012-04-09 13:57:29 · 186 阅读 · 0 评论 -
Lucene学习总结之七:Lucene搜索过程解析
本系列文章将详细描述几乎最新版本的Lucene的基本原理和代码分析。其中总体架构和索引文件格式是Lucene 2.9的,索引过程分析是Lucene 3.0的。鉴于索引文件格式没有太大变化,因而原文没有更新,原理和架构的文章中引用了前辈的一些图,可能属于早期的Lucene,但不影响对原理和架构的理解。本系列文章尚在撰写之中,将会有Java CC, 分词器,QueryParse转载 2012-04-09 13:58:54 · 198 阅读 · 0 评论 -
Lucene学习总结之四:Lucene索引过程分析(2)
3、将文档加入IndexWriter代码:writer.addDocument(doc); -->IndexWriter.addDocument(Document doc, Analyzer analyzer) -->doFlush = docWriter.addDocument(doc, analyzer); --> Docu转载 2012-04-09 13:54:26 · 215 阅读 · 0 评论 -
Lucene学习总结之四:Lucene索引过程分析(1)
对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析。Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:《Annotated Lucene》,好像中文名称叫《Lucene源码剖析》是很不错的。想要转载 2012-04-09 13:52:22 · 186 阅读 · 0 评论 -
Lucene学习总结之四:Lucene索引过程分析(4)
6、关闭IndexWriter对象代码:writer.close();--> IndexWriter.closeInternal(boolean) --> (1) 将索引信息由内存写入磁盘: flush(waitForMerges, true, true); --> (2) 进行段合并: mergeScheduler.mer转载 2012-04-09 13:55:55 · 234 阅读 · 0 评论 -
Lucene学习总结之四:Lucene索引过程分析(3)
5、DocumentsWriter对CharBlockPool,ByteBlockPool,IntBlockPool的缓存管理在索引的过程中,DocumentsWriter将词信息(term)存储在CharBlockPool中,将文档号(doc ID),词频(freq)和位置(prox)信息存储在ByteBlockPool中。在ByteBlockPool中,缓存是分块(slice)分配的,转载 2012-04-09 13:55:09 · 228 阅读 · 0 评论 -
Lucene学习总结之三:Lucene的索引文件格式(3)
四、具体格式4.2. 反向信息反向信息是索引文件的核心,也即反向索引。反向索引包括两部分,左面是词典(Term Dictionary),右面是倒排表(Posting List)。在Lucene中,这两部分是分文件存储的,词典是存储在tii,tis中的,倒排表又包括两部分,一部分是文档号及词频,保存在frq中,一部分是词的位置信息,保存在prx中。Te转载 2012-04-09 13:51:40 · 161 阅读 · 0 评论 -
Lucene学习总结之二:Lucene的总体架构
Lucene总的来说是:一个高效的,可扩展的,全文检索库。全部用Java实现,无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。在Lucene in action中,Lucene 的构架和过程如下图,说明Lucene是有索引和搜索的两个过程,包含索引创建,索引,搜索三个要点。转载 2012-04-09 10:41:52 · 177 阅读 · 0 评论 -
Lucene学习总结之一:全文检索的基本原理
一、总论根据http://lucene.apache.org/java/docs/index.html定义:Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据和非结构化数据。结构化数据:指具有固定格式或转载 2012-04-09 10:39:35 · 360 阅读 · 0 评论 -
Lucene学习总结之三:Lucene的索引文件格式(2)
四、具体格式上面曾经交代过,Lucene保存了从Index到Segment到Document到Field一直到Term的正向信息,也包括了从Term到Document映射的反向信息,还有其他一些Lucene特有的信息。下面对这三种信息一一介绍。4.1. 正向信息Index –> Segments (segments.gen, segments_N) –> Field(fnm,转载 2012-04-09 10:44:01 · 201 阅读 · 0 评论 -
Lucene Scoring 评分机制
版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.原文出处:http://blog.chenlb.com/2009/08/lucene-scoring-architecture.htmlLucene 评分体系/机制(lucene scoring)是 Lucene 出名的一核心部分。它对用户来说隐藏了很多复杂的细节,致使用户可以转载 2012-04-23 17:31:59 · 173 阅读 · 0 评论