首先理解反向索引(Inverted index)这个概念,反向索引是一种以索引项为中心来组织文档的方式,每个索引项指向一个文档序列,这个序列中的文档都包含该索引项。相反,在正向索引中,文档占据了中心的位置,每个文档指向了一个它所包含的索引项的序列。你可以利用反向索引轻松的找到那些文档包含了特定的索引项。Lucene正是使用了反向索引作为其基本的索引结构。
索引文件的逻辑视图
在Lucene 中有索引块的概念,每个索引块包含了一定数目的文档。我们能够对单独的索引块进行检索。下图中显示了 Lucene 索引结构的逻辑视图。索引块的个数由索引的文档的总数以及每个索引块所能包含的最大文档数来决定。
图:索引文件的逻辑视图
Lucene 中的关键索引文件
下面的部分将会分析Lucene中的主要的索引文件,可能分析有些索引文件的时候没有包含文件的所有的字段,但不会影响到对索引文件的理解。
1.索引块文件
这个文件包含了索引中的索引块信息,包含了每个索引块的名字以及大小等信息。表 1 显示了这个文件的结构信息。
表1:索引块文件结构
2.域信息文件
我们知道,索引中的文档由一个或者多个域组成,这个文件包含了每个索引块中的域的信息。表 2 显示了这个文件的结构。
表2:域信息文件结构
3.索引项信息文件
这是索引文件里面最核心的一个文件,它存储了所有的索引项的值以及相关信息,并且以索引项来排序。表 3 显示了这个文件的结构。
表3:索引项信息文件结构
4.频率文件
这个文件包含了包含索引项的文档的列表,以及索引项在每个文档中出现的频率信息。如果Lucene在索引项信息文件中发现有索引项和搜索词相匹配。那么 Lucene 就会在频率文件中找有哪些文件包含了该索引项。表4显示了这个文件的一个大致的结构,并没有包含这个文件的所有字段。
表4:频率文件的结构
5.位置文件
这个文件包含了索引项在每个文档中出现的位置信息,你可以利用这些信息来参与对索引结果的排序。表 5 显示了这个文件的结构
表5:位置文件的结构
分享到:
相关推荐
介绍了lucence的索引结构和实现细节,包括对每个索引文件的格式分析,算法细节的优化等等,研究lucence或者搜索引擎的值得一看
第三节 Lucene索引文件格式分析··· 9 一、 Lucene源码实现分析的说明··· 9 二、 Lucene索引文件格式··· 10 三、 一些公用的基础类··· 12 四、 存储抽象··· 13 五、 关于cLucene项目··· 15 ...
3. Lucene的索引文件逻辑结构 1) 索引(Index)由若干块(片段)(Segment)组成 ★2) 块由若干文档(Document)组成: 一个文件映射成一个文档。数据库表中的一条记录映射成一个文档。 ★3) 文档由若干域(Field)组成:...
为了提高基于Lucene中文检索系统的检索精度和效率,通过分析Lucene的结构,在系统中加入了中文分词模块和索引 文档预处理模块。给出了具体的实验方法和实验过程,对改进原理和实验数据进行了分析,表明了加入中文...
快速有效地索引企业累积的大量的信息资源,是提供高质量检索服务的基础。Lucene 是一个用Java 写的全文索 引引擎工具包,访问索引时间快,支持多用户...Lucene 的索引文件格式,实现了一个基于Lucene 文档检索的应用实例。
2)org.apache.1uceene.document索引存储时的文档结构管理,类似于关系型数据库的表结构。 3)document包相对而言比较简单,该包下面有3个类,document相对于关系型数据库的记录对象,Field主要负责字段的管理。 4)...
3. 索引文件格式 3 4. lucene中主要的类 4 4.1. Document文档类 4 4.1.1. 常用方法 4 4.1.2. 示例 4 4.2. Field字段类 4 4.2.1. 构造方法 4 4.2.2. Store类 5 4.2.3. Index类 5 4.2.4. 示例 5 4.3. IndexWriter类 5 ...
6 2.3搜索引擎的主要指标及分析 6 2.4小节 6 第三章 网络机器人 7 3.1什么是网络机器人 7 3.2网络机器人的结构分析 7 3.2.1如何解析HTML 7<br>3.2.2 Spider程序结构 8 3.2.3如何构造Spider程序...
作为一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。Elasticsearch 可以用于:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索;实时分析的分布式...
6.1.1 理解 Lucene 的索引库结构 146 6.1.2 设计一个简单的索引库 148 6.2 创建和维护索引库 149 6.2.1 创建索引库 149 6.2.2 向索引库中添加索引文档 149 6.2.3 删除索引库中的索引文档 151 6.2.4 更新索引库中的...
Lucene是一个高性能、易扩展的基于Java技术的全文信息检索工具包,它能非常方便地为各种应用程序加入全文索引和搜索功能a该文探讨了Lucene中使用的向量空间模型,分析了Lucene索引文件的结构以及搜索排序算法,讨论...
文件结构 排序 上升和下降 数值或非数值 正在搜寻 嵌套搜索字词 组合搜索词 模糊文本搜索 坐标,整数,long,字符串,文本 指示与分析 克 边缘N元语法 英语单词 抽干 停用词删除 结果过滤 常问问题 为什么这么难用?...
Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎,无论在开源还是...分布式的实时文件存储,每个字段都被索引并可被搜索 实时分析的分布式搜索引擎 可以扩展到上百台服务器,处理PB级结构化或非结构化数据
Lucene是一个基于Java的全文索引工具包。 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 ...Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展 从Lucene我们还可以学到什么
弹性搜索分布式RESTful搜索引擎 Elastic... 建立在Lucene之上每个分片都是功能齐全的Lucene索引Lucene的所有功能都可以通过简单的配置/插件轻松展现。 每次操作的一致性单文档级操作是原子的,一致的,隔离的和持久的
而 Elasticsearch将 Lucene 作为其核心来实现所有索引和搜索的功能,通过简单的 RESTful 语法来隐藏掉 Lucene 的复杂性,从而让全文搜索变得简单 ES在Lucene基础上,提供了一些分布式的实现:集群,分片,复制等。 ...
前言 第1章 Elasticsearch入门 1 1.1 Elasticsearch是什么 1 1.1.1 Elasticsearch的历史 2 1.1.2 相关产品 3 1.2 全文搜索 3 1.2.1 Lucene介绍 4 1.2.2 Lucene倒排索引 4 1.3 基础知识 6 1.3.1 Elasticsearch术语及...
它可以被下面这样准确的形容:一个分布式的实时文档存储,每个字段可以被索引与搜索一个分布式实时分析搜索引擎能胜任上百个服务节点的扩展,并支持PB级别的结构化或者非结构化数据Elasticsearch是面向文档,即文档...
3.4.1 Solr Schema 设计(如何定制索引的结构?) 34 3.5 如何进行索引操作? 36 3.5.1 基本索引操作 36 3.5.2 批量索引操作 37 3.6 如何进行搜索 39 3.6.1 搜索语法 39 3.6.2 排序 42 3.6.3 字段增加权重 42 3.6.4 ...