这是一篇译文,原文链接:http://www.lucenetutorial.com/lucene-vs-solr.html
许多刚刚接触Lucene与Solr的朋友会问一个比较浅显的问题:我应该使用Lucene还是Solr?
答案很简单:如果你问了自己这个问题,99%的情况下,你需要使用的是Solr。
要搞明白Solr与Lucene之间的关系,可以简单地用汽车与引擎做类比。你不能驾驶一台引擎,但是可以驾驶一辆汽车。类似的,Lucene是一个不可以原样使用(use as-is)的编程库,而Solr是一个可以“开箱即用”的完整的应用。
Solr是什么?
Apache Solr是基于Lucene构建并集成了许多额外特性的Web应用程序。
它添加的功能包括:
- XML/HTTP 与 JSON APIs
- 命中高亮
- 分面搜索(Faceted Search)与过滤
- 地理空间搜索(Geospatial Search)
- 快速的增量更新与索引复制(Index Replication)
- 缓存
- 复制(Replication)
- Web管理接口等等
与Lucene不同,Solr是一款Web应用程序(WAR),可以部署到任何servlet容器之中,比如Jetty,Tomcat,Resin等等。
Solr可以为非编程人员安装和使用。Lucene不能。
Solr的支持完善吗?
是的!Solr社区非常活跃并且乐于助人。
Solr的索引可以被Lucene读取吗,反过来呢?
由于Solr底层使用的是Lucene,Solr索引实际上与Lucene索引是一回事。
从技术层面上讲,并不存在Solr索引这一概念,而只有Solr实例创建的Lucene索引。
我什么时候应该使用Lucene?
比如当你需要将Lucene搜索引擎嵌入到桌面应用程序中的时候,Lucene会是更加合适的选择。
对于高度定制化的需求,需要访问Lucene的底层API类的时候,Solr可能更多的是帮倒忙了,因为它是一个额外的间接层。
本文链接:http://bookshadow.com/weblog/2015/09/05/lucene-vs-solr/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。