论坛首页 Java企业应用论坛

Lucene2.3性能提升

浏览 4715 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-01-27  

最近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)
     

其他的变化还在发掘中。

   发表时间:2008-01-27  
看来要换了
不过稳定第一
0 请登录后投票
   发表时间:2008-01-28  
通过内存大小而不是文档数量来刷新内存比较实用。
0 请登录后投票
   发表时间:2008-01-28  
melin 写道
通过内存大小而不是文档数量来刷新内存比较实用。

这个也比较有用,
使用了新的内存算法。
0 请登录后投票
   发表时间:2008-01-29  
继续发掘。。
0 请登录后投票
   发表时间:2008-01-31  
新功能IndexReader.reopen()
具体啥意思,还每看明白。
0 请登录后投票
   发表时间:2008-02-01  
melin 写道
新功能IndexReader.reopen()
具体啥意思,还每看明白。


每次索引更新之后,对于当前正在使用的IndexReader来说不是可见的,必须重新open一次Index,才能保证能够搜索到新加入的document,2.3相当于做了一次增量的open。
0 请登录后投票
   发表时间:2008-02-18  
1.有没有人告诉我lucne2.3的IndexReader.reopen()里面为什么没有代码?是空的哦?这不是lucene2.3的new
future吗?
2.还有我想问一下,用lucne2.3的IndexReader和IndexWriter,delete操作有什么区别?或者说哪个快一点?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics