从去年学习和使用Lucene+Solr到现在,也一年多了,从中学到了很多的东西。当时是基于lucene2.9.1和solr1.4.0学习和做一些 改进的工作。那时Solr和Lucene比还是非常不成熟的项目,不过现在不同了,最新Solr代码已经和Lucene合并成一个开发分支 (http://svn.apache.org/repos/asf/lucene/dev/trunk/),Solr的链接也已经放到Lucene项目 最显眼的地方了。现在Lucene和Solr的最新版本都是3.2,可以发现Solr已经成为Lucene非常重要的部分了。
我们可以看看它们之间版本的对应关系。(因为我是从1.4.0开始的,对之前的不是特别了解,而且之前Solr的发展也不是那么快,所以我只列举1.4.0开始的情况)
2009/11/10 Solr 1.4.0 --- Lucene 2.9.1
2010/5/27 Solr 1.4.1 --- Lucene 2.9.3
2011/3 Solr 3.1 --- Lucene 3.1
2011/5 Solr 3.2 --- Lucene 3.2
在Solr1.4.x的时候,Solr和Lucene是独立发布的,Solr一般会在Lucene发布新版本后跟进发布一个新的版本。到了3.1的时候,两者代码做了合并,版本号统一了,并同时发布。
目前的版本状况:Lucene 2.9.x 与Solr 1.4.x 基于java 1.4(没有泛型的支持),Lucene 3.x基于java5,主要fix一些bug。现在正在开发的新版本应该是4.0,也就是http://svn.apache.org/repos /asf/lucene/dev/trunk/,什么时候release还不是特别清楚,从dev的mailing-list的讨论来看,今年应该会有 release。
因为我目前工作开发还是基于Lucene2.9.3和Solr1.4.1,而Lucene和Solr新版本有许多有用的新特征,所以打算抽空学习一下,希 望能把一下好的东西用上。另外在初学Lucene是发现资料很少,中文的资料更少,有的一些也是将一些API的基本用法,幸亏当时发现了一个讲 Lucene源代码非常好的blog(http://www.cnblogs.com/forfuture1978/archive/2010/06/13/1757479.html ), 非常感谢这么细致的代码剖析,对Lucene2.9.x的代码做了细致的分析。不过现在新的版本有了非常大的变化,而且对于一个企业的应用来说,Solr 的功能,如管理监控,Replication,Distributed Search,Facet等等都是必不可少的功能,对于Solr的源代码,那些博客没有涉及。所以打算在学习的过程中把一些心得记录下来,和大家学习和切 磋。这就是计划写这个学习笔记的目的。