Lucene:(一)建立索引文件:2。建立索引文件(一)

写索引文件:

    索引文件在未合并前是有多个文件组成的,这些文件综合在一起,才为一个实质上的索引文件;这些文件拥有相同的名字,不同的是后缀名;下面,依次介绍这些文件,介绍方式为:从建立索引的类开始,一步步追踪,最后总结。

       IndexWriter类

       写索引文件从IndexWriter类开始。

IndexWriter 需要三个参数:分别是字典(Lucene自定义的,存放索引文件的虚拟目录),一个分词器和一个布尔变量(这个变量为重新建立索引或往原有的索引中添加,true为新建索引)。

    IndexWriter类创建索引是以一个一个文件作为单位来建立索引的,IndexWriter类通过addDocument函数将一个一个文件添加,并使用IndexWriter类将该文件添加到索引中。


注: Lucene自己模拟了文件对象,该对象表示一个文件,为 Document;addDocument函数的参数就是 Document对象;

 IndexWriter的作用为建立索引和合并两部分。

 1。建立索引:

IndexWriter使用SegmentInfos类写segment信息。
Segment
文件为Lucene索引文件中记录块信息的。块实际上包括多个文件的概述信息,这多个文件实际上就是建立这个索引文件的实际文件。


IndexWriteraddDocument函数,调用DocumentWriter类,完成建立索引的余下操作。
DocumentWriter类完成建立域信息文件,term信息文件等索引信息的建立。


2。合并:
Lucene有两种合并。



第一种合并:


IndexWriter 类构造函数使用SegmentInfos类写索引文件的segment信息,其实并不是一开始就往硬盘上写,而是先往内存中写,到一定的数目合并写入硬盘。

第二种合并:


当索引文件(这里指硬盘上实际存在的索引文件)到一定的数目,这些索引文件合并;接着,循环这种合并。

举例:这里假设合并因子为10。一个索引文件记载10个文件,当这样的文件有10个时,这些索引文件合并成一个100个文件的索引文件。接着,继续形成索引文件,又有10个记载10个文件的索引文件形成,这些文件合并成另一个100个文件的索引文件;当记载100个文件的索引文件有10个时,这些文件合并成记载1000个文件的索引文件;以下类推。



转载于:https://www.cnblogs.com/wanghoney/archive/2008/07/02/1233668.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值