我知道有关于此主题的其他问题,我在网上阅读了一些教程(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文件部署为单独的应用程序。在这种情况下,我们不应该指定任何servlet或过滤器,只需使用Solrj连接到正在运行的Solr实例。
当我们想要将Solr作为应用程序的一部分运行时会发生什么变化?我们需要添加更多依赖项,而不仅仅是Solrj。我们需要以某种方式初始化Solr核心。我是对的吗?
答案 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。上面的链接中找到相关信息。