在 Solr 上更喜欢 Apache Lucene 的情况?

Posted

技术标签:

【中文标题】在 Solr 上更喜欢 Apache Lucene 的情况?【英文标题】:Situations to prefer Apache Lucene over Solr? 【发布时间】:2011-02-20 20:03:06 【问题描述】:

使用 Solr 1.4 有几个优点(开箱即用的分面搜索、分组、复制、http 管理与卢克……)。

即使我在我的 Java 应用程序中嵌入了搜索功能,我也可以使用 SolrJ 来避免使用 Solr 时的 HTTP 权衡。是否推荐 SolrJ?

那么,您建议什么时候使用“纯 Lucene”?它是否具有更好的性能或需要更少的 RAM?单元测试更好吗?

PS:我知道this question。

【问题讨论】:

这里是其他“比较”lucenetutorial.com/lucene-vs-solr.html 和 lucidimagination.com/solutions/software/choosing-lucene-solr 再看看findbestopensource.com/article-detail/lucene-vs-solr 【参考方案1】:

如果您想将搜索功能完全嵌入您的应用程序中,并且不想像 Solr 那样维护一个单独的进程,那么使用 Lucene 可能更可取。例如,桌面应用程序可能需要一些搜索功能(例如使用 Lucene 搜索其文档的 Eclipse IDE)。您可能不希望此类应用程序启动像 Solr 这样的繁重进程。

【讨论】:

重是什么意思?在 CPU/RAM 或维护方面? 就物理资源而言,是的。 Solr 的启动时间在桌面应用程序中可能是不可接受的。 但我从未尝试过 EmbeddedSolrServer。这可能是嵌入 Solr 的一种有趣方式。【参考方案2】:

如果您有 Web 应用程序,请使用 Solr - 我已经尝试将两者集成,而且 Solr 更容易。否则,如果您不需要 Solr 的功能(想到的最重要的是分面搜索),请使用 Lucene。

【讨论】:

您使用的是 SolrJ 还是 HTTP 方法?我尝试将 lucene 嵌入到 web 应用程序中,这很容易。 我使用了 Solrj,所以我不需要从应用程序中发出 HTTP 请求。老实说,我不记得是什么让它变得困难,所以也许我在某个地方做了一些愚蠢的事情。 感谢您的回复。单元测试怎么样?设置 RAMDirectory 是否容易,就像我可以使用 lucene 一样? 我没试过,但显然是可以的:search.lucidimagination.com/search/… Lucene 支持分面搜索,但它与 Solr 提供的确实不同。在 upsert 时,您为每个文档编写分类法(将其视为二级倒排索引)。查询也不同。您使用构面术语并收集构面结果。【参考方案3】:

这是我必须使用 Lucene 的一种情况。

给定一组文档,找出其中最常用的术语。

在这里,我需要访问每个文档的术语向量(使用 TermVectorMapper 的低级 API)。使用 Lucene 非常简单。

另一个用例是对搜索结果进行非常专业的排序。例如,我希望搜索作者姓名(他写过多本书)以在前 10 个结果中从每个商店中生成一本书。在这种情况下,我会从每家书店找到结果,为了显示最终结果,我将从每家书店中挑选一个结果。在这里,您实际上是在进行多次搜索以生成最终结果。访问 lucene 的低级 API 肯定会有所帮助。

选择 Lucene 的另一个原因是尽快获得新的好东西。这不再是真的,因为它们都已合并,并且会有同步发布。

【讨论】:

关于 TermVectorMapper -> 你知道 Solr 是否可行?关于搜索顺序示例:这不能用 Solr 的分组功能来完成吗:blog.jteam.nl/2009/10/20/… TVMapper 是 Lucene 的核心。当您可以直接从源代码读取时,为什么要通过额外的层?而且我并不完全在寻找分组。我想要每个书店的所有结果,但我希望订单与循环法非常接近,并带有一些额外的标准。【参考方案4】:

我很惊讶没有人提到 NRT - 近实时搜索,Lucene 提供,但 Solr 还没有(目前)。

【讨论】:

真的吗?这是链接wiki.apache.org/lucene-java/NearRealtimeSearch ...我认为它也可用于 solr【参考方案5】:

如果您更关心可伸缩性而不是性能,请使用 Solr;如果您更关心性能而不是可伸缩性,请使用 Lucene。

【讨论】:

这个问题已经 4 岁了顺便说一句...看看 ElasticSearch!

以上是关于在 Solr 上更喜欢 Apache Lucene 的情况?的主要内容,如果未能解决你的问题,请参考以下文章

Apache Lucene 5.0/Solr 5.0 发布

Apache Solr - Lucene - 邮政编码半径搜索

Apache-solr

5 统计solr目录索引信息

Solr使用

搭建 Solr 单机服务