EmbeddedSolrServer的使用现在已经过时了吗?不建议?

时间:2013-10-01 07:06:17

标签: java search solr solrj

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

因为我打算在同一台机器上使用Solr,但应该使用哪种实现?我认为嵌入式更优选,因为我需要从同一台机器添加数据,因此通过HTTP添加不会有多大意义,不是吗? &安培;而且,将Solr作为单独的Web应用程序运行会比嵌入式应用程序消耗更多资源(不是吗?)。

但是现在use of EmbeddedSolrServer is not recommended,当人们需要将Solr与Web应用程序保持在同一台机器上时,人们如何使用Solr?

3 个答案:

答案 0 :(得分:2)

您可以将Solr设置为您用于Web应用程序的同一个Tomcat中的另一个“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搜索库)。 / p>

答案 1 :(得分:1)

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

答案 2 :(得分:0)

这个问题/答案已经很老了,操作指的是来自 OLD WIKI 的页面。 在撰写本文时,EmbeddedSolrServer 建议用于 TEST,不用于生产

Infact EmbeddedSolrServer 广泛用于 Solr 代码库的许多测试。

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

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