lucene文件格式分析
核心提示:segment每个segment代表lucene一个完整的索引段。通常一个索引中包含了多个segment。每个segment都有统一的前缀,前缀名由Document的数量转成36进制后,在前面加“_”而构成的。通常一个完整索引中,有且只有一个没有后缀名的segment文件,它记录了当前索引中所有的s...
segment
每个segment代表lucene一个完整的索引段。通常一个索引中包含了多个segment。每个segment都有统一的前缀,前缀名由 Document的数量转成36进制后,在前面加“_”而构成的。通常一个完整索引中,有且只有一个没有后缀名的segment文件,它记录了当前索引中所有的segment的信息。
.fnm
此文件包含了Document中的所有field名称
.fdx和.fdt
是综合使用的两类文件,其中.fdt存储了设置了Store.YES属性的field 的数据。而.fdx是一个索引,存储Document在.fdt中的位置
.tii和.tis
.tis存储分词后的词条(term),而.tii就是它的索引文件,表明了每个.tis文件中词条的位置
deletable
作用相当于回收站,当文档在被删除后,会首先在deletable中保留一条记录,要真正删除时,才将索引移出
复合索引格式.cfs
在IndexWriter中有个属性useCompoundFile,默认为 true即默认采用复合索引格式保存索引的,其含义是是否用复合索引格式来保存索引。索引的内容可能非常大文件可能非常多,如各这样系统打开文件数量巨大将消耗系统大量资源。因此lucene提供能一种单一索引格式。
Lucene索引及文件的相关含义:
Term:项。为分词后最小单位,具体和使用的分析器有关,Lucene内置为单字。
Field:域。相当于数据库表的字段。
Document:文档。域信息的集合。
Segment:段。一个完整定1索引。
文件名称:segments_N,N为36进制数。
说明:在一个索引目录中,至少存在一个Segments文件,但可索引活动的只会有一个:N值最大的。其他的Segments文件可能为临时文件,一般情况是索引修改进程没有完成。
文件名称 后缀名称 说明
segments_N 段,表示一个完整独立的索引;N为36进制数
segments .gen segments辅助文件,主要用来生成计数
SegmentName .fnm 域集合信息文件
SegmentName .fdt 域值信息文件
SegmentName .tis 项信息文件
SegmentName .tii 项信息索引文件
SegmentName .frq 项频数文件
SegmentName .prx 项位置信息文件
SegmentName nrm 标准化因子文件
SegmentName .tvx 文档信息索引文件
SegmentName .tvd 文档信息文件
SegmentName ..tvf 每个域项向量信息文件
备注 SegmentName为_N,N为36进制数
2.3 Lucene原始存储数据类型(Primitive Types)
类型名称 说明
Byte 8 byte
UInt32 32 byte四字节无符号整型,高位优先
UInt64 64byte八字节无符号整型,高位优先
VInt 可变长度整型。0-127单字节,128-16383两字节,类推
Chars UNICODE字符串
String 写入格式为:VInt,Chars,字符串长度加字符串
其实从上面的例子就可以看出建立索引就用到Document,IndexWriter,Field。
最简单的步骤就是:
首先分别new 一个Document,IndexWriter,Field
然后用Doument.add()方法加入Field,
其次用IndexWrtier.addDocument()方法加入Document。
最后调用一下IndexWriter.close()方法关闭输入索引,这一步非常的重要只有调用这个方法索引才会被写入索引的目录里,而这是被很多初学的人所忽略的。
分享到:
相关推荐
**lua脚本快速入门手册** LUA是一种轻量级的脚本语言,广泛应用于游戏开发、嵌入式系统以及各种软件中的扩展与配置。对于熟悉C和C++的程序员来说,学习LUA可以极大地提高工作效率,因为它具有简洁的语法、高效的...
总的来说,《Lucene in Action》不仅是一本教程,也是一本参考手册,适合初学者入门,也适合有经验的开发者深入研究。无论你是要为网站添加全文搜索功能,还是想要开发复杂的搜索应用,这本书都会是你宝贵的资源。...
本书《Lucene 3.0 In Action》被誉为是最好的Lucene学习教程,是入门者的福音。下面将详细解析此书提及的关键知识点。 ### Lucene简介 Lucene是一款强大的Java搜索引擎库,它使得任何应用程序添加搜索功能变得异常...
通过以上介绍可以看出,《Lucene In Action》第二版是一本全面介绍了Lucene各个方面的书籍,不仅适合初学者入门学习,也非常适合作为高级开发者的参考手册。无论是想要深入了解Lucene的工作原理还是寻求解决特定问题...
Elasticsearch是一个强大的开源搜索引擎,基于Apache Lucene构建,它具备分布式、RESTful接口、实时搜索、高稳定性、高可靠性以及便捷安装等特性。在云计算环境中,Elasticsearch能够轻松应对大规模数据处理和检索...
这本书是学习如何使用Lucene构建搜索引擎的入门级书籍,对于希望在应用程序中集成搜索功能的开发者来说非常有价值。 ### Apache Lucene简介 Apache Lucene是一个高性能、全功能的文本搜索库,它可以用来为网站或...
lucene_3.6.1_API.CHM MySQL_5.1_zh.chm POI_3.8_API.CHM R.BAT Servlet API[China].chm Servlet-API.chm servlet.chm Spring-Reference_zh_CN.chm spring2.5.5_API.chm Spring3.0.2-RELEASE-API.chm Struts2.chm ...
│ lucene_3.6.1_API.CHM │ MySQL_5.1_zh.chm │ POI_3.8_API.CHM │ Servlet API[China].chm │ Servlet-API.chm │ servlet.chm │ Spring-Reference_zh_CN.chm │ spring2.5.5_API.chm │ Spring3.0.2-RELEASE-...
首先,Elasticsearch是一个基于Lucene构建的开源搜索引擎,它具有水平可扩展性,能够存储大量数据,并提供全文搜索、结构化搜索和分析能力。Elasticsearch的安装包括单机版安装和集群版安装。在安装前,可以通过...
8. 集成LUCENE全文搜索引擎: - 搜索索引创建:提供了创建搜索索引的方法和示例。 - 搜索引擎配置:介绍了搜索引擎的配置,包括文档类型、分析器等。 本手册的最后部分列出了参考资料,用于读者进一步深入探讨和...
**2.3 Lucene用户快速入门** 为了帮助Lucene用户快速上手,下面提供了一个简单的代码样例: ```java public class IKAnalyzerDemo { public static void main(String[] args) throws IOException { // 初始化...
参考文档**和**MySQL5.1参考手册**:这两个文件看似与Solr直接关系不大,但它们提供了Web开发和数据库管理的基础知识,这对于构建基于Solr的全站搜索或者整合Solr与现有系统的应用程序非常有用。 7. **开发工具** ...
Freemaker_入门+深入+开发指南+学习笔记.doc FreeMarker标签中文文档.pdf FreeMarker教程.pdf ibatis开发指南(中文版).pdf java web标签大全.CHM jBPM_4.4_开发指南.pdf jquery1.7 中文手册.chm lucene3.0-api.CHM...