太阳光和荧光的区别

我知道 Lucene 和 Solr 是两个不同的 阿帕奇计划,它们被设计成一起工作,但是我不明白每个项目的目标是什么。

到目前为止,我所理解的是 Lucene 用于创建搜索索引,Solr 用这个索引执行搜索。 我说的对吗,还是这完全是另一种方式?

77957 次浏览

Lucene 是一个底层的 Java 库(带有.NET 等的端口) ,它实现了索引、分析、搜索等功能。

Solr 是一个独立的预配置产品/webapp,它使用 Lucene。如果您更喜欢处理 HTTPAPI 而不是 JavaAPI,那么 Solr 非常适合您。Solr 在顶部还有一些额外的特性(例如 分组)。

Lucene 和 Solr 是两个不同的 Apache 项目,它们被设计成一起工作,我不明白每个项目的目的是什么。

  1. Solr 在底层使用 Lucene,Lucene 对 Solr API 一无所知。

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

  3. Solr 是围绕 Lucene 建造的。它不仅仅是 Lucene 的一个 http 包装器,而且是 已知的 添加更多的阿森纳到 Lucene (存档)。Solr 已经可以随时使用了。它是一个 Web 应用程序,除了 Lucene 提供的功能之外,它还提供了相关的基础设施和更多的特性。

Lucene 用于创建一个搜索索引,Solr 使用这个索引执行搜索。我说的对吗,还是这完全是另一种方式?

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

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

看看这篇文章: Lucene VS Solr

更新(6/18/14)

何时使用 Lucene?

  • 你是一个搜索工程师
  • 你是个程序员
  • 你想完全控制几乎所有的内部 Lucene 和
  • 您的需求要求您对 Lucene AND 进行各种各样的极客定制
  • 您愿意关注搜索的基础结构元素,如扩展、分发等。

何时使用 Solr?

  • 至少上面的其中一个是没有意义的
  • 您需要一些可以随时使用即开即用(即使不了解 Java) OR 的东西
  • 您的基础设施需求超过了搜索自定义需求。

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

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

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

一个简单的方法来概念化 Solr 和 Lucene 之间的关系 就是汽车和它的发动机。你不能驾驶发动机,但是你 类似地,Lucene 是一个可编程的库,你可以 不能按原样使用,而 Solr 是一个完整的应用程序,您可以 使用开箱即用的。

资料来源: Lucene-vs-solr-Lucene 教程

SOLR 是一个 包装纸/Lucene 索引。

这很容易理解: SOLR 是 ,Lucene 是 引擎。你只需要知道如何驾驶汽车(SOLR) ,也需要知道一些事情的发动机(Lucene)的情况下,如果将有任何问题在您的汽车发动机。

安全驾驶:)

Solr 构建在 Lucene 之上,提供一个搜索平台。

搜索平台分为以下几层:

    • 用途: 表示各种数据类型和数据源
  • 建立文件
    • 用途: 构建用于索引的文档信息
  • 索引和搜索
    • 用途: 构建和查询文档索引
  • 逻辑增强
    • 用途: 用于处理搜索查询和结果的附加逻辑
  • 搜寻平台服务
    • 用途: 增加搜索引擎核心的附加功能,提供一个服务平台。
  • UI 应用程序
    • 用途: 最终用户搜索界面或应用程序

solr stack

参考文章: 企业搜索

你可以在这里找到一个关于朗斯和太阳能的目的的很好的比较:

Http://www.lucenetutorial.com/lucene-vs-solr.html

朗讯只是引擎,太阳能是你可以驾驶的汽车(配备休息 api 等)

您可以按照下面的方式来设想—— ApacheLucene 是 ApacheSolr 在内部使用的库。它是用 Java 编写的,提供了惊人的全文搜索和索引功能。它可以分析来自世界各地的大量语言,并准备在这些语言的文本,以高效和快速的搜索和分析。Lucene 是一个库——您可以直接在应用程序中使用它,并自己实现所有内容,但 Apache Solr 提供了很多开箱即用的功能。

ApacheSolr 搜索引擎提供了诸如 HTTPAPI 之类的东西,您可以使用这些东西向它们发送数据,并在以后搜索这些数据。您可以使用 API 控制搜索引擎,创建分布式环境,并自动将数据分布到多个节点以及更多的节点。

Apache Lucene 是针对搜索引擎的普通版本 ,而 Apache Solr 继承了 Lucene具有 Apache Lucene 没有开箱即用的新内置特性。

您可以使用 ApacheSolr,而不必使用 ApacheLucene 来节省资源和手动工作。