solr和lucene之间的区别

dar*_*eir 154 java lucene solr

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

据我所知,直到现在,Lucene用于创建搜索索引,Solr使用此索引执行搜索.我是对的还是这是一种完全不同的方法?

pha*_*ani 222

@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

更新(2014年6月18日)

什么时候使用Lucene?

  • 您是搜索工程师AND
  • 你是程序员和
  • 你想要完全控制Lucene AND的几乎所有内部
  • 您的要求要求您对Lucene AND进行各种令人讨厌的定制
  • 您愿意照顾您的搜索的基础设施元素,如缩放,分发等.

何时使用Solr?

  • 至少有一个上面没有意义.要么
  • 你想要一些可以立即使用的东西(即使没有Java知识)或者
  • 您的基础架构要求超过了搜索自定义要求.

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

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

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


min*_*das 29

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

Solr是一个使用Lucene的独立预配置产品/ webapp.如果您更喜欢使用HTTP API而不是Java API,Solr适合您.Solr还在顶部有一些额外的功能(例如分组).


Vik*_*mar 20

概念化Solr和Lucene之间关系的一种简单方法是汽车及其引擎.你不能驾驶引擎,但你可以驾驶汽车.同样,Lucene是一个程序库,你不能原样使用,而Solr是一个完整的应用程序,你可以使用开箱即用.

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

  • 这是从http://www.lucenetutorial.com/lucene-vs-solr.html复制粘贴的.每当您复制粘贴答案引用来源时,请提及来源.;) (4认同)

min*_*xue 12

Solr建立在lucene之上,提供搜索平台.

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

  • 数据
    • 目的:代表各种数据类型和来源
  • 文件编制
    • 目的:构建索引的文档信息
  • 索引和搜索
    • 目的:构建和查询文档索引
  • 逻辑增强
    • 目的:用于处理搜索查询和结果的附加逻辑
  • 搜索平台服务
    • 目的:添加搜索引擎核心的其他功能以提供服务平台.
  • UI应用程序
    • 目的:最终用户搜索界面或应用程序

solr堆栈

参考文章:企业搜索


Beh*_*shi 10

SOLR是Lucene索引的包装器.

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

安全驾驶:)

  • 更不用说如果您愿意,可以*使用Lucene引擎建造自己的汽车。 (2认同)