solr和lucene之间的区别

2022-08-31 06:48:03

我知道Lucene和Solr是两个不同的Apache项目,它们是为了一起工作而制作的,但我不明白每个项目的目的是什么。

到目前为止,我所理解的是,Lucene用于创建搜索索引,而Solr使用此索引来执行搜索。我是对的,还是这是一种完全不同的方法?


答案 1

@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使用此索引执行搜索。我是对的,还是这是一种完全不同的方法?

  1. Lucene不只是为Solr的消费创建索引。Lucene 处理所有与搜索相关的操作。任何应用程序都可以使用 Lucene 框架。

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

看看这篇文章: 卢塞恩 vs 索尔

更新 (6/18/14)

什么时候使用卢塞恩?

  • 您是搜索工程师,并且
  • 你是一个程序员,并且
  • 您希望完全控制 Lucene 的几乎所有内部,并且
  • 您的要求要求您对Lucene和
  • 您愿意处理搜索中的基础架构元素,例如缩放,分布等。

什么时候使用Solr?

  • 以上至少有一个没有意义。或
  • 你想要一些开箱即用的东西(即使没有Java知识)或
  • 您的基础结构要求超过了搜索自定义要求。

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

有些人属于“必须使用Lucene”的阵营,但仍然更喜欢Solr而不是普通的Lucene,因为它易于使用。但是,他们从不限制自己最大限度地自定义Solr。

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


答案 2

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

Solr是一个独立的预配置产品/web应用程序,它使用Lucene。如果您更喜欢处理HTTP API而不是Java API,Solr适合您。Solr在顶部也有一些额外的功能(例如分组)。


推荐