Lucene2.3性能提升

最近Lucene2.3发布,最大的变化是使用了新的索引算法,使用新的in-memory模型来大幅提升速度。中提到最简单的把lucene2.2的jar文件换成lucene2.3的jar文件就可以在某些测试中提速500%。Lucene2.3的changlog见http://svn.apache.org/repos/asf/lucene/java/tags/lucene_2_3_0/CHANGES.txt

我认为最主要的几个变化是:

  1. 对象池。可以复用Document、Field和Token的实例。
    写道
    LUCENE-969: Add new APIs to Token, TokenStream and Analyzer to

    permitre-usingofTokenandTokenStreaminstancesduring

    indexing.ChangedTokentouseachar[]asthestoreforthe

    termTextinsteadofString.Thisgivesfastertokenization

    performance (~10-15%). (Mike McCandless)
     
  2. Re-open indexreader。reopen()操作只会加载变化的索引片段。
    写道
    LUCENE-743: Add IndexReader.reopen() method that re-opens an

    existingIndexReaderbyonlyloadingthoseportionsofanindex

    thathavechangedsincethereaderwas(re)opened.reopen()can

    besignificantlyfasterthanopen(),dependingontheamountof

    indexchanges.SegmentReader,MultiSegmentReader,MultiReader,

    and ParallelReader implement reopen(). (Michael Busch)
     

其他的变化还在发掘中。

相关推荐