solr和lucene之间的区别

我知道Lucene和Solr是两个不同的Apache项目 ,但是我不明白每个项目的目标是什么。

对于我所了解的直到现在,Lucene被用来创build一个search索引,Solr使用这个索引来执行search。 我是对的还是这是一个完全不同的方法?

@darkheir:Lucene和Solr是两个不同的Apache项目,一起工作,我不明白每个项目的目标是什么。

1)Solr在引擎下使用Lucene。 Lucene没有关于Solr API的线索。

2)Lucene是一个强大的search引擎框架,可以让我们为我们的应用程序添加searchfunction。 它揭示了一个易于使用的API,同时隐藏了所有与search有关的复杂操作。 任何应用程序都可以使用这个库,而不仅仅是Solr。

3)Solr是围绕Lucenebuild立的。 它不仅仅是一个围绕Lucene的http包装,而且还被称为将更多的武库添加到Lucene中 。 Solr已经可以随时使用了。 这是一个Web应用程序,除了Lucene提供的function外,还提供了相关的基础设施和更多function。

@darkheir:Lucene用来创build一个search索引,Solr使用这个索引来执行search。 我是对的还是这是一个完全不同的方法?

4) Lucene不仅为Solr创build索引 。 Lucene处理所有search相关的操作。 任何应用程序都可以使用Lucene框架。

例子有Solr,Elastic Search,LinkedIn(是的,引擎盖下)等等。

看看这篇文章: Lucene vs Solr

更新(6/18/14)

何时使用Lucene?

  • 你是一名search工程师和
  • 你是一个程序员
  • 你想完全控制几乎所有的Lucene AND内部
  • 您的要求要求您为Lucene AND做各种令人讨厌的定制
  • 您愿意照顾您的search的基础设施元素,如缩放,分配等。

何时使用Solr?

  • 以上至less有一个是没有意义的。 要么
  • 你想要一些可以立即使用的东西(即使没有Java的知识)或者
  • 您的基础设施要求胜过search自定义要求。

注意 :我不是说Solr很难定制。 Solr非常灵活,并提供了大量的可插入API点,允许您投入代码。

有些人不得不使用Lucene阵营,但仍然更喜欢Solr,因为它很容易使用。 但是,他们从来没有限制自己最大限度地定制Solr。

顺便说一句,我看到有更多的资源在Solr(4.x)比Lucene(4.x)。

Lucene是一个实现索引,分析,search等function的低级Java库(带有.NET的端口等)。

Solr是使用Lucene的独立预configuration产品/ webapp。 如果您更喜欢使用HTTP API而不是Java API,那么Solr就是为您服务的。 Solr也有一些额外的function(例如分组 )。

Solr和Lucene之间的关系的一个简单的方法是一辆汽车和它的引擎。 你不能开一辆发动机,但是你可以开一辆车。 同样,Lucene是一个程序库,您不能使用它,而Solr是一个完整的应用程序,您可以立即使用它。

来源: Lucene-vs-solr – Lucene教程

SOLR是Lucene索引的封装

这很容易理解:SOLR是汽车,而Lucene是它的引擎 。 你只需要知道如何驾驶汽车(SOLR),也需要知道发动机(Lucene)的一些事情,以防万一你的汽车发动机会有问题。

有一个安全的驱动器:)

Solrbuild立在lucene之上,提供一个search平台。

search平台从下到上的层次从下到上:

  • 数据
    • 目的:表示各种数据types和来源
  • 文件build设
    • 目的:为索引build立文档信息
  • 索引和search
    • 目的:构build和查询文档索引
  • 逻辑增强
    • 目的:处理search查询和结果的附加逻辑
  • search平台服务
    • 目的:添加search引擎核心的附加function以提供服务平台。
  • UI应用程序
    • 目的:最终用户search界面或应用程序

solr栈

参考文章: 企业search

你可以在这里find一个很好的比较lucence和solar的目的:

http://www.lucenetutorial.com/lucene-vs-solr.html

TLDR:Lucence只是引擎,Solar是你可以驾驶的车(配备rest-api等)