- 博客(14)
- 收藏
- 关注
转载 MapReduce:详解Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以在这里
2013-06-25 14:09:09 276
转载 Lucene Scoring 评分机制
版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.原文出处:http://blog.chenlb.com/2009/08/lucene-scoring-architecture.htmlLucene 评分体系/机制(lucene scoring)是 Lucene 出名的一核心部分。它对用户来说隐藏了很多复杂的细节,致使用户可以
2012-04-23 17:31:59 183
转载 Lucene学习总结之七:Lucene搜索过程解析
本系列文章将详细描述几乎最新版本的Lucene的基本原理和代码分析。其中总体架构和索引文件格式是Lucene 2.9的,索引过程分析是Lucene 3.0的。鉴于索引文件格式没有太大变化,因而原文没有更新,原理和架构的文章中引用了前辈的一些图,可能属于早期的Lucene,但不影响对原理和架构的理解。本系列文章尚在撰写之中,将会有Java CC, 分词器,QueryParse
2012-04-09 13:58:54 209
转载 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 210
转载 Lucene学习总结之七:Lucene搜索过程解析(5)
2.4、搜索查询对象 2.4.3、进行倒排表合并在得到了Scorer对象树以及SumScorer对象树后,便是倒排表的合并以及打分计算的过程。合并倒排表在此节中进行分析,而Scorer对象树来进行打分的计算则在下一节分析。BooleanScorer2.score(Collector) 代码如下:public void score(Co
2012-04-09 13:57:29 201
转载 Lucene学习总结之四:Lucene索引过程分析(4)
6、关闭IndexWriter对象代码:writer.close();--> IndexWriter.closeInternal(boolean) --> (1) 将索引信息由内存写入磁盘: flush(waitForMerges, true, true); --> (2) 进行段合并: mergeScheduler.mer
2012-04-09 13:55:55 248
转载 Lucene学习总结之四:Lucene索引过程分析(3)
5、DocumentsWriter对CharBlockPool,ByteBlockPool,IntBlockPool的缓存管理在索引的过程中,DocumentsWriter将词信息(term)存储在CharBlockPool中,将文档号(doc ID),词频(freq)和位置(prox)信息存储在ByteBlockPool中。在ByteBlockPool中,缓存是分块(slice)分配的,
2012-04-09 13:55:09 239
转载 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 227
转载 Lucene学习总结之四:Lucene索引过程分析(1)
对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析。Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:《Annotated Lucene》,好像中文名称叫《Lucene源码剖析》是很不错的。想要
2012-04-09 13:52:22 202
转载 Lucene学习总结之三:Lucene的索引文件格式(3)
四、具体格式4.2. 反向信息反向信息是索引文件的核心,也即反向索引。反向索引包括两部分,左面是词典(Term Dictionary),右面是倒排表(Posting List)。在Lucene中,这两部分是分文件存储的,词典是存储在tii,tis中的,倒排表又包括两部分,一部分是文档号及词频,保存在frq中,一部分是词的位置信息,保存在prx中。Te
2012-04-09 13:51:40 175
转载 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 212
转载 Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。当我们真正进入到Lucene源代码之中的时候,我们会发现:Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程。Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(score)的过程。本文详细解读了
2012-04-09 10:42:46 194
转载 Lucene学习总结之二:Lucene的总体架构
Lucene总的来说是:一个高效的,可扩展的,全文检索库。全部用Java实现,无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。在Lucene in action中,Lucene 的构架和过程如下图,说明Lucene是有索引和搜索的两个过程,包含索引创建,索引,搜索三个要点。
2012-04-09 10:41:52 186
转载 Lucene学习总结之一:全文检索的基本原理
一、总论根据http://lucene.apache.org/java/docs/index.html定义:Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结构化数据和非结构化数据。结构化数据:指具有固定格式或
2012-04-09 10:39:35 371
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人