2016-04-24 38 views
0

有没有什么办法可以将apache solr整合到tomcat 7中,还是必须在我的应用程序中运行两台服务器?可以在tomcat中运行apache solr而不是作为单独的服务器?如何在apache tomcat 7中集成apache solr?

+0

一个很好的方法是使用Spring Data Solr:http://projects.spring.io/spring-data-solr/ – duffymo

回答

0

官方回答是:将其作为独立应用程序运行。

不再支持

使用Solr 5.0开始,不再支持部署Solr的在servlet容器如Tomcat战争的支持。

有关如何将Solr作为独立服务器安装的信息,请参阅Installing Solr

关于此举的决定背景可以参考on the Solr Wiki

Solr旨在成为服务器而不是Java Web应用程序,类似于MySQL或Apache Web服务器。 Solr第一次创建时,将其设计为一个Web应用程序是一个方便的选择,以避免编写大量棘手的代码来构建网络层。这些天来,这个设计决定已经成为一个限制因素。

当您下载Solr并将其安装到您的机器上时,它应该是开始的Solr。在将Solr安装到第三方应用程序(servlet容器)之前,应该没有必要安装它。

目前,Solr仍然是一个web应用程序,但这是一个内部实现细节,而不是一个不可变属性。目的是使Solr成为一个完全独立的应用程序。启动包含容器的启动脚本是实现该目标的第一步。一旦Solr是独立应用程序,Jetty仍可能是所用的技术,但如果发生这种情况,它将在内部嵌入。

0

Solr仍然是一个网络应用程序。他们建议不要在另一个servlet容器中使用它,因为它不被推荐和测试。

他们正在给一个完全测试的系统,并且不希望其他人(开发人员)花时间在其他容器上进行测试。

我用solr 3.4版本,并将其部署在Tomcat服务器在端口8080上 我的应用程序在8080端口部署在另一tomcat,是另一台机器上。

我创建了solr war并在tomcat中部署了它。只有该服务器的8080端口是开放的并且只能由我们的应用程序访问。我不确定solr版本5 ...即,是否可以在比jetty以外的其他容器中部署...但我认为它可以在tomcat部署......你需要尝试同一...

另一件事是,不deply应用战争和战争solr在同一个容器或单个容器中。原因是如果其中一个应用程序发生故障,一切都将停止。

如果solr出现故障,则应用程序可能关闭,这对应用程序不利。

+0

Solr版本6已经在地平线上,我不会建议自己构建它正如他们所说:_注意,如果您选择进行这种部署,那么您就是自己的。@ – cheffe

+1

@cheffe:我完全同意你的看法。我已经给了我的意见和经验给OP ...现在完全是他自己的决定,他如何进一步... –

+1

明白,我应该更多地使用emojis :) – cheffe