3

我需要将搜索功能添加到我在 tomcat 上运行的 Java webapp 以及同一台机器上的数据库中。

由于我打算在同一台机器上使用 Solr,但应该使用哪个实现?我认为嵌入式更可取,因为我需要从同一台机器添加数据,所以通过 HTTP 添加不会有多大意义,不是吗?此外,将 Solr 作为单独的 Web 应用程序运行会比嵌入式应用程序消耗更多的资源(不是吗?)。

但是既然不推荐使用 EmbeddedSolrServer,那么当人们需要将 Solr 与 webapp 保持在同一台机器上时,如何使用 Solr 呢?

4

3 回答 3

2

您可以在您用于 Web 应用程序的同一个 Tomcat 中将 Solr 设置为另一个“Web 服务”,进行适当的配置并通过 HTTP/REST 接口使用它。或者,您也可以使用开箱即用的 Jetty 容器。在此处查看有关如何安装的更多详细信息:http ://wiki.apache.org/solr/SolrInstall 。

我不相信使用嵌入式 solr 会消耗(少得多)资源......如果你真的不想分离事物(应用程序和 solr),可能你应该直接查看 Lucene 而不是 Solr,因为主要目标Solr 是允许为 Lucene 创建 Web 服务接口,可以从任何应用程序访问(它还有几个其他扩展 - http://lucene.apache.org/solr/features.html,但 Solr 的核心是Lucene java 搜索库)。

于 2013-10-01T07:22:10.010 回答
1

您引用的页面回答了您的问题。您将 Solr 作为服务在其自己的 JVM 中的同一台机器上运行,并通过 HTTP(到 localhost)与其交互。

于 2013-10-01T07:09:13.783 回答
0

这个问题/答案非常古老,操作员指的是来自 OLD WIKI 的页面。在撰写本文时,EmbeddedSolrServer通常建议将其用于 TEST,而不是用于生产

InfactEmbeddedSolrServer广泛用于 Solr 代码库的许多测试中。

最近我注意到,即使在 solr 文档中也没有明确的说明来解释如何使用它。因此,我编写了一个 Java 示例,帮助您编写自己的测试配置、加载数据和运行 junit 单元测试。

https://github.com/freedev/EmbeddedSolrServer-junit-example

于 2021-01-21T09:59:52.947 回答