写入后优化lucene索引是否必须?

Ram*_*Vel 9 c# java lucene performance lucene.net

目前我在写完成后调用了indexwriter的optimize方法.由于我的数据集很大,因此需要很长时间(并且需要更多空间(2*实际大小))来优化索引.我非常关注这一点,因为索引中经常包含大量文档.

所以

  1. 可以关闭优化吗​​?
  2. 有什么性能影响,比如在没有优化的情况下查询的速度会慢多少?

干杯

cuh*_*cuh 14

Lucene的常见问题解答说:

什么是索引优化以及何时应该使用它?

IndexWriter类支持optimize()方法,该方法压缩索引数据库并加快查询速度.在执行文档集的完整索引或索引的增量更新之后,您可能希望使用此方法.如果增量更新经常添加文档,则只需要偶尔执行一次优化,以避免额外的优化开销.

如果我决定不优化索引,删除的文档何时会被删除?

删除的文档标记为已删除.但是,在索引优化之前,它们在索引中消耗的空间不会被回收.即使索引没有得到优化,随着更多文档被添加到索引中,该空间也将最终被回收.