我知道Lucene和Solr是两个不同的Apache项目,它们旨在协同工作,但我不明白每个项目的目标。
根据我目前的了解,Lucene用于创建搜索索引,而Solr使用这些索引执行搜索。 我是正确的吗?还是这是完全不同的方法?
我知道Lucene和Solr是两个不同的Apache项目,它们旨在协同工作,但我不明白每个项目的目标。
根据我目前的了解,Lucene用于创建搜索索引,而Solr使用这些索引执行搜索。 我是正确的吗?还是这是完全不同的方法?
@darkheir: Lucene和Solr是两个不同的Apache项目,它们被设计为一起工作,我不明白每个项目的目的是什么。
Solr在底层使用了Lucene。Lucene对Solr API一无所知。
Lucene是一个强大的搜索引擎框架,可以让我们向应用程序中添加搜索功能。它提供了易于使用的API,同时隐藏了所有与搜索相关的复杂操作。任何应用程序都可以使用这个库,不仅仅是Solr。
Solr是围绕Lucene构建的。它不仅仅是一个http封装器,还已经被知道加入了更多武器库到Lucene(存档)。Solr可以直接使用,它是一个Web应用程序,除了Lucene提供的功能外,还提供了相关基础设施和更多功能。
@darkheir: Lucene用于创建搜索索引,而Solr使用此索引执行搜索。我是对的吗?还是这是完全不同的方法?
Lucene不仅为Solr创建索引,它还处理所有与搜索相关的操作。任何应用程序都可以使用Lucene框架。
例如Solr、Elastic Search、LinkedIn(是的,在后台),等等。
请查看这篇文章:Lucene vs Solr
更新(6/18/14)
何时使用Lucene?
何时使用Solr?
注意: 我并不是指 Solr 很难定制。Solr 非常灵活,提供了许多可插拔的 API 点,允许您投入自己的代码。
有些人属于“必须使用 Lucene”阵营,但仍然更喜欢 Solr 而不是纯 Lucene,因为它很容易使用。然而,他们从来不会限制自己最大程度地定制 Solr。
顺便说一句,我看到 Solr(4.x)上的资源比 Lucene(4.x)多。
Lucene是一个低级别的Java库(具有.NET等端口),它实现了索引、分析、搜索等功能。
Solr是一个独立的预配置产品/网页应用程序,它使用Lucene。如果您更喜欢处理HTTP API而不是Java API,则Solr适合您。Solr还具有一些额外的顶层功能(例如分组)。
Solr是建立在Lucene之上的搜索平台。
搜索平台从下到上有以下几个层次:
参考文章:企业搜索
SOLR是Lucene索引的包装器。
它很容易理解: SOLR是汽车,Lucene是它的引擎。你只需要知道如何驾驶汽车(SOLR),并且在遇到任何问题时也需要了解一些引擎(Lucene)方面的知识。
祝您驾车愉快 :)
您可以在这里找到关于Lucene和Solr目的的良好比较:
Lucene只是搜索引擎,而Solr则是配备rest-api等功能的可驾驶汽车。Apache Lucene是搜索引擎的原始版本,而Apache Solr继承了Lucene并具有新的内置功能,这些功能Apache Lucene无法提供。
您可以使用Apache Solr版本来节省资源和手动努力,而不是使用Apache Lucene。