博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lucene4.3进阶开发之潜龙勿用( 七)
阅读量:7234 次
发布时间:2019-06-29

本文共 1690 字,大约阅读时间需要 5 分钟。

hot3.png

上篇,散仙在修真篇之九里面,介绍了Lucene里面所有的文件格式以及的作用,那么接下来的一系列文章里,将逐个细说,今天我们先来看下lucene索引文件格式里面的老大段文件,以.gen  ,.si为后缀名的文件。

.si是记录段文件的元数据的信息,主要有如下的几个属性 

213534_EPZo_1417419.png

1,SegVersion段的版本号,是段文件创建时的编码版本。 

2,SegSize是指包含在这个段文件里文档数(Document)的总数 

3,IsCompoundFile记录着这个段在写入时,是否被作为一个复合索引文件, 

如果是-1的话,则为正常的段索引文件,为1的话就是复合索引文件 

4,Checksum,检验和,包含所有段文件中的所有字节的CRC32 checksum, 

通常用于验证索引文件的完整性。 

5,Diagnostics,诊断映射,它会私下被IndexWriter写入记录,作为一个Debug时的一个辅助工具,每个段文件都有一个对应的诊断映射,它包含一些元数据,包括一些lucene当前的版本号,操作系统,Java版本,以及它是怎么被创建的,是合并(merge),还是被刷新(flush),还是被多个索引合并(addindex) 

6,Attributes,codec-private属性的键-值映射。 

7,对于这个段来说,它被组成由多个文件 

SegmentInfos这个类,几乎涵盖了段文件里所有的详细信息,提供了大量的方法用于在文件系统上操作段文件,segments_N往往是最活跃的文件,因为最新的段文件,常常面临着频繁的添加操作,这个文件包含了每个段的名字和细节编解码器和一些删除的元数据信息。 

另外一个文件segments.gen,这个文件包含了以_N开头的在当前的段文件的记录,

这个文件仅仅作为一个备份,以防Directy不能准确的定位所写入的当前段文件是那一些以_N开头的,通常仅包含一个int32位的header信息。 

文件: 

segments.gen: GenHeader, Generation, Generation 

segments_N: Header, Version, NameCounter, SegCount, <SegName, SegCodec, DelGen, DeletionCount, FieldInfosGen, UpdatesFiles>SegCount, CommitUserData, Checksum 

数据类型: 

Header---->CodecHeader 

GenHeader, NameCounter, SegCount, DeletionCount --> Int32 

Generation, Version, DelGen, Checksum, FieldInfosGen --> Int64 

SegName, SegCodec --> String 

CommitUserData --> Map<String,String> 

UpdatesFiles --> Set<String> 

介绍: 

Version数量,记录着这个索引所有被添加或删除文档的个数。 

NameCounter ,通常用于生成新的段文件名称 

SegName ,段名称,通常被用于所有组成段文件的前缀名称 

DelGen ,记录着所有段删除文件的数量,如果这个数是-1,则意味 

着没有删除任何记录,除此之外,任何一个大于0的数字,则意味着 

索引已经通过LiveDocsFormat进行了删除存储 

DeletionCount,记录某一个段删除文档的数量 

Checksum,校验和,上文有描述 

SegCodec,是段文件的编码和解码后的名称 

CommitUserData,用来提交一个用户提供不透明的Map结构的数据 

FieldInfosGen ,域信息文件,记录段更新的次数,-1无更新,大于0的数字 

则代表这更新的次数。 

UpdatesFiles,存储在段过被更新过的文件。 

转载于:https://my.oschina.net/heroShane/blog/201956

你可能感兴趣的文章
Ubuntu下安装Vmware workstation
查看>>
Activity的四种启动模式 分类: Android ...
查看>>
TPS、并发用户数、吞吐量关系
查看>>
ps -ef/ps -aux 查看正在活动的进程
查看>>
哈尔滨理工大学第七届程序设计竞赛决赛(网络赛-高年级组)B - 幸运大奖
查看>>
一个好用的ODBC数据库类CMYODBC
查看>>
阿里云系列——1.域名创建(详细步骤)---2015-11.12
查看>>
服务器环境~某个页面无法访问的处理
查看>>
微信缓存以及苹果手机无法返回上一页以及history不识别(前端网备份)
查看>>
centos7 虚拟机安装docker-ce-17.09
查看>>
BZOJ3601 一个人的数论
查看>>
Mysql配置信息
查看>>
运用JS实现放大镜功能
查看>>
POJ 2375
查看>>
20145222黄亚奇《Java程序设计》第4周学习总结
查看>>
maven
查看>>
sublime的使用技巧
查看>>
pinvoke 数据交互笔记
查看>>
C语言之路-2-判断
查看>>
P3807 【模板】卢卡斯定理
查看>>