solr和lucene的区别

新手上路,请多包涵

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

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

原文由 darkheir 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 367
2 个回答

@darkheir:Lucene 和Solr 是两个不同的Apache 项目,它们可以协同工作,我不明白每个项目的目标是什么。

  1. Solr 在底层使用 Lucene。 Lucene 对 Solr API 毫无头绪。

  2. Lucene 是一个强大的搜索引擎框架,让我们可以将搜索功能添加到我们的应用程序中。它公开了一个易于使用的 API,同时隐藏了所有与搜索相关的复杂操作。任何应用程序都可以使用这个库,而不仅仅是 Solr。

  3. Solr 是围绕 Lucene 构建的。它不仅仅是一个围绕 Lucene 的 http-wrapper,而且 众所周知可以 为 Lucene 添加更多武器库(已存档)。 Solr 开箱即用。它是一个 Web 应用程序,除了 Lucene 提供的功能外,还提供相关的基础架构和更多功能。

@darkheir:Lucene 用于创建搜索索引,Solr 使用该索引执行搜索。我是对的还是这是一种完全不同的方法?

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

例如 Solr、Elastic Search、LinkedIn(是的,在幕后)等。

查看这篇文章: Lucene vs Solr

更新 (6/18/14)

什么时候使用 Lucene?

  • 你是一名搜索工程师并且
  • 你是一名程序员并且
  • 你想要完全控制 Lucene 的几乎所有内部结构并且
  • 您的要求要求您对 Lucene 进行各种令人讨厌的定制,并且
  • 您愿意处理搜索的基础架构元素,例如扩展、分发等。

什么时候使用 Solr?

  • 至少上述其中一项没有意义。或者
  • 您想要开箱即用的东西(即使不了解 Java)或
  • 您的基础架构要求超过搜索自定义要求。

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

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

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

原文由 phanin 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

原文由 mindas 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题