Java solr和lucene之间的差异

Java solr和lucene之间的差异,java,solr,lucene,Java,Solr,Lucene,我知道Lucene和Solr是为了一起工作而设计的两个不同的项目,但我不明白每个项目的目标是什么 因为到目前为止我所了解的是Lucene用于创建搜索索引,Solr使用此索引执行搜索。 我说的对吗?或者这是一种完全不同的方法?Lucene是一个低级Java库(带有到.NET等的端口),它实现了索引、分析和搜索等功能 Solr是一款使用Lucene的独立预配置产品/webapp。如果您更喜欢处理HTTP API而不是Java API,那么Solr适合您。Solr还有一些额外的功能(例如)。@dark

我知道Lucene和Solr是为了一起工作而设计的两个不同的项目,但我不明白每个项目的目标是什么

因为到目前为止我所了解的是Lucene用于创建搜索索引,Solr使用此索引执行搜索。
我说的对吗?或者这是一种完全不同的方法?

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

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

@darkheir:Lucene和Solr是两个不同的Apache项目,它们是为了协同工作而设计的,我不知道每个项目的目的是什么。

1) Solr在引擎盖下使用Lucene。Lucene对Solr API没有任何线索

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

3) Solr是围绕Lucene建造的。它不仅是围绕Lucene的http包装器,而且是。Solr已准备好开箱即用。它是一个web应用程序,除了Lucene提供的功能外,还提供相关的基础设施和更多功能

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

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

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

查看本文:

更新(2014年6月18日)

何时使用Lucene?

  • 你是一名搜索工程师
  • 你是一名程序员,而且
  • 你想要完全控制Lucene和
  • 您的需求要求您对Lucene和
  • 您愿意关注搜索的基础设施元素,如扩展、分发等
何时使用Solr?

  • 以上至少有一条没有意义。或
  • 您想要现成的东西(即使不懂Java),或者
  • 您的基础架构需求超过了搜索定制需求
注意: 我不是说Solr很难定制。Solr非常灵活,提供了许多可插入的API点,允许您插入代码

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

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

概念化Solr和Lucene之间关系的简单方法 是一辆汽车和它的引擎。你不会开引擎,但你 我会开车。类似地,Lucene是一个编程库,您可以 不能按原样使用,而Solr是一个完整的应用程序,您可以 使用现成的


来源:

SOLR是Lucene索引的一个包装器

这很容易理解: SOLR是汽车,Lucene是它的引擎。你只需要知道如何驾驶汽车(SOLR),还需要知道发动机(Lucene)的一些事情,以防汽车发动机出现任何问题


安全驾驶:)

Solr构建在lucene之上,提供搜索平台。

从下到上在以下层中搜索平台:

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


参考文章:

您可以在这里找到关于朗讯和太阳能用途的比较:


TLDR:Lucence只是引擎,Solar是你可以驾驶的汽车(配备rest api等)

你可以这样想象——Apache Lucene是Apache Solr内部使用的库。它是用Java编写的,提供了惊人的全文搜索和索引功能。它可以分析来自世界各地的大量语言,并用这些语言准备文本,以进行高效、快速的搜索和分析。Lucene是一个库——您可以在应用程序中直接使用它,并自己实现所有功能,但Apache Solr提供了很多现成的功能


ApacheSolr搜索引擎提供了HTTP API之类的东西,您可以使用这些API向他们发送数据,然后再搜索这些数据。您可以使用API控制搜索引擎,创建分布式环境,并将数据自动分发到多个节点和许多、更多节点。

难道(以及Lucene的等效页面)没有回答这个问题吗?是的,您是对的,solr features页面澄清了区别。Si如果我理解,我可以单独使用Lucene,但Solr需要Lucene来工作。与Lucene不同,Solr是一个web应用程序(WAR),可以部署在任何servlet容器中,例如Jetty、Tomcat、Resin等。Solr可以由非程序员安装和使用。卢塞恩