相关的类调用关系
DocumentsWriterPerThread ——>DocFieldProcessor
 
DocumentsWriterPerThread里的consumer对象(类型是DocFieldProcessor)负责field的内数据的存储
 
1 consumer.processDocument(fieldInfos);
   在存储field内容这方面只是简单的把docid,field和fieldinfo放入子成员storedConsumer里
 
2  consumer.finishDocument();
    会取出要储存域里的数据,放入 bufferedDocs子对象(连续的块内存,CompressingStoredFieldsWriter的子成员)里面,在flush disk的时候在把bufferedDocs内的数据写入磁盘
 
==================================================
DocFieldProcessor 负责 .fdt .fdx .tvd .tvx四个文件的数据写入
 
1 DocFieldProcessor调用TwoStoredFieldsConsumers类的flush方法写fdt .fdx 文件
 
storedConsumer.addField(docState.docID, field, fp.fieldInfo);//storedConsumer把存储的docid,field和info数据存储到自己的类里面
 
storedConsumer.flush(state); 负责.fdt .fdx 文件
 
2DocFieldProcessor调用DocInverter类的flush方法写tvd和tvx文件
consumer.flush(childFields, state);负责.tvd .tvx 文件
 
===================================================================
DocumentsWriterPerThread 
 
/** Flush all pending docs to a new segment */
lucene最重要的flush函数,该函数执行完成以后 所有数据都刷新到磁盘,且产生的临时文件是最多的
FlushedSegment flush() 
 
生成的文件如下
 
-rw-r--r-- 1 bf bf 358 2014-07-11 14:53 _0.cfe
-rw-r--r-- 1 bf bf 958 2014-07-11 14:53 _0.cfs
-rw-r--r-- 1 bf bf 72 2014-07-11 14:53 _0.fdt
-rw-r--r-- 1 bf bf 62 2014-07-11 14:53 _0.fdx
-rw-r--r-- 1 bf bf 138 2014-07-11 14:53 _0.fnm
-rw-r--r-- 1 bf bf 83 2014-07-11 14:53 _0_Lucene41_0.doc
-rw-r--r-- 1 bf bf 50 2014-07-11 14:53 _0_Lucene41_0.pay
-rw-r--r-- 1 bf bf 63 2014-07-11 14:53 _0_Lucene41_0.pos
-rw-r--r-- 1 bf bf 116 2014-07-11 14:53 _0_Lucene41_0.tim
-rw-r--r-- 1 bf bf 81 2014-07-11 14:53 _0_Lucene41_0.tip
-rw-r--r-- 1 bf bf 43 2014-07-11 14:53 _0.nvd
-rw-r--r-- 1 bf bf 62 2014-07-11 14:53 _0.nvm
-rw-r--r-- 1 bf bf 288 2014-07-11 14:53 _0.si
-rw-r--r-- 1 bf bf 79 2014-07-11 14:53 _0.tvd
-rw-r--r-- 1 bf bf 62 2014-07-11 14:53 _0.tvx
-rw-r--r-- 1 bf bf 0 2014-07-11 14:48 write.lock
 

