相关的类调用关系
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. [Python爬虫] 之八:Selenium +phantomjs抓取微博数据

    基本思路:在登录状态下,打开首页,利用高级搜索框输入需要查询的条件,点击搜索链接进行搜索.如果数据有多页,每页数据是20条件,读取页数 然后循环页数,对每页数据进行抓取数据. 在实践过程中发现一个问题 ...

  2. jQuery几个经典表单应用整理回想

    1.文本框获得(失去)焦点 当文本框获得输入焦点时,将该文本框高亮显示,算不得一个应用.仅仅是一个小技巧,能够提高用户体验. [html] view plaincopy <span style= ...

  3. Android之GPS定位详解

    一.LocationManager LocationMangager,位置管理器.要想操作定位相关设备,必须先定义个LocationManager.我们可以通过如下代码创建LocationManger ...

  4. Quartz.NET——作业调度组件

    之前有个旧同事说他在项目中碰到某些功能需要使用到作业调度,于是找到了这个组件,据说相当好用,叫我有时间的话去了解一下.哈,于是小了解了一下,基本的使用算是明白了,深层次的东西就不了解了,本文简单记录一 ...

  5. taro CSS Modules 的使用

    Taro 中内置了 CSS Modules 的支持,但默认是关闭的,如果需要开启使用,请先在编译配置中添加如下配置. 小程序端开启 weapp: { module: { postcss: { // c ...

  6. ng-class

    在前面Angularjs开发一些经验总结中我们说到在angular开发中angular controller never 包含DOM元素(html/css),在controller需要一个简单的POJ ...

  7. hunnu11546:Sum of f(x)

    Problem description   令f(x)为x的全部约数之和,x的约数即能够被x整除的数.如f(24)=1+2+3+4+6+8+12+24=60),求 f(l) + f(l + 1) + ...

  8. iOS中使用iCloud一些须要注意的地方(Xcode7.2)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 在自己的App中怎样使用iCloud有非常多文章能够查阅,这里 ...

  9. excel 根据单元格内容自动调整列宽

      excel 根据单元格内容自动调整列宽 CreateTime--2018年5月28日08:49:40 Author:Marydon 1.情景展示 单元格宽度超过了列宽 2.解决方案 第一步:同时选 ...

  10. Android 图片混排富文本编辑器控件

    概述 一个Android 图片混排富文本编辑器控件(仿兴趣部落) 详细 代码下载:http://www.demodashi.com/demo/12032.html 一.一个Android 图片混排富文 ...