lucene---创建IndexWriter对象

IndexWriter对象主要包含以下几方面的信息:
• 用于索引文档
◦ Directory directory; 指向索引文件夹
◦ Analyzer analyzer; 分词器
◦ Similarity similarity = Similarity.getDefault(); 影响打分的标准化因子(normalization factor)
部分,对文档的打分分两个部分,一部分是索引阶段计算的,与查询语句无关,一部分是搜索
阶段计算的,与查询语句相关。
◦ SegmentInfos segmentInfos = new SegmentInfos(); 保存段信息,大家会发现,和
segments_N中的信息几乎一一对应。
◦ IndexFileDeleter deleter; 此对象不是用来删除文档的,而是用来管理索引文件的。
◦ Lock writeLock; 每一个索引文件夹只能打开一个IndexWriter,所以需要锁。
◦ Set segmentsToOptimize = new HashSet(); 保存正在最优化(optimize)的段信息。当调用
optimize的时候,当前所有的段信息加入此Set,此后新生成的段并不参与此次最优化。
• 用于合并段,在合并段的文章中将详细描述
◦ SegmentInfos localRollbackSegmentInfos;
◦ HashSet mergingSegments = new HashSet();
◦ MergePolicy mergePolicy = new LogByteSizeMergePolicy(this);
◦ MergeScheduler mergeScheduler = new ConcurrentMergeScheduler();
◦ LinkedList pendingMerges = new LinkedList();
◦ Set runningMerges = new HashSet();
◦ List mergeExceptions = new ArrayList();
◦ long mergeGen;
• 为保持索引完整性,一致性和事务性
◦ SegmentInfos rollbackSegmentInfos; 当IndexWriter对索引进行了添加,删除文档操作后,
可以调用commit将修改提交到文件中去,也可以调用rollback取消从上次commit到此时的修
改。
◦ SegmentInfos localRollbackSegmentInfos; 此段信息主要用于将其他的索引文件夹合并到此
索引文件夹的时候,为防止合并到一半出错可回滚所保存的原来的段信息。
• 一些配置
◦ long writeLockTimeout; 获得锁的时间超时。当超时的时候,说明此索引文件夹已经被另一个
IndexWriter打开了。
◦ int termIndexInterval; 同tii和tis文件中的indexInterval。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值