Solr与现有Web应用程序的集成

时间:2013-09-20 10:44:51

标签: java solr solrj

我知道有关于此主题的其他问题,我在网上阅读了一些教程(http://shrutiags.wordpress.com/2012/05/29/adding-solr-to-your-web-application-part-3-integrating-solr-with-eclipse-2/http://javaskeleton.blogspot.de/2011/07/adding-solr-to-existing-web-application.html)。我还有一些未解决的问题。

1)两个提到的教程都使用EmbeddedSolrServer来访问Solr,这是否意味着Solr不是作为单独的应用程序运行的?为什么我们需要指定过滤器和servlet?

2)两个教程都使用jar的复制和粘贴。应该使用的maven依赖项是什么?

3)我仍然不确定将Solr集成到现有Web应用程序的嵌入式和独立式方式之间的差异。据我所知,独立方式意味着将Solr war文件部署为单独的应用程序。在这种情况下,我们不应该指定任何se​​rvlet或过滤器,只需使用Solrj连接到正在运行的Solr实例。

当我们想要将Solr作为应用程序的一部分运行时会发生什么变化?我们需要添加更多依赖项,而不仅仅是Solrj。我们需要以某种方式初始化Solr核心。我是对的吗?

1 个答案:

答案 0 :(得分:4)

回答你的问题:

1)你不需要总是总是使用EmbeddedSolrServer ... Solr的可以在应用程序服务器或servlet容器作为一个“独立”的网络服务,这意味着你不需要指定过滤器和servlet进行部署,部署简单在某处(tomcat,jetty,glassfish等)并在您的应用程序中定义“SolrServer”:SolrServer server = new CommonsHttpSolrServer(solrServerAddress);并使用它与Solr进行通信。

2)从我自己的设置中,我有以下maven依赖项与独立的Solr一起工作:

<dependency>
    <artifactId>solr-solrj</artifactId>
    <groupId>org.apache.solr</groupId>
    <version>1.4.0</version>
    <type>jar</type>
    <scope>compile</scope>
</dependency>

您可能需要定义其他依赖项(例如:如果您需要EmbeddedSolrServer),请在此处找到明确的详细信息:http://wiki.apache.org/solr/Solrj#Maven。您还需要确保在maven依赖项中有slf4j。

3)这是真的,如果它是独立的,你需要采取一些其他的行动,但不需要定义任何servlet或过滤器。

关于这个问题:“当我们想要将Solr作为我们应用程序的一部分运行时会发生什么变化?我们需要添加更多依赖项,而不仅仅是Solrj。”是的,您需要......您可以在Solr。上面的链接中找到相关信息。