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



      

Reply via email to