摘要: 2 索引读取阶段 当希望通过一个DocId得到Doc的全部内容,那么就需要对fdx/fdt文件进行读操作了。具体的代码在CompressingStoredFieldsReader类里面。与CompressingStoredFieldsWriter一样,这些操作都是建立在fdx/fdt文件格式理解的基 阅读全文
posted @ 2017-02-13 20:14 bonelee 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 前言 前言 前言 通常在搜索打分完毕后,IndexSearcher会返回一个docID序列,但是仅仅有docID我们是无法看到存储在索引中的document,这时候就需要通过docID来得到完整Document信息,这个过程就需要对fdx/fdt文件进行读操作。为了更清楚地了解fdx/fdt文件的作 阅读全文
posted @ 2017-02-13 20:13 bonelee 阅读(1264) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/forfuture1978/archive/2010/02/02/1661436.html 4.2. 反向信息 反向信息是索引文件的核心,也即反向索引。 反向索引包括两部分,左面是词典(Term Dictionary),右面是倒排表(Posting 阅读全文
posted @ 2017-02-13 18:08 bonelee 阅读(1753) 评论(0) 推荐(1) 编辑
摘要: 4.1.3. 域(Field)的数据信息(.fdt,.fdx) 域数据文件(fdt): 真正保存存储域(stored field)信息的是fdt文件 在一个段(segment)中总共有segment size篇文档,所以fdt文件中共有segment size个项,每一项保存一篇文档的域的信息 对于 阅读全文
posted @ 2017-02-13 18:00 bonelee 阅读(785) 评论(0) 推荐(0) 编辑
摘要: Most search applications using Apache Lucene assign a unique id, or primary key, to each indexed document. While Lucene itself does not require this ( 阅读全文
posted @ 2017-02-13 17:34 bonelee 阅读(457) 评论(0) 推荐(0) 编辑
摘要: Lucene实现倒排表没有使用bitmap,为了效率,lucene使用了一些策略,具体如下:1. 使用FST保存词典,FST可以实现快速的Seek,这种结构在当查询可以表达成自动机时(PrefixQuery、FuzzyQuery、RegexpQuery等)效率很高。(可以理解成自动机取交集)此种场景 阅读全文
posted @ 2017-02-13 16:43 bonelee 阅读(11123) 评论(0) 推荐(0) 编辑
摘要: 4.1.2. 域(Field)的元数据信息(.fnm) 一个段(Segment)包含多个域,每个域都有一些元数据信息,保存在.fnm文件中,.fnm文件的格式如下: FNMVersion 是fnm文件的版本号,对于Lucene 2.9为-2 FieldsCount 域的数目 一个数组的域(Field 阅读全文
posted @ 2017-02-13 16:11 bonelee 阅读(843) 评论(0) 推荐(0) 编辑
摘要: DocStoreOffset DocStoreSegment DocStoreIsCompoundFile 对于域(Stored Field)和词向量(Term Vector)的存储可以有不同的方式,即可以每个段(Segment)单独存储自己的域和词向量信息,也可以多个段共享域和词向量,把它们存储到 阅读全文
posted @ 2017-02-13 15:54 bonelee 阅读(903) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623599.html 上面曾经交代过,Lucene保存了从Index到Segment到Document到Field一直到Term的正向信息,也包括了从Term到Document映 阅读全文
posted @ 2017-02-13 15:29 bonelee 阅读(1000) 评论(0) 推荐(0) 编辑
摘要: 学习lucene索引文件格式的目的是通过对lucene数据结构的理解,从而为lucene索引实现打下基础。 索引文件的整体结构 如下图,这是整个索引文件的整体结构,可以看到,实际上lucene索引保存下了相当多的东西 但是,单从上面的文件罗列,很难看出来一个整体的结构,那么,接下来这张图就向我们展示 阅读全文
posted @ 2017-02-13 15:21 bonelee 阅读(4340) 评论(0) 推荐(0) 编辑
摘要: 转自:https://yq.aliyun.com/topic/58?spm=5176.100239.blogcont69354.9.MLtp4T 摘要: Facebook最近开源了beringei时序数据库,其是用来解决其内部监控数据存储和查询需求的数据库,特点是读写速度快。beringei在压缩算 阅读全文
posted @ 2017-02-13 10:35 bonelee 阅读(3141) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.infoq.com/cn/news/2017/02/Facebook-Beringei 2017年2月3日,Facebook宣布将开源他们的高性能时序数据存储引擎Beringer。Beringei是用来解决其内部监控数据存储和查询需求的数据库,其特点是读写速度快,属于内存 阅读全文
posted @ 2017-02-13 10:32 bonelee 阅读(1652) 评论(0) 推荐(1) 编辑
摘要: Start the server For a more detailed look, make sure to read the quickstart. $ rethinkdb Import the driver First, start a Python shell: $ python Then, 阅读全文
posted @ 2017-02-13 09:51 bonelee 阅读(1679) 评论(0) 推荐(0) 编辑
摘要: RethinkDB是什么? RethinkDB是新一代的面向文档的数据库存储管理系统,原本是MySQL中针对SSD优化的一个存储引擎,后来脱离了MySQL成为了独立的系统。 数据如何存储在磁盘上? 数据组织成B-Tree,且使用为rethinkdb定制的log-structured形式的存储引擎存储 阅读全文
posted @ 2017-02-13 09:36 bonelee 阅读(1318) 评论(0) 推荐(0) 编辑