lucene 内存索引存储每个field里内容的相关代码的更多相关文章

  1. lucene 内存索引 和文件索引 合并

    IndexWriter.addIndexes(ramDirectory); http://blog.csdn.net/qq_28042463/article/details/51538283 在luc ...

  2. lucene内存索引库、分词器

    内存索引库 特点 在内存中开辟一块空间,专门为索引库存放.这样有以下几个特征: 1)    因为索引库在内存中,所以访问速度更快. 2)    在程序退出时,索引库中的文件也相应的消失了. 3)    ...

  3. sqlserver 数据库关于存储xml字段里内容的查找与替换

    1.传送门 :   http://www.cnblogs.com/GuoPeng/archive/2009/12/11/1621527.html 2.复制原帖的修改部分: 修改:@xml . modi ...

  4. 【转】Lucene不同版本中Field的Keyword、UnIndex,导致lucene 建立索引总是报错 急!!

    lucene 建立索引 总是报错 急!! http://zhidao.baidu.com/link?url=iaVs9JH4DfN6iwaWImt7VMJENWCWGGaWFGPjqhUw_jz7Fs ...

  5. JS规则 多样化的我(变量赋值)我们使用"="号给变量存储内容,你可以把任何东西存储在变量里,如数值、字符串、布尔值等,

    多样化的我(变量赋值) 我们可以把变量看做一个盒子,盒子用来存放物品,那如何在变量中存储内容呢? 我们使用"="号给变量存储内容,看下面的语句: var mynum = 5 ; / ...

  6. Lucene -- 实时索引

    lucene的实时搜索可以分成:实时和近实时的搜索. 实时只能依靠内存了. 近实时可以用lucene中提供org.apache.lucene.index.DirectoryReader.open(In ...

  7. 如何提高Lucene构建索引的速度

    如何提高Lucene构建索引的速度 hans(汉斯) 2013-01-27 10:12 对于Lucene>=2.3:IndexWriter可以自行根据内存使用来释放缓存.调用writer.set ...

  8. Solr4.8.0源码分析(10)之Lucene的索引文件(3)

    Solr4.8.0源码分析(10)之Lucene的索引文件(3) 1. .si文件 .si文件存储了段的元数据,主要涉及SegmentInfoFormat.java和Segmentinfo.java这 ...

  9. lucene 建立索引的过程

    时间 -- ::  CSDN博客 原文 http://blog.csdn.net/caohaicheng/article/details/ 看lucene主页(http://lucene.apach ...

随机推荐

  1. 【笔记】css 1像素边框

    有时候在移动端显示1像素的边框时 可能因为dpi 的原因造成像素有变差 所以为了达到显示的像素达到预期效果就要编写一个css 通用类达到1像素边框的效果 关于dpi 的解释请看张鑫旭老师的文章:htt ...

  2. linux 的命令 -exec 的使用

    linux中的 exec命令,-exec 后面跟的是linux的 command 命令,exec命令以分号结束‘:’, 该分号前面要放 反斜杠转义 . find . -name jquery.js - ...

  3. Virtualbox中Linux添加新磁盘并创建分区

    原文:https://www.linuxidc.com/Linux/2017-01/139616.htm ----------------------------------------------- ...

  4. x-pack 功能介绍及配置传输层安全性(TLS / SSL)

    x-pack 功能介绍及配置传输层安全性(TLS / SSL) 学习了:https://blog.csdn.net/wfs1994/article/details/80411047

  5. 微软 Windows 10 将支持 8 英寸以下 ARM 平板设备

    2015 年 1 月 24 日,  9:32 下午 - 微软本周展示了 Windows 10 一系列新的改变,也包括首次公开展示的 Windows 10 手机版,但 ARM 平板并没有得到太多提及. ...

  6. Office WPS PPT如何微量调整文本框的位置

    按住Alt键,用鼠标拖动文本框即可以进行微调.    

  7. Python 倒叙切片

    倒序切片 对于list,既然Python支持L[-1]取倒数第一个元素,那么它同样支持倒数切片,试试: >>> L = ['Adam', 'Lisa', 'Bart', 'Paul' ...

  8. ant design pro(一)安装、目录结构、项目加载启动【原始、以及idea开发】

    一.概述 1.1.脚手架概念 编程领域中的“脚手架(Scaffolding)”指的是能够快速搭建项目“骨架”的一类工具.例如大多数的React项目都有src,public,webpack配置文件等等, ...

  9. percona XTRADB Cluster 5.6在ubuntu安装

    installing-perconaXTRADB Cluster 5.6 in-ubuntu-13-10-wheezy First of all, I would recommend login as ...

  10. java 泛型--桥方法

    因为 java 在编译源码时, 会进行 类型擦除, 导致泛型类型被替换限定类型(无限定类型就使用 Object). 因此为保持继承和重载的多态特性, 编译器会生成 桥方法. 本文最后附录所有源码. P ...