资源描述:
《基于lucene索引结构》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Lucene索引结构任化伟概要基础数据类型逻辑结构物理结构数据流图注意事项基础数据类型以上的数据类型就是Lucene索引文件格式中用到的全部数据类型,由于它们都以字节为基础定义而来,因此保证了是平台无关。概要基础数据类型逻辑结构物理结构数据流图注意事项逻辑结构Lucene索引index由若干段(segment)组成,每一段由若干的文档(document)组成,每一个文档由若干的域(field)组成,每一个域由若干的项(term)组成。项是最小的索引概念单位,它直接代表了一个字符串以及其在文件中的位置、出现次数等信息。概要基础数据类型逻辑结构
2、物理结构数据流图注意事项物理结构Lucene索引文件结构组成Segments文件(一)2.1版前:Segments-->Format,Version,NameCounter,SegCount,SegCount2.1及以上版本:Segments-->Format,Version,NameCounter,SegCount,SegCount2.3及以上
3、版本:Segments-->Format,Version,NameCounter,SegCount,SegCountFormat,NameCounter,SegCount,SegSize,NumField,DocStoreOffset-->UInt32Version,D
4、elGen,NormGen-->UInt64SegName,DocStoreSegment-->StringIsCompoundFile,HasSingleNormFile,DocStoreIsCompoundFile-->ByteSegments文件(二)在1.4版前Format为-1,1.4-2.0版为-2,2.1、2.2版为-3,2.3及以上版本为-4。Format为索引版本变更的标志,在1.4版引入了复合索引(.cfs),在2.1版去除了commit.lock,在2.3版加入了共享存储,所以进行了版本升级。Version:存储的最后
5、一次修改索引的时间NameCounter:用来生成新的segment名称的SegName:在符合索引中的segment的扩展名SegSize:索引中的document的总数量DelGen:标记那些文档被删除了NumField:记录了被删除文档的个数IsCompoundFile:文档是否压缩存储的标志DocStoreOffset,DocStoreSegment,DocStoreIsCompoundFile:如果DocStoreOffset为-1,则segment自己存储文档信息,不在存储DocStoreSegment,DocStoreIsCo
6、mpoundFile信息;否则DocStoreSegment是共享存储文件的名称,DocStoreIsCompoundFile标志了共享文件是否为复合索引文件,DocStoreOffset是文档在共享索引文件中的偏移量。segments.gen文件从2.1版开始存储segments.gen文件segments.gen-->Format,TwiceFormat-->UInt32Generation-->UInt64segments.gen保存了当前段号,可以在最后一个段处理失效时进行回退处理。在分布式环境下由客服端ca
7、che失效导致的异常可以有该机制处理。锁文件(.lock文件)锁文件:用来表示另一个进程在使用索引的文件。1、如果存在“commit.lock”文件,表示有进程在写“segments”文件和删除无用的段索引文件,或者表示有进程在读“segments”文件和打开某些段的文件。在一个进程在读取“segments”文件段信息后,还没来得及打开所有该段的文件前,这个Lock文件可以防止另一个进程删除这些文件。从2.1版本去除了该锁文件。2、如果存在"index.lock"文件,表示有进程在向索引中加入文档,或者是从索引中删除文档。这个文件防止很多文
8、件同时修改一个索引。被删除的文档(.del文件)Deletions(.del)-->ByteCount,BitCount,BitsByteSize,BitCount-->UInt