`

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的信息。
以上信息,来自于我手边的一本书上,昨天重新翻阅,所以,现在放在这!

相关推荐

    lucene索引查看工具及源码

    Luke 提供了诸如查看文档字段、搜索索引、查看倒排索引结构等功能,对于开发者来说是了解和调试 Lucene 索引的利器。 Luke 的源码也公开在 GitHub 上,这对于想深入理解 Lucene 内部机制的开发者来说是一个宝贵的...

    Lucene索引文件查看工具lukeall4.7.1

    《深入理解Lucene索引文件查看工具LukeAll 4.7.1》 在信息检索领域,Lucene作为一款强大的全文搜索引擎库,被广泛应用在各种数据检索系统中。然而,对于开发者来说,理解并调试Lucene创建的索引文件并非易事。此时...

    深入 Lucene 索引机制

    以下是对Lucene索引机制的详细解析: 一、Lucene的索引过程 1. 文档分析:当向Lucene添加文档时,首先会经过一个分词器(Tokenizer),将文本拆分成一系列的词项(Token)。接着,这些词项会被过滤(Filter)和...

    lucene索引文件格式介绍

    以下是对Lucene索引文件格式的详细说明。 首先,我们要理解Lucene索引的基本结构。一个Lucene索引位于一个文件夹中,这个文件夹包含了多个段(Segment)。每个段是独立的,包含了一组文档,并且可以与其他段合并。...

    lucene索引结构原理

    **Lucene索引结构原理** Lucene是Apache软件基金会的开放源代码全文搜索引擎库,它为Java开发人员提供了强大的文本搜索功能。理解Lucene的索引结构原理对于优化搜索性能和设计高效的搜索应用至关重要。 首先,我们...

    lucene索引查看程序及代码

    通过阅读和分析源代码,我们可以学习到如何操作Lucene索引,以及如何构建类似的工具。 总结而言,luke作为Lucene索引的可视化工具,极大地便利了开发者对索引的理解和调试。无论是初学者还是经验丰富的开发人员,都...

    Lucene索引器实例

    **Lucene索引器实例详解** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,被广泛应用于各种搜索引擎的构建。它提供了一个高级的、灵活的、可扩展的接口,使得开发者能够轻松地在应用程序中实现全文...

    luke源码--查看lucene索引文件

    《深入理解Luke:洞察Lucene索引文件》 在信息技术领域,搜索引擎的高效运作离不开对数据的快速检索,而Lucene作为开源全文检索库,扮演了核心角色。在这个过程中,Luke工具提供了一种直观的方式,让我们能够查看和...

    lucene 索引 查看 工具

    这就是"Lucene 索引 查看 工具"的用途,它可以帮助我们分析和理解 Lucene 索引的工作原理。 主要知识点: 1. **Lucene 索引**:Lucene 的索引是一种倒排索引,它将文档中的词项(tokens)映射到包含这些词项的文档...

    lucene索引结构原理.docx

    而在Lucene中,基本单位是Document,它同样由多个字段组成,但Lucene索引的是这些字段的内容,以加速文本检索。 - **索引构建**:Lucene支持增量索引和批量索引,可以处理数据源的小幅变化或大规模数据。数据库通常...

    Lucene索引和查询

    **Lucene索引和查询** Lucene是Apache软件基金会的开放源码全文搜索引擎库,它提供了文本检索的核心工具,使得开发者能够快速构建自己的搜索应用。本项目中的代码旨在展示如何利用Lucene对多个文件夹下的数据进行...

    lucene索引查看工具luck7.4.0

    `Luck`,全称`Luke`,是一款强大的Lucene索引浏览器和分析器工具,可以帮助开发者、数据分析师以及对Lucene感兴趣的人员查看、理解和调试Lucene索引。 `Luke 7.4.0`是这款工具的一个特定版本,它专门设计用来与...

    Lucene 索引的简单使用

    以上就是关于“Lucene索引的简单使用”的详细介绍,包括其核心概念、创建和查询索引的步骤以及一些高级特性。希望对你理解和应用Lucene有所帮助。在实际开发中,可以根据需求选择合适的Analyzer,优化索引策略,以...

    基于Lucene索引的分析与实现

    在Lucene的索引结构中,每个段包含_N.fdx和_N.fdt文件,分别存储Field Data的地址指针和文档内容。此外,每个词项还有对应的倒排索引表,记录了该词在各个文档中的出现位置。例如,_N.vidx和_N.vtf文件分别存储词汇...

    Lucene索引数据分析器

    **Lucene索引数据分析器** Lucene是一款强大的开源全文搜索引擎库,由Apache软件基金会开发,广泛应用于各种数据检索系统。它的核心功能在于高效地构建、管理和搜索文本索引,为开发者提供快速的数据查询能力。本篇...

    lucene 索引小示例

    《Lucene索引小示例解析》 Lucene是一个高性能、全文检索库,它由Apache软件基金会开发并维护。在Java编程环境中,Lucene被广泛应用于构建搜索功能,特别是对于大量文本数据的高效检索。本篇文章将通过一个简单的小...

    luke lucene索引查看

    1. **索引浏览器**:Luke允许用户打开并查看Lucene索引目录,展示了索引的基本结构,包括字段、文档数量、存储方式等信息。用户可以通过它来浏览每个文档的详细内容,如字段值、ID、文档长度等。 2. **字段信息**:...

    很好的lucene索引查看工具,欢迎各位lucene研究者前来下载

    Lucene索引查看工具是一款专为Lucene设计的可视化工具,它允许用户直观地浏览和分析由Lucene创建的索引结构。这个工具能够帮助开发者查看文档的详细信息,包括文档ID、字段名、字段值以及各种索引的内部表示。这对于...

    Lucene索引管理器(基于Luke修改而来)

    而Luke是Lucene的可视化工具,它允许开发者查看和操作Lucene索引,包括文档内容、字段、分词结果等。本文将深入探讨基于Luke修改的Lucene索引管理器,以及它在源码分析和工具应用方面的重要作用。 首先,我们了解下...

    luke--- lucene索引数据查看器

    Luke是一款强大的Lucene索引浏览器,它为开发者和搜索引擎优化人员提供了一种直观的方式来查看和分析由Apache Lucene创建的索引。Lucene是一个开源全文检索库,广泛应用于各种搜索引擎的构建。通过Luke,用户可以...

Global site tag (gtag.js) - Google Analytics