Lucene 2.4 10月8号就出来了,到现在才注意到。主要变化:
一、改变了向后兼容性(1)
LUCENE-1340: Lucene的向后兼容性有一个细小的变化,因为内部原因,现在允许接口“Fieldable”发生改变(注:编程中成熟的产品一般不改变接口),假如一个程序实现了自己的Fieldable,那么就要注意这点,否则没必要担心。这个改变将在2.4版开始后延续到以后所有的2.x版本中。另外,Fieldable 有很大肯能性在 3.0中被更改。
二、运行时行为变化(4)
1、 LUCENE-1151:修正了StandardAnalyzer 分词器不识别主机名(域名,如eg lucene.apache.org)和缩写。要使用以前的StandardAnalyzer ,可以调用StandardAnalyzer.setDefaultReplaceInvalidAcronym(false) (静态方法),或者设置系统属性,在JVM启动的时候,设置org.apache.lucene.analysis.standard.StandardAnalyzer.replaceInvalidAcronym为false.那么StandardAnalyzer 实例将像2.4版以前一样工作。另外,可以调用setReplaceInvalidAcronym(false)方法改变StandardAnalyzer的行为。这个向后兼容将在3.0版被删除(硬编码值为true)。
2、
LUCENE-1044: IndexWriter 以前的autoCommit=true 现在要编码调用。以前,一个flush方法调用也伴随一次commit操作。现在可以调用IndexWriter.commit方法来实现commit操作。此外,到3.0版,autoCommit将被硬编码为false(IndexWriter 带autoCommit参数已经过时了)。
3、
LUCENE-1335: IndexWriter.addIndexes(Directory[])和addIndexesNoOptimize 方法不再允许在同一个Directory 使用一次以上。内部,IndexWriter使用Directory 和segment 名称去识别唯一的segments,所以增加同一个目录多次会引发问题。
4、
LUCENE-1396: 引入了PhraseQuery.toString() ,在各个位置上的分隔符,用a ?和复杂terms,在相同的地方,将引入a |.
另外API有26处发生了变化,修复了16个bug,加入了20个新功能,6个优化,修改了3个文件。
API和新功能以及优化可能会带来开发上的一些变化。
变化描述源地址:http://lucene.apache.org/java/2_4_0/changes/Changes.html#2.4.0.optimizations
另外下载的时候居然是校内网,看来校内去推广去了,呵呵。