lucene文件格式待整理

这是之前Lucene3.0生成的索引格式

a表

b表

c.这是网上找的图片(因为上面的两张表的segment都是合并了的)

lucene4.9 建立的索引:

索引(Index):
        在Lucene中一个索引是放在一个文件夹中的。
        如上图,同一文件夹中的所有的文件构成一个Lucene索引。
    段(Segment):
        一个索引可以包含多个段,段与段之间是独立的,添加新文档可以生成新的段,不同的段可以合并。
        如上图,具有相同前缀文件的属同一个段,图中共两个段 "_0" 和 "_1"。
        segments.gen和segments_5是段的元数据文件,也即它们保存了段的属性信息。
    文档(Document):
        文档是我们建索引的基本单位,不同的文档是保存在不同的段中的,一个段可以包含多篇文档。
        新添加的文档是单独保存在一个新生成的段中,随着段的合并,不同的文档合并到同一个段中。
    域(Field):
        一篇文档包含不同类型的信息,可以分开索引,比如标题,时间,正文,作者等,都可以保存在不同的域里。
        不同域的索引方式可以不同,在真正解析域的存储的时候,我们会详细解读。
    词(Term):
        词是索引的最小单位,是经过词法分析和语言处理后的字符串。

文件格式对应缩写

.fdt   field data

.fdx   field index

.fnm  field name

.frq   frequencies

.nrm  norms

.prx  ProxFile

.tii    term info index

.tis   term infos

segments.gen

segments_N

所谓正向信息:

  • 按层次保存了从索引,一直到词的包含关系:索引(Index) –> 段(segment) –> 文档(Document) –> 域(Field) –> 词(Term)
  • 也即此索引包含了那些段,每个段包含了那些文档,每个文档包含了那些域,每个域包含了那些词。
  • 既然是层次结构,则每个层次都保存了本层次的信息以及下一层次的元信息,也即属性信息,比如一本介绍中国地理的书,应该首先介绍中国地理的概况, 以及中国包含多少个省,每个省介绍本省的基本概况及包含多少个市,每个市介绍本市的基本概况及包含多少个县,每个县具体介绍每个县的具体情况。
  • 如上图,包含正向信息的文件有:
    • segments_N保存了此索引包含多少个段,每个段包含多少篇文档。
    • .fnm保存了此段包含了多少个域,每个域的名称及索引方式。
    • .fdx,.fdt保存了此段包含的所有文档,每篇文档包含了多少域,每个域保存了那些信息。
    • .tvx,.tvd,.tvf保存了此段包含多少文档,每篇文档包含了多少域,每个域包含了多少词,每个词的字符串,位置等信息。

所谓反向信息:

  • 保存了词典到倒排表的映射:词(Term) –> 文档(Document)
  • 如上图,包含反向信息的文件有:
    • XXX.tis,XXX.tii保存了词典(Term Dictionary),也即此段包含的所有的词按字典顺序的排序。
    • XXX.frq保存了倒排表,也即包含每个词的文档ID列表。
    • XXX.prx保存了倒排表中每个词在包含此词的文档中的位置。

lucene文件格式待整理

时间: 2024-10-07 21:44:23

lucene文件格式待整理的相关文章

lucene 索引流程整理笔记

索引的原文档(Document). 为了方便说明索引创建过程,这里特意用两个文件为例: 文件一:Students should be allowed to go out with their friends, but not allowed to drink beer. 文件二:My friend Jerry went to school to see his students but found them drunk which is not allowed. 结果处的索引文件: Docume

lucene 检索流程整理笔记

lucene 检索流程整理笔记

以前用过Lucene,今天抽空整理了一下

除了最直接查数据库之外,我们还能通过索引来提高查询效率 案例 实现一个文件的搜索功能,通过关键字搜索文件,凡是文件名或文件内容包括关键字的文件都需要找出来.还可以根据中文词语进行查询,并且需要支持多个条件查询.本案例中的原始内容就是磁盘上的文件,如下图: 需求分析 数据库搜索 数据库中的搜索很容易实现,通常都是使用sql语句进行查询,而且能很快的得到查询结果.为什么数据库搜索很容易?因为数据库中的数据存储是有规律的,有行有列而且数据格式.数据长度都是固定的. 数据分类 我们生活中的数据总体分为两

Lucene学习之四:Lucene的索引文件格式(1)

本文转载自:http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623597.html Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙. 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程. Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(s

Lucene 基础理论

1. 全文检索系统与Lucene简介 1.1 什么是全文检索与全文检索系统 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式.这个过程类似于通过字典中的检索字表查字的过程. 全文检索的方法主要分为按字检索和按词检索两种.按字检索是指对于文章中的每一个字都建立索引,检索时将词分解为字的组合.对于各种不同的语言而言,字有不同的含义,比如英文中字与词实际上

Solr4.8.0源码分析(8)之Lucene的索引文件(1)

Solr4.8.0源码分析(8)之Lucene的索引文件(1) 题记:最近有幸看到觉先大神的Lucene的博客,感觉自己之前学习的以及工作的太为肤浅,所以决定先跟随觉先大神的博客学习下Lucene的原理.由于觉先大神主要介绍的是Lucene3.X系的,那我就根据源码以及结合觉先大神的来学习下4.X系的.内容可能会有些变化,且加入下我个人的理解. http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623597.html 一. 基本类型

Lucene 基础数据压缩处理

Lucene 为了使的信息的存储占用的空间更小,访问速度更快,采取了一些特殊的技巧,然 而在看 Lucene 文件格式的时候,这些技巧却容易使我们感到困惑,所以有必要把这些特殊 的技巧规则提取出来介绍一下. 在下不才,胡乱给这些规则起了一些名字,是为了方便后面应用这些规则的时候能够简单, 不妥之处请大家谅解. 1. 前缀后缀规则(Prefix+Suffix) Lucene 在反向索引中,要保存词典(Term Dictionary)的信息,所有的词(Term)在词典中是按照 39 字典顺序进行排列

es数据恢复杂记

kill -9或者断电等原因异常,es在重启后,会通过translog来进行数据恢复. 默认的恢复速度是较慢的,可以设置indices.recovery.current_streams:10增大恢复的线程数,还可以设置indices.recovery的其他参数加快恢复的速度. 但是某些情况下,如lucene文件格式错误等,重启es后无法通过自身恢复,可以考虑如下的方式. 1.主分片是正常的,副本分片有错误,且无法通过复制机制恢复.可以考虑删除有问题的分片,集群会通过复制的方式恢复. 2.主分片和

Python爬虫:用BeautifulSoup进行NBA数据爬取

爬虫主要就是要过滤掉网页中无用的信息,抓取网页中有用的信息 一般的爬虫架构为: 在python爬虫之前先要对网页的结构知识有一定的了解,如网页的标签,网页的语言等知识,推荐去W3School: W3school链接进行了解 在进行爬虫之前还要有一些工具: 1.首先Python 的开发环境:这里我选择了python2.7,开发的IDE为了安装调试方便选择了用VS2013上的python插件,在VS上进行开发(python程序的调试与c的调试差不多较为熟悉): 2.网页源代码的查看工具:虽然每一个浏