`
sharp-fcc
  • 浏览: 111481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

lucene 4.6 之索引文件格式

阅读更多

名词解释:

document 包含一系列的fields

field是一系列terms的代号

term是一系列的bytes

 

倒排索引:

这个索引存储了关于这个term的一些统计,为什么叫做倒排索引,因为这个能够列出包含这个term的所有文档,这是正常关系的一个逆,正常关系是一个文档列出里面有哪些词。

 

fields的类型:

一个field能够被stored,如果这么设置,他会被保存到一个非倒排的索引中。

一个field会被用来切词以方便更好的索引。

 

segments:

apache的索引包含多个子索引,一个segment是全套的索引,可以被独立的搜索。

整个服务的索引会包含好几个 segments

 

documents号:

lucene使用一个号来识别每一个document,第一篇加到索引中的文档号是0,然后依次递增。

文档号是会变的,在一个segment中,每一个文档的文档号是唯一的。

 

索引结构概况:

segment_info: 包含这个segment的一些基本信息,比如这个segment中有多少篇文档。

Field name:纪录索引中有哪些field.

Stored field values: 保存store域的东西,比如,这些东西会随着每一次命中返回,可以被用文档号找到。

Term dictionary: 包含所有文档所有被索引的term的字典,这个字典同样包括有几个文档包括这个term,还有指针指向这个term的tf值和Term Proximity data。

Term Frequency data:  纪录有几篇文档包含这个term,还有这个term在这个文档中出现的频率。

Term Proximity data:纪录这个term 在这个文档中的位置。

Normalization factors: 用在打分公式中做归一化用的。

Term Vector: 一个term vector 包含这个term的文字内容和频率。

Per-document values:跟stored 字段一样, 这也是能够通过文档号来取道的,但是这里面的东西会被加载到内存中供快速读取。stored域一般是用来存储这个文档的简介的,用来展示,而per-document 会影响打分的一些因素。

Deleted document: 存储哪些文档被删除了。

 

文件后缀名解释:

1) Segments file: segments.gen 和 segment_N : 存储一次提交的信息。

2) Lock  File:  write.lock : 写锁,防止多个indexWriter 来写。

3) Segment_info: .si : 存储一个segment的元信息, 比如段中包含了哪些文件。

4) Fields : .fnm : 存储fields的一些信息,有多少域,每一个域的名称以及索引方式。

格式: version | field 数目 | field名字 field flag bit | ...... 

5) Field index : .fdx :  这个field的位置信息,即域索引文件 , 由于每个document保存的域信息都不一样,所以大小也不一样,需要索引文件来保存位置。

格式: field position |  field position |  field position | ......

6) Field Data :  .fdt :  存储stored field. 一共有 document size个项,每一项保存一篇文档的域信息。

格式: (field count | field num | markbit | field value)(field count | field num | markbit | field value).......

7) Term Dictionary : .tim : 存储term 的信息。具体文件格式首先是词的数量,设置词典中每隔interval个词保存在Term索引文件中,跳表的interval,最大层数等信息,词典本身应用了 prefix suffix技巧来节省存储空间。

格式: termcount | indexinterval | skipinterval | maxskiplevel | (prefixLength | suffix | FiendNum | DocFreq | reqDelta | proxDelta | skipDelta ) ......

8) Term  index : .tip : 存储term 的索引信息。即保存每隔indexInterval个词,indexTermCount = TermCount/IndexInterval .

格式: indexTermCount | skipinterval | skipinterval | maxskiplevel | (prefixLength | suffix | FiendNum | DocFreq | reqDelta | proxDelta | skipDelta | indexDelta 在词典中的偏移量 ) ......

9) Frequencies : .doc : 传说中的倒排表,共termcount项,每一项都有自己的倒排表,每个倒排表有两个部分,一部分是倒排表本身,还有一部分是skip list,为了更快的访问定位倒排表中的文档号和词频。每一个跳跃表包括以下信息,文档号,payload长度,在.doc中得偏移量,在pos中得偏移量。

10) Position : .pos : 存储在document中的位置信息,跟.doc中得倒排表有密切的关系。

格式: TermPositions | ..... | TermPositions 

TermPositions -> 第一篇文档 positions | 第N篇文档 positions .....

No N positons  -> positon | PayloadLength | Payload data   

11) Payloads : .pay : 存储额外的信息每一个位置信息的元数据和用户的payloads信息。

12) Norms : .nvd , .nvm :  编码存储打分因素。

13) Per-document values : .dvd, .dvm : 存储额外的打分信息和其他一些信息。

14) Term vector index : .tvx :  包含term offset 在文档文件中的信息, 词向量索引文件。有Document size个项,每一项有两个信息,第一项是tvd 中此文档的偏移, 第二项是doucument的第一个域在tvf 中此文档的偏移,

15) Term vector document : .tvd : 保存一个文档中有几个 term vector . 词向量文档文件,有Document size个项。

格式:  (num of field | fieldNumDelta | ......)....  

fieldNumDelta 存储的是这个域在相对于第一个域的偏移。

16) Term vector fields : .tvf :  保存所有的域,第几个域到第几个域是属于那篇文档,是由tvx 中的第一个域的偏移量以及tvd中 n-1 个域的偏移量来决定的。

格式: (numTerms | mark bit | TermText | TermFrequency | TermText | TermFrequency).....

17) Deleted document : .del : 纪录删除的信息。

 

分享到:
评论

相关推荐

    lucene4.6jar

    在Lucene 4.6中,索引过程更加高效,支持分词、TF-IDF(Term Frequency-Inverse Document Frequency)权重计算等,使得搜索速度显著提升。 2. **文档模型**:Lucene中的每个文档由一系列字段(Field)组成,每个...

    lucene4.6例子

    《深入理解Lucene 4.6:索引构建、查询执行与近实时搜索》 Lucene是一个开源全文搜索引擎库,广泛应用于各种信息检索系统。在本文中,我们将深入探讨Lucene 4.6版本,包括如何创建索引、执行查询以及实现近实时搜索...

    lucene4.6所有jar包

    Lucene 4.6在索引结构上进行了优化,引入了新的 postings format —— **Flex postings format**。这种格式提高了存储效率,降低了磁盘空间的占用,并且在查询性能上有所提升。同时,还引入了 **doc values** 和 **...

    Lucene4.6实战应用

    《Lucene4.6实战应用》一书主要探讨了Apache Lucene 4.6版本在实际项目中的应用和深入理解。Lucene是一个高性能、全文检索库,它为开发者提供了强大的文本搜索功能。作为开源项目,Lucene被广泛应用于各种信息检索...

    Lucene4.6+Solr4.6实战开发垂直搜索引擎视频课程

    18.lucene4.6索引的相关操作 19.lucene4.6的各种Query(1) 20.lucene4.6的各种Query(2) 21.lucene4.6的各种Query(3) 22.solr4.6的快速搭建 23.solr4.6索引的相关操作 24.solr4.6搜索的相关参数功能(1) 25.solr4.6搜索...

    lucene4.6实例

    《深入理解Lucene 4.6:实例解析与实践指南》 Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护。它为开发者提供了在Java应用中实现全文索引和搜索的能力,广泛应用于各类信息检索系统。本文将重点...

    lucene 4.6 API docs (CHM格式)

    Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。 从之前发布其他chm文件下载用户的反映看,有不少朋友反映下载后打开无法显示,这一般不是chm文件的问题,这里统一说明一下解决办法: 如果文件...

    基于Lucene4.6+Solr4.6+S2SH实战开发垂直搜索引擎

    对于抓取的数据,进行去重,去标签,然后利用lucene 和 solr 进行索引和搜索。 课程的最大特点是内容新颖全面而又通俗易懂。对于实际搜索引擎所涉及的各种核心技术都有全面细致的介绍,除了作为搜索系统核心的网络...

    luence4.6例子

    - Directory:存储索引的抽象接口,可以是文件系统、内存或分布式存储。 - IndexWriter:负责创建、更新和删除索引,实现了并发控制和段合并策略。 - IndexReader:读取索引,提供访问文档和倒排索引的方法。 - ...

    Lucene demo

    在压缩包中的 “LuceneTest” 文件很可能是包含了一个简单的 Lucene 示例应用,可能包含了创建索引、添加文档、搜索和读取索引的示例代码。通过运行和分析这个示例,可以更好地理解 Lucene 的工作原理和使用方式。 ...

    lukeall-4.6.0.jar luke工具 lucene查看索引库工具

    标题中的“lukeall-4.6.0.jar”是指Luke工具的一个特定版本,4.6.0,这是一个Java可执行文件(JAR包),用户可以下载并运行来查看和操作Lucene创建的索引。这个版本的Luke提供了对Lucene索引结构的全面视图,帮助...

    apache-solr-ref-guide-4.6.pdf

    Apache Solr是一个开源的企业级搜索平台,它使用Lucene搜索引擎库的Java实现,提供了一个强大的搜索功能。Apache Solr Reference Guide为用户提供了一套完整的参考手册,涵盖从基本安装、配置到高级搜索技术的全面...

    【分享:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    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 ...

    解密搜索引擎技术实战:Lucene&Java精华版

    - **3.2.4 Rtf文件**:介绍了如何处理Rtf格式的文档。 - **3.2.5 Excel文件**:讲解了从Excel表格中抽取数据的技术。 - **3.2.6 PowerPoint文件**:探讨了从PPT文档中提取信息的方法。 - **3.3 提取垂直行业信息*...

    lukeall-4.6.0.jar

    使用Lucene必备的利器,可以非常方便的查看索引中的信息。

    GermanLanguageProcessing4Lucene-开源

    该软件包包含用于为Lucene 4.x添加NLP功能的不同工具(已使用4.6.x至4.8.1的Lucene版本进行了测试)。 尽管它最初是为德语开发的,但大多数情况下是独立于语言的。 它使用户可以对要索引的词进行词法化处理,对词的...

Global site tag (gtag.js) - Google Analytics