2014年4月28日,Apache Lucene 4.8.0正式发布。由于老的JDK版本的一些JVM bug会影响到Lucene,所以新版本的Lucene不再支持JDK 7u55以下的Java版本。另外Lucene 4.8.0全面兼容Java 8。以下是Lucene 4.8.0中的一些重大改进:
-
所有的索引文件开始存储端到端的校验以在索引合并和读取的时候进行有效性检查。这样可以确保因为JVM内部的一些硬件问题或者BUG而引起的索引损坏可以被及时发现。
-
提供了新的
Rescorer/QueryRescorer
API对second-pass的重新打分。 -
AnalyzingInfixSuggester 类提供了支持NRT(near-real-time)的自动建议功能。
-
使用Lucene的Sort类简化了impact-sorted postings的排序语义。
-
分离了bulk scoring(基于批量处理的打分过程)和基于迭代的打分过程。
-
建立索引的时的Hash term模块改为使用高效的MurmurHash3算法。
-
IndexWriter开始支持更新二进制类型的字段。
-
HunspellStemFilter的内存占用比之前减少了10到100倍。
-
如果操作系统和文件系统允许,Lucene会在提交时fsyncs目录元信息。
-
使用了Java 7的文件系统函数,所以在windows中,即使索引文件在打开(使用)的时候,也可以被删除。
-
修复了NativeFSLockFactory类中的一个严重的bug,现在允许多个IndexWriter获取相同的锁。即使不持有锁,锁文件也不会再被从索引文件中删除。
Apache Lucene是一个使用Java开发的高性能的全文检索引擎,读者可以从这里下载最新版本的Lucene,详细的改进说明可以阅读Lucene ChangeLog。此外,基于Lucene的Solr也更新到了4.8.0版本,读者可以到其官网了解相关信息。
参考文档: