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界面或应用程序
参考文章: 企业search
你可以在这里find一个很好的比较lucence和solar的目的:
http://www.lucenetutorial.com/lucene-vs-solr.html
TLDR:Lucence只是引擎,Solar是你可以驾驶的车(配备rest-api等)