Lucene系列-索引文件
来源:互联网 发布:linux ftp目录设置 编辑:程序博客网 时间:2024/05/16 07:13
本文介绍下lucene生成的索引有哪些文件组成,每个文件包含了什么信息。基于Lucene 4.10.0。
数据结构
索引(index)包含了存储的文档(document)正排、倒排信息,用于文本搜索。索引又分为多个段(segments),每个新添加的doc都会存到一个新segment中,不同的segments又会合并成一个segment。segment存储着具体的documents,每个doc有一系列的字段(field)组成,一个field的值是多个词(term),一个term是以一些bytes。其递进关系如下:
index -> segments -> documents -> fields -> terms
文件介绍
全局性文件
segments_N: 记录索引的段数、各段名、各段中文档数、删除数和更新数。可能有多个segments_N文件,最大N的segments_N是有效文件。
segments.gen: 记录当前index的代数(generation),即segments_N的最大N
write.log:阻止多个IndexWriter同时修改索引,一次只能有一个IndexWriter
段文件
- 段描述
xxx.si: 段的元数据,如此段的文档数及相关文件
xxx.del:删除的doc - field信息
xxx.fnm:field names,field名称、索引方式
xxx.fdx:field index,索引xxx.fdt
xxx.fdt:field data,存储stored fields - term信息
xxx.tip:term index,xxx.tim的索引,实现对xxx.tim的随机存取
xxx.tim:term dictionary,按字典顺序排列的terms,其值指向.doc/.pos
xxx.doc:倒排列表,term所在的docs、在doc中的频率
xxx.pos:倒排列表,term在doc中的位置
xxx.pay:payloads and offsets,term在doc中的offset
注意:term的位置及频率都是在某doc下term在field中的位置和偏移,位置以切词为单位,偏移以字符为单位 - term vector
term vector用于打分,存储StoreTermVectors的field
xxx.tvx:term vector index,每个doc在xx.tvd、xx.tvf中的位置
xxx.tvd:term vector data file,每个doc的term vector field信息在xxx.tvf中的位置
xxx.tvf:term vector fields,field的term列表及各term的频率、位置或者偏移 - 归一化
lucene为doc算分时根据各doc中的term weight(term对doc的重要性),但是不同的doc重要性不同、不同的field重要性不同、不同的文档长度也不同,要想让不同文档的term weight之间有可比性(打分有可比性)需要进行归一化。用于归一化的因子(normalization factors),如doc和field的boost factor及长度,存在如下文件中。
xxx.nvm:norms metadata
xxx.nvd:norms data - doc values
存储DocValues类型的field,通过field value可以获取对应的doc number列表, 便于进行一些概括或者打分。类型为docvalue的field在doc不能重名。
xxx.dvm:DocValues metadata
xxx.dvd:DocValues data
总结
从上节可以看出正排信息存储在:段(segments_N) -> field (.fnm/.fdx/.fdt) -> term (./tvx/.tvd/.tvf)
倒排信息存储在:词典(.tim) ->倒排表(.doc/.pos)
参考见:
https://lucene.apache.org/core/4_10_0/core/org/apache/lucene/codecs/lucene410/package-summary.html#package_description
https://lucene.apache.org/core/3_0_3/fileformats.html
http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623597.html
- Lucene系列-索引文件
- lucene的索引文件
- lucene的索引文件
- Lucene索引文件示例
- lucene 索引文件简介
- lucene的索引文件结构
- 深入Lucene的索引文件
- lucene生成索引相关文件
- lucene索引文件检测CheckIndex
- lucene搜索引擎(文件索引、数据库索引)
- lucene搜索引擎(文件索引、数据库索引)
- 通过Lucene索引文件学习Lucene索引过程
- Lucene.net索引的用法、系列、文档
- Lucene深入学习(8)Lucene的索引文件
- 使用lucene生成html文件索引
- lucene.net索引文件存储简析
- lucene多索引文件并行查询
- Lucene 源码剖析 一 索引文件概述
- 第一篇博客文章——C语言
- 分享_微博授权返回出现相同的分享界面
- [Play Framework]Manipulating Results——操作结果
- ubuntu安装samba和ssh, ftp
- 基于Protobuf的通讯库--Poppy简介
- Lucene系列-索引文件
- 很久没写博客了!今天来写个八方向摇杆基于quick cocos2d
- res:资源文件的配置文件
- 使用VS2010连接SQL Server 2008数据库混合编程以实现对数据库的操作
- iOS AutoLayout(4)
- 激光水位计在城市道路积水监测中的应用——武汉新烽光电科技有限公司
- 分享一个需要拍照的界面可以直接继承的Activity,附带详细注解
- FileZilla Server的安装和设置
- 二分法 Pow(x, n)