自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

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