我知道Lucene和Solr是两个可以一起工作的Apache项目,但是我不明白每个项目的目的是什么。
我到目前为止所了解的是,Lucene用于创建搜索索引,而Solr使用该索引执行搜索。我是对的还是这是完全不同的方法?
我知道Lucene和Solr是两个可以一起工作的Apache项目,但是我不明白每个项目的目的是什么。
我到目前为止所了解的是,Lucene用于创建搜索索引,而Solr使用该索引执行搜索。我是对的还是这是完全不同的方法?
Answers:
@darkheir:Lucene和Solr是两个可以一起工作的Apache项目,我不明白每个项目的目的是什么。
1)Solr在引擎盖下使用Lucene。Lucene不了解Solr API。
2)Lucene是强大的搜索引擎框架,可让我们向应用程序中添加搜索功能。它公开了一个易于使用的API,同时隐藏了所有与搜索相关的复杂操作。任何应用程序都可以使用此库,而不仅仅是Solr。
3)Solr是围绕Lucene构建的。它不仅是围绕Lucene的http包装器,而且还为Lucene添加了更多的武器库。Solr可以直接使用。它是一个Web应用程序,除了提供Lucene提供的功能外,还提供相关的基础结构和更多功能。
@darkheir:Lucene用于创建搜索索引,Solr使用该索引执行搜索。我是对的还是这是完全不同的方法?
4)Lucene不仅为Solr创建消耗量的索引。Lucene处理所有与搜索有关的操作。任何应用程序都可以使用Lucene框架。
例如,Solr,Elastic Search,LinkedIn(是的,在后台)等等。
看看这篇文章:Lucene vs Solr
更新(6/18/14)
何时使用Lucene?
何时使用Solr?
注意:我并不是说Solr很难自定义。Solr非常灵活,并提供了许多可插拔的API点,使您可以插入代码。
有些人属于“ 必须使用Lucene ”阵营,但由于它易于使用,因此仍然偏爱Solr而不是普通的Lucene。但是,他们从不限制自己最大程度地定制Solr。
顺便说一句,我发现Solr(4.x)上的资源比Lucene(4.x)多。
概念化Solr和Lucene之间关系的一种简单方法是汽车及其引擎。您不能驾驶发动机,但可以驾驶汽车。同样,Lucene是一个程序库,不能按原样使用,而Solr是一个完整的应用程序,可以直接使用。
SOLR是Lucene索引的包装。
简单理解:SOLR是汽车,Lucene是其引擎。您只需要知道如何驾驶汽车(SOLR),还需要了解一些发动机(Lucene)的知识,以防您的汽车发动机出现任何问题。
安全开车:)
您可以通过以下方式来想象-Apache Lucene是Apache Solr内部使用的库。它用Java编写,并提供了惊人的全文本搜索和索引功能。它可以分析来自世界各地的大量语言,并准备使用这些语言编写的文本,以便高效,快速地进行搜索和分析。Lucene是一个库-您可以在应用程序中直接使用它并自己实现所有功能,但是Apache Solr提供了许多现成的功能。
Apache Solr搜索引擎提供了诸如HTTP API之类的功能,您可以使用这些功能将数据发送给它们,然后在该数据上进行搜索。您可以使用API控制搜索引擎,创建分布式环境并自动在多个节点之间以及许多其他节点之间分布数据。
您可以在此处找到关于lucence和solar用途的良好比较:
http://www.lucenetutorial.com/lucene-vs-solr.html
TLDR:Lucence只是引擎,Solar是您可以驾驶的汽车(配备rest-api等)