现在使用EmbeddedSolrServer是否已经过时并不推荐?

3
我需要在Tomcat上运行的Java Web应用程序中添加搜索功能,并且在同一台机器上使用数据库。由于我计划在同一台机器上使用Solr,但是应该使用哪个实现?我认为嵌入式实现更可取,因为我需要从同一台机器添加数据,因此通过HTTP添加数据没有多大意义,而且将Solr作为单独的Web应用程序运行会比嵌入式实现消耗更多的资源(不是吗?)。但是现在不推荐使用EmbeddedSolrServer,那么当需要将Solr保留在与Web应用程序相同的机器上时,人们如何使用Solr呢?
3个回答

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搜索库)。

1
您需要参考的页面已经回答了您的问题。您需要在单独的JVM上以服务方式运行Solr,并通过HTTP(到localhost)与其交互。

“在独立的JVM上在同一台机器上运行Solr…” - 如果它已经在运行,我是否应该将其移动到Tomcat上,以防止不必要的资源消耗? - Rajat Gupta
你可以将Solr放置在与你的Web应用相同的Tomcat中,没有问题。 - emgsilva

0

这个问题/答案非常古老,提问者引用的页面来自旧维基。

在撰写本文时,EmbeddedSolrServer通常建议用于测试使用,而不适用于生产环境

实际上,EmbeddedSolrServer广泛用于Solr代码库的许多测试中。

最近我注意到,即使在Solr文档中也没有清晰的说明如何使用它。因此,我编写了一个Java示例,帮助编写您自己的测试配置,加载数据并运行JUnit单元测试。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接