【发布时间】:2020-07-15 13:27:08
【问题描述】:
我正在开发 Java Spring Boot Web 应用程序。我在 Solr 中存储了一些数据。我在根目录中有许多不同的 Solr Core,它们在 application.properties 中定义。我的应用程序运行良好。现在我需要将应用程序作为具有给定环境变量的 docker 容器运行。这些变量之一将指示从一个特定的 Solr Core 存储一些数据的位置,例如。 Core1。这个核心始终是同一个,只是位置不同。
在实践中,我有一些数据,我使用这些数据并且没有存储在任何地方。该数据分为 10 种不同“类型”的数据。例如,我正在存储 Person 对象,但我有 10 个不同的国籍。现在我需要将它保存到 solr core Core1,但我想将它按这些国籍划分,所以我会有 10 个不同的文件夹包含数据。这个处理过的数据我想通过某种控制器导出到某个地方,比如说。到目前为止,我不确定是独立存储并导出数据本身,还是包含该数据的整个核心更好。不确定其中一个是否更好,甚至是否可行。
我很难弄清楚如何以某种方式配置 Solr,它会根据给定的环境变量将数据存储在不同的文件夹中。
我试图在我的Core1 Solr Core 的core.properties 文件中定义dataDir 属性,如下所示:
dataDir=${SOLR_DATA}/data 然后在 Windows 中将 ${SOLR_DATA} 变量定义为环境变量,甚至重新启动 PC,但我的 Spring Boot 应用程序仍然崩溃,并出现错误,即没有同名的系统变量。
【问题讨论】:
-
看到这里的连接有点麻烦 - Solr 自行运行,而您的 Spring Boot 应用程序自行运行。哪个部分无法查看环境变量?
标签: java spring spring-boot docker solr