We have a large number of solr cores that are used by different groups for different purposes. To make the source control simple, we keep a single 'multicore' directory and solr.xml references all cores. We deploy the same configuration to all servers (shared NFS mount), and then only populate the indexes of the cores that we want running on that server. However, it still seems wasteful to have the cores running where we know they won't be used. What I'd like to be able to do is define properties that will allow me to enable and disable cores via JVM params on startup. I was hoping to use the 'enable' parameter that is supported elsewhere in solr, but it didn't seem to be respected in solr.xml. Here's the syntax I tried in my solr.xml file:
<cores adminPath="/admin/cores"> <core name="businessUnit1" instanceDir="businessUnit1" enable="${solr.enable.core.businessUnit1:true}"/> <core name="businessUnit2" instanceDir="businessUnit2" enable="${solr.enable.core.businessUnit2:true}"/> <core name="businessUnit3" instanceDir="businessUnit3" enable="${solr.enable.core.businessUnit3:true}"/> <core name="businessUnit4" instanceDir="businessUnit4" enable="${solr.enable.core.businessUnit4:true}"/> <core name="businessUnit5" instanceDir="businessUnit5" enable="${solr.enable.core.businessUnit5:true}"/> </cores> Another idea is that I have solr1.xml, solr2.xml, solr3.xml, solr4.xml (etc); and then have some property that tells the JVM which solr.xml version to load (and each xml file would have only the cores that that instance needs). But I couldn't find any property that controls which xml file is loaded for multicore. Is the code hard-coded to look for solr.xml? Thanks