我知道 Lucene 和 Solr 是 2 个不同的Apache projects一起工作,但我不明白每个项目的目的是什么。
到目前为止,我所理解的是 Lucene 用于创建搜索索引,Solr 使用此索引执行搜索。
@ darkheir:Lucene 和 Solr 是 2 个不同的 Apache 项目,它们是一起工作的,我不明白每个项目的目的是什么。
Solr 在引擎盖下使用 Lucene。Lucene 对 Solr API 一无所知。
Lucene 是一个强大的搜索引擎框架,它让我们为我们的应用程序添加搜索能力。它公开了一个易于使用的 API,同时隐藏了所有与搜索相关的复杂操作。任何应用程序都可以使用这个库,而不仅仅是 Solr。
Solr 是围绕 Lucene 构建的。它不仅仅是围绕 Lucene 的 http-wrapper,而是has been known to add more nal to Lucene(已存档)。Solr 开箱即用。它是一个 Web 应用程序,除了 Lucene 提供的功能外,还提供相关的基础架构和更多的功能。
@ darkheir:Lucene 用于创建搜索索引,Solr 使用该索引进行搜索,我是对的还是完全不同的方法?
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)更多。
Lucene 是一个低级的 Java 库(与端口到.NET 等),它实现了索引,分析,搜索等。
Solr 是一个独立的预配置产品 / webapp,它使用 Lucene。如果您更喜欢处理 HTTP API 而不是 Java API,Solr 适合您。Solr 还在顶部获得了一些额外的功能 (例如grouping)。
概念化 Solr 和 Lucene 之间关系的一种简单方法是汽车及其发动机。你不能驾驶发动机,但你可以驾驶汽车。同样,Lucene 是一个程序库,你不能按原样使用,而 Solr 是一个完整的应用程序,你可以开箱即用。
Source:Lucene-vs-solr-Lucene TutorialSolr 构建在 lucene 之上,以提供搜索平台。
搜索平台从下到上分为以下几层:
数据
目的:表示各种数据类型和来源
文件建设
目的:构建用于索引的文档信息
索引和搜索
目的:建立和查询文档索引
逻辑增强
目的:处理搜索查询和结果的附加逻辑
搜索平台服务
目的:添加搜索引擎核心的附加功能以提供服务平台。
UI 应用程序
用途:最终用户搜索界面或应用程序
参考文章:Enterprise search
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(70条)