我们有多个环境(包括多个开发,登台和制作),但目前为每个环境复制并粘贴Solr conf
文件夹并设置solr-data-config.xml
,因为该文件具有环境详细信息:< / p>
<dataConfig>
<dataSource name="ds-db" type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://10.0.0.40:3306/***"
user="***"
password="**"/>
我们如何将solr配置与环境数据分开,以便每个搜索组只有一个配置文件夹,并且具有单独的环境数据?
答案 0 :(得分:1)
我建议外部化与环境相关的参数:
1) DIH
您可以使用占位符获取此内容: e.g。
<dataConfig>
<dataSource name="ds-db" type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url ="${dataimporter.request.url}"
user ="${dataimporter.request.user}"
password ="${dataimporter.request.password}"/>
2) Solrconfig
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
<str name="clean">true</str>
...
<str name="url">${db.url:defaultUrl}</str>
<str name="user">${db.user:defaultUser}</str>
<str name="password">${db.password:}</str>
...
</lst>
</requestHandler>
$ {environment_variable:“default”}是使用[1]的语法。
然后,您需要将变量作为Solr java进程的Java系统属性传递。