生成的文件如下:
_21.f1,_21.f2,依次类推,扩展名根据文件排序;
_21.fdt;
_21.fdx; *.fdt和*.fdx构成了域值存储表;
_21.fnm; 记录了域集合信息;
_21.frq; 记录了项的位置;
_21.prx; 记录了项频数;
_21.tii;
_21.tis; *.tii和*.tis构成了项字典;
segment1.nrm 记录了标准化因子;
segment1.del 记录了本删除的文档;
segments(无扩展名) 用来保存所有的段的记录;
deletable(无扩展名) 用来保存已删除文件的记录
lock(无扩展名) 用来控制读写的同步
Lucene索引index由若干段(segment)组成,每一段由若干的文档(document)组成,每一个文档由若干的域(field)组成,每一个域由若干的项(term)组成。
项是最小的索引概念单位,它直接代表了一个字符串以及其在文件中的位置、出现次数等信息。
域是一个关联的元组,由一个域名和一个域值组成,域名是一个字串,域值是一个项,比如将“标题”和实际标题的项组成的域。
文档是提取了某个文件中的所有信息之后的结果,这些组成了段,或者称为一个子索引。子索引可以组合为索引,也可以合并为一个新的包含了所有合并项内部元素的子索引。我们可以清楚的看出,Lucene的索引结构在概念上即为传统的倒排索引结构。
从概念上映射到结构中,索引被处理为一个目录(文件夹),其中含有的所有文件即为其内容,这些文件按照所属的段不同分组存放,同组的文件拥
有相同的文件名,不同的扩展名。此外还有三个文件,分别用来保存所有的段的记录、保存已删除文件的记录和控制读写的同步,它们分别是segments,deletable和lock文件,都没有扩展名。每个段包含一组文件,它们的文件扩展名不同,但是文件名均为记录在文件segments中段的名字每个段的文件中,主要记录了两大类的信息:域集合与项集合。由于索引信息是静态存储的,域集合与项集合中的文件组采用了一种类似的存储办法:一个小型的索引文件,运行时载入内存;一个对应于索引文件的实际信息文件,可以按照索引中指示的偏移量随机访问;索引文件与信息文件在记录的排列顺序上存在隐式的对应关系,即索引文件中按照“索引项1、索引项2…”排列,则信息文件则也按照“信息项1、信息项2…”排列。比如在图3.2所示文件中,segment1.fdx与segment1.fdt之间,segment1.tii与segment1.tis、segment1.prx、segment1.frq之间,都存在这样的组织关系。而域集合与项集合之间则通过域的在域记录文件(比如segment1.fnm)中所记录的域记录号维持对应关系,segment1.fdx与segment1.tii中就是通过这种方式保持联系。这样,域集合和项集合不仅仅联系起来,而且其中的文件之间也相互联系起来。此外,标准化因子文件和被删除文档文件则提供了一些程序内部的辅助设施(标准化因子用在评分排序机制中,被删除文档是一种伪删除手段)。这样,整个段的索引信息就通过这些文档有机的组成。 以上所阐述的,就是Lucene所采用的索引文件格式。基本上而言,它是一个倒排索引,但是Lucene在文件的安排上做了一些努力,比如使用索引/信息文件的方式,从文件安排的形式上提高查找的效率。这是一种数据库之外的处理方法,其有其优点(格式平台独立、速度快),也有其缺点(独立性带来的共享访问接口问题等等),具体如何衡量两种方法之间的利弊,本文这里就不讨论了。
摘自一位朋友,并作了一些整理
分享到:
相关推荐
lucene索引文件格式介绍,很详细,每一个文件都解释了,一目了然,做项目用的
Lucene索引文件格式,本文定义了Lucene(版本1.3)用到的索引文件的格式。
Lucene是用java实现的、成熟的开源项目,是著名的Apache Jakarta大家庭的一员,并且基于Apache软件许可 [ASF, License]。同样,Lucene是当前非常流行的、免费的Java信息搜索(IR)库。Lucene从问世之后,引发了开放源...
这是Lucene3.0索引查看文件 直接运行jar包就可以打开ui界面 陪好路径就可以使用了
基于lucene的文件管理系统
lukeall,Lucene索引文件查看工具可支持Lucene4.7版本的索引查看,直接双击打开,选择索引目录进行使用
data.rar学习lucene需要的数据文件 data.rar学习lucene需要的数据文件
这是一个实现Lucene全文搜索多种文件格式的一个小项目。包括对搜索到得内容中的搜索字进行高亮显示,就是实现像百度那样对搜索的关键字标红。
lucene实现文件检索Demo,
第一个是 FSDirectory,它表示一个存储在文件系统中的索引的位置。 第二个是 RAMDirectory,它表示一个存储在内存当中的索引的位置。 public void add(Query query, BooleanClause.Occur occur) BooleanClause...
Lucene学习总结之三:Lucene的索引文件格式(1) Lucene学习总结之三:Lucene的索引文件格式(2) Lucene学习总结之三:Lucene的索引文件格式(3) Lucene学习总结之四:Lucene索引过程分析(1) Lucene学习总结之...
Lucene.Net 文件检索doc,xls,ppt,txt,pdf文件(实例),对需要文件检索的朋友很有帮助,10分很值的
Lucene创建索引,查询索引的简单使用。
lucene 对 xml建立索引 建立索引就是怎么简单 呵呵
一款基于Lucene开发的文件检索系统,支持Word、txt、Html等文本文件的检索,可以进行扩展,使之实现对其他文件的检索。
luke源码--查看lucene索引文件
最后,虽然Lucene使用Java语言写成,但是开放源代码社区的程序员正在不懈的将之使用各种传统语言实现(例如.net framework[14]),在遵守Lucene索引文件格式的基础上,使得Lucene能够运行在各种各样的平台上,系统...
Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。 从之前发布其他chm文件下载用户的反映看,有不少朋友反映下载后...
基于lucene的文件管理系统(完善版,含jar包)
NULL 博文链接:https://cxl2012.iteye.com/blog/2233035