Lucene索引在文件和内存中的数据结构

本文详细探讨了Lucene的索引结构,包括文件结构中的倒排表和内存中的Field、Term及docId组织。通过示例展示了SimpleTextCodec编码下的索引文件内容,并解释了内存中FST数据结构如何存储Term信息。文章最后以搜索过程为例,阐述了索引在搜索时的状态。
摘要由CSDN通过智能技术生成

Lucene索引文件结构:

Lucene的索引由多个不同后缀格式的文件组成,本文准确来说应该是lucene索引倒排表的文件结构,具体的组织形式如下:


field fieldName  --域的名称

term termName --term的名称,也就是分出的词

doc docId --文档id,在指定域下,出现指定term(分词)的文档的id

Freq count --term在文档中出现的次数

Pos  --属于第几个分词

Offset --term在文档中的偏移

Payload --payload信息

在不同的codec,文件的后缀名称和存储格式不一样,其中有个simpletextcodec,特别适合用来学习lucene的“黑盒”索引文件,本文就是讲解在SimpleTextCodec编码下的倒排表文件,具体如何指定codec呢?可以参考下面的代码:

 

SimpleTextCodec stc = new SimpleTextCodec();

IndexWriterConfig config = new

IndexWriterConfig(Version.LUCENE_40,analyzer);

config.setCodec(stc);//设置索引的编码格式

 

SimpleTextCodec编码格式下,lucene索引倒排表文件的后缀是.pst,现在我们来索引两个文档来具体看下倒排表的文件内容。

 

Document doc0 = new Document();

doc0.add(new Field("title""title hello title", type));

doc0.add(new Field(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值