Lucene vs Solr

这是一篇译文,原文链接: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/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。

如果您喜欢这篇博文,欢迎您捐赠书影博客: ,查看支付宝二维码