太阳能应该包含在网络应用程序中,还是单独

Should solr be included with a web app, or seperate

我想使用 solr 向我的 Web 应用程序添加搜索功能。 使用 SOLR 发行版提供的 WAR 部署 solr 非常简单直接,但我想知道这样做是否有意义?

solr 应该作为单独的 WAR 部署还是集成到 Web 应用程序中?

总结一下我有几个问题:

我会单独部署 Solr:

  • 您可以(现在或以后)将 Solr 与您的网络应用程序物理分离,即将 Solr 和您的网络应用程序放在不同的机器上以分离资源利用率(CPU、内存、...)
  • 您可以水平缩放 Solr(现在或以后)
  • Solr 和您的 webapp 运行 在不同的 JVM 中,因此您将内存管理和垃圾收集分开
  • 您可以从不同的应用程序访问 Solr

您不应尝试将 Solr 部署为 WAR。

来自文档...

https://cwiki.apache.org/confluence/display/solr/Major+Changes+from+Solr+4+to+Solr+5

Beginning with Solr 5.0, Solr is no longer distributed as a "war" (Web Application Archive) suitable for deployment in any Servlet Container. Solr is now distributed as a stand alone java server application, including start and stop scripts for use on Unix and MS-Windows platforms...

...

Internally, Solr is still implemented via Servlet APIs and is powered by Jetty -- but this is simply an implementation detail. Deployment as a "webapp" to other Servlet Containers (or other instances of Jetty) is not supported, and may not work in future 5.x versions of Solr when additional changes are likely to be made to Solr internally to leverage custom networking stack features.