译自http://www.lucenetutorial.com/lucene-vs-solr.html
Lucene VS Solr
许多新接触Lucene和Solr的人会问一个显而易见的问题:我应该用Lucene还是Solr?
答案很简单:当你问自己这个问题时,99%的情况下你需要的是Solr。
将Solr和Lucene关系概念化的一种简单类比是汽车和发动机引擎。你不可以开发动机,但是可以开汽车。也就是说,Lucene是一种编程库,你不能原样使用,而Solr是一个完备的开箱即用的应用。
什么是Solr?
Apache Solr是基于Lucene并集成了其他所有优点的web应用。
它另外添加了如下功能:
XML/HTTP和JSON API
匹配高亮
分面检索和过滤(注:关于分面检索,参考http://en.wikipedia.org/wiki/Faceted_search,http://cdc.tencent.com/?p=1401 )
地理空间搜索
快速增量更新和复制索引
缓存
复制
web管理接口等
跟Lucene不同,Solr是一个可以部署在任意servlet上的web应用(war),例如jetty,tomcat,resin等。
它是否被很好的支持?
没错!Solr社区非常的活跃和有帮助。
Solr索引对于Lucene是否是可读的?反之亦然?
由于Solr底层采用了Lucene,因此Solr索引和Lucene索引其实是一回事。
从技术层面来说,其实没有Solr索引这么一回事,而是Solr实例创建了Lucene索引。
那么我应该在什么情况下使用Lucene?
例如你需要为一个桌面应用嵌入检索功能,Lucene可能是更为合适的选择。
在某些场景下,你对底层的Lucene API有定制的需求,Solr可能没有帮助反而会带来一定的障碍,因为它是一个间接的额外层次。