`

Lucene 索引文件结构分析

阅读更多
首先理解反向索引(Inverted index)这个概念,反向索引是一种以索引项为中心来组织文档的方式,每个索引项指向一个文档序列,这个序列中的文档都包含该索引项。相反,在正向索引中,文档占据了中心的位置,每个文档指向了一个它所包含的索引项的序列。你可以利用反向索引轻松的找到那些文档包含了特定的索引项。Lucene正是使用了反向索引作为其基本的索引结构。


索引文件的逻辑视图

在Lucene 中有索引块的概念,每个索引块包含了一定数目的文档。我们能够对单独的索引块进行检索。下图中显示了 Lucene 索引结构的逻辑视图。索引块的个数由索引的文档的总数以及每个索引块所能包含的最大文档数来决定。

图:索引文件的逻辑视图


Lucene 中的关键索引文件

下面的部分将会分析Lucene中的主要的索引文件,可能分析有些索引文件的时候没有包含文件的所有的字段,但不会影响到对索引文件的理解。

1.索引块文件

这个文件包含了索引中的索引块信息,包含了每个索引块的名字以及大小等信息。表 1 显示了这个文件的结构信息。

表1:索引块文件结构



2.域信息文件

我们知道,索引中的文档由一个或者多个域组成,这个文件包含了每个索引块中的域的信息。表 2 显示了这个文件的结构。

表2:域信息文件结构



3.索引项信息文件

这是索引文件里面最核心的一个文件,它存储了所有的索引项的值以及相关信息,并且以索引项来排序。表 3 显示了这个文件的结构。

表3:索引项信息文件结构



4.频率文件

这个文件包含了包含索引项的文档的列表,以及索引项在每个文档中出现的频率信息。如果Lucene在索引项信息文件中发现有索引项和搜索词相匹配。那么 Lucene 就会在频率文件中找有哪些文件包含了该索引项。表4显示了这个文件的一个大致的结构,并没有包含这个文件的所有字段。

表4:频率文件的结构



5.位置文件

这个文件包含了索引项在每个文档中出现的位置信息,你可以利用这些信息来参与对索引结果的排序。表 5 显示了这个文件的结构

表5:位置文件的结构



12
5
分享到:
评论
4 楼 bertLee 2011-07-29  
我给你加引文:

参考自:
<a href="http://www.ibm.com/developerworks/cn/java/wa-lucene/">深入 Lucene 索引机制</a>

3 楼 weidewei 2008-04-30  
楼上说的应该是索引文件结构中存储信息文件的格式问题吧.本文只介绍了索引文件结构.经楼上的提示,今天对索引文件的格式也做了一些分析总结.在这个链接中http://wishlife.iteye.com/blog/188577.谢谢楼上的了.
2 楼 javaeyes 2008-04-29  
楼上误导群众,tii是tis的索引,tis是词典文件,fdx是fdt的索引
1 楼 lang 2008-04-28  
文中的索引块文件应该是实际文档中的segment文件,域信息应该是存储载.fnm格式的文件中,
索引信息是存放在tis中,而频率信息就是放在tii中。另外,文件中的fdx和fdt存储的是field的store为yes的信息。
以上信息,来自于我手边的一本书上,昨天重新翻阅,所以,现在放在这!

相关推荐

Global site tag (gtag.js) - Google Analytics