我知道Lucene和Solr是2个不同的Apache projects,它们可以协同工作,但我不明白每个项目的目标是什么。
根据我的理解,直到现在,Lucene用于创建搜索索引,Solr使用此索引执行搜索。 我是对的还是这是一种完全不同的方法?
答案 0 :(得分:213)
@darkheir:Lucene和Solr是2个不同的Apache项目,它们可以协同工作,我不明白每个项目的目标是什么。
1)Solr在引擎盖下使用Lucene。 Lucene对Solr API一无所知。
2)Lucene是一个强大的搜索引擎框架,可以让我们为我们的应用程序添加搜索功能。它公开了一个易于使用的API,同时隐藏了所有与搜索相关的复杂操作。任何应用程序都可以使用此库,而不仅仅是Solr。
3)Solr围绕Lucene建造。它不仅仅是Lucene的http包装器,而是has been known to add more arsenal to Lucene。 Solr即用即用。它是一个Web应用程序,除Lucene提供的功能外,还提供相关的基础结构和更多功能。
@darkheir:Lucene用于创建搜索索引,Solr使用此索引执行搜索。我是对的还是这是一种完全不同的方法?
4) Lucene不仅仅为Solr 创建消费指数。 Lucene处理所有与搜索相关的操作。任何应用程序都可以使用Lucene框架。
例如Solr,Elastic Search,LinkedIn(是的,引擎盖下)等。
查看此文章:Lucene vs Solr
更新(2014年6月18日)
何时使用Lucene?
何时使用Solr?
注意强>: 我并不是说Solr很难定制。 Solr非常灵活,并提供了许多可插入的API点,允许您输入代码。
有些人,属于'必须使用Lucene '阵营,但仍然更喜欢Solr,因为它很容易使用。但是,他们从不限制自己最大限度地定制Solr。
顺便说一下,我看到Solr(4.x)上有比Lucene(4.x)更多的资源。
答案 1 :(得分:27)
Lucene是一个低级Java库(带有.NET的端口等),它实现索引,分析,搜索等。
Solr是一个使用Lucene的独立预配置产品/ webapp。如果您更喜欢使用HTTP API而不是Java API,Solr适合您。 Solr还有一些额外的功能(例如grouping)。
答案 2 :(得分:19)
概念化Solr和Lucene之间关系的简单方法 是一辆汽车及其发动机。你不能驾驶引擎,但是你 可以开车。同样,Lucene是一个程序化的库 不能按原样使用,而Solr是一个完整的应用程序,你可以 使用开箱即用。
答案 3 :(得分:9)
SOLR是Lucene索引的包装器。
很容易理解: SOLR是汽车,Lucene是引擎。您只需要知道如何驾驶汽车(SOLR)并且还需要了解发动机(Lucene)的一些事情,以防您的汽车发动机出现任何问题。
安全驾驶:)
答案 4 :(得分:9)
Solr建立在lucene之上,提供搜索平台。
从下到上搜索以下图层中的平台:
参考文章:Enterprise search
答案 5 :(得分:1)
您可以通过以下方式想象它-Apache Lucene是Apache Solr内部使用的库。它是用Java编写的,并提供了惊人的全文本搜索和索引功能。它可以分析来自世界各地的多种语言,并准备使用这些语言编写的文本,以便高效,快速地进行搜索和分析。 Lucene是一个库-您可以在应用程序中直接使用它,并自己实现所有功能,但是Apache Solr提供了很多现成的功能。
Apache Solr搜索引擎提供了HTTP API之类的功能,您可以使用这些功能将数据发送给它们,然后在该数据上进行搜索。您可以使用API控制搜索引擎,创建分布式环境,并自动在多个节点之间以及许多其他节点之间分布数据。
答案 6 :(得分:0)
你可以在这里找到关于lucence和solar的目的的一个很好的比较:
http://www.lucenetutorial.com/lucene-vs-solr.html
TLDR:Lucence只是引擎,Solar是你可以驾驶的车(配备rest-api等)。