Lucene 4.8.0 公布了,变化一如既往的大,新特性一一解读

Lucene 4.8.0 发布了,变化一如既往的大,新特性一一解读

Lucene 4.8.0 发布了,变化一如既往的大,新特性一一解读


Lucene 4.8.0 公布了,变化一如既往的大,新特性一一解读


    10年之前,你是1.0; 10年之后,你是4.8 。放在10年这个时间跨度上看,也许变化就没那么大了。


    看看这次发布有哪些变化吧:


    1、Apache Lucene 现在要求Java的最低版本为:Java 7 , update 55 ;推荐使用 Oracle Java 7 或 OpenJDK 7 ,之前版本的JVM bug 会影响到lucene。


    2、Apache Lucene全面兼容 Java 8。


    3、所有的索引文件开始存储checksums,在索引合并和读取的时候进行有效性检查。减少出现某个索引文件(物理)损坏带来的问题,主要是针对硬件或者JVM bug 引起的索引损坏。


    4、提供了针对第一次搜索结果集合的重打分(权重调整)API;相当于对搜索结果的二次自定义排序。

    5、AnalyzingInfixSuggester 类提供了支持NRT的自动建议功能。

    6、把基于批量处理的打分过程 bulk scoring 和基于迭代的打分过程分离了,这对于批量打分的过程更高效一些。

    7、在建立索引的时候针对Hash term 使用了 MurmurHash3 的hash方法,很高效的方法。

          http://zh.wikipedia.org/wiki/Murmur%E5%93%88%E5%B8%8C

    8、 IndexWriter现在支持更新二进制类型的字段了。


    9、优化了 HunspellStemFilter  占用内存的大小(10至100倍的减少)
          Hunspell 是一种检查拼写spellcheck流行的方法, OpenOffice中就用了它来进行拼写检查。
          HunspellStemFilter  是TokenFilter的扩展,可以用这个算法来过滤词的不同变形(时态,语气等)。
          中文的Token应该享受不到这个特性。
          http://en.wikipedia.org/wiki/Hunspell


     10、Lucene现在使用Java 7中的文件系统函数,比如即使在索引打开的时候,也可以删除索引文件。

     11、修复了NativeFSLockFactory 中的一个严重的bug :允许多个IndexWriter获得一个lock。
             所以强烈建议升级到 lucene 4.8 。

            

    参考:

            1、 http://lucene.apache.org/core/4_8_0/changes/Changes.html#v4.8.0.new_features

             2、Lucene 4.0 正式版发布,亮点特性中文解读

             3、欢迎订阅作者微博