2008-01-27

Lucene2.3性能提升

关键字: lucene

最近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. 对象池。可以复用DocumentFieldToken的实例。
    写道
    LUCENE-969: Add new APIs to Token, TokenStream and Analyzer to
    permit re-using of Token and TokenStream instances during
    indexing. Changed Token to use a char[] as the store for the
    termText instead of String. This gives faster tokenization
    performance (~10-15%). (Mike McCandless)
     
  2. Re-open indexreader。reopen()操作只会加载变化的索引片段。
    写道
    LUCENE-743: Add IndexReader.reopen() method that re-opens an
    existing IndexReader by only loading those portions of an index
    that have changed since the reader was (re)opened. reopen() can
    be significantly faster than open(), depending on the amount of
    index changes. SegmentReader, MultiSegmentReader, MultiReader,
    and ParallelReader implement reopen(). (Michael Busch)
     

其他的变化还在发掘中。

评论
jiajiam 2008-02-18
1.有没有人告诉我lucne2.3的IndexReader.reopen()里面为什么没有代码?是空的哦?这不是lucene2.3的new
future吗?
2.还有我想问一下,用lucne2.3的IndexReader和IndexWriter,delete操作有什么区别?或者说哪个快一点?
littlesuns 2008-02-01
melin 写道
新功能IndexReader.reopen()
具体啥意思,还每看明白。


每次索引更新之后,对于当前正在使用的IndexReader来说不是可见的,必须重新open一次Index,才能保证能够搜索到新加入的document,2.3相当于做了一次增量的open。
melin 2008-01-31
新功能IndexReader.reopen()
具体啥意思,还每看明白。
txzyhm521 2008-01-29
继续发掘。。
andyao 2008-01-28
melin 写道
通过内存大小而不是文档数量来刷新内存比较实用。

这个也比较有用,
使用了新的内存算法。
melin 2008-01-28
通过内存大小而不是文档数量来刷新内存比较实用。
wl95421 2008-01-27
看来要换了
不过稳定第一
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

andyao
搜索本博客
我的相册
5420ab30-72c6-3b30-9492-388a5a0e5e66-thumb
Snap1
共 1 张
存档
最新评论