[ https://issues.apache.org/jira/browse/SOLR-350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12562834#action_12562834 ]
Hoss Man commented on SOLR-350: ------------------------------- hey guys ... i'm catching up on some Jira reading and this comment jumped out at me... bq. improved code related to configuration wrt absolute/relative locations: allows core dataDir/instanceDir to be absolute or relative to multicore (pseudo) instanceDir/dataDir. (i'm guessing that's what the dataDir option in the <multicore/> tag in Ryan's example is for?) this seems like a bad idea to me ... violating the principle of least suprise and all. it will make the behavior of a solrconfig.xml file dependent on whether or not it's being used in a multicore context or not. I'd like to suggest that an aternate approach would be to generalize the current system property based variable substitution to support arbitrary key=val pairs specified when the SolrCore is constructed... * we add new syntax to multicore.xml for declaring "global properties" * MultiCore converts these global declarations into a SolrParams instance * we also add syntax to multicore.xml for declaring properties specific to a core. * when MultiCore instantiates a core, it uses DefaultSolrParams to let the specific properties override the global properties *and* to set a special property containing the name of the core (ie: "solr.core.name") * if cloning a core is possible (i can't remember) MultiCore would reuse the SolrParams from the source core, changing only the core name property (solr.core.name) * system properties with the same names as properties in multicore.xml would trump anything from the configs (since they are a run time overrides) {code} <multicore adminPath="/admin/multicore" persistent="true" > <abortOnConfigurationError>true</abortOnConfigurationError> <requestDispatcher handleSelect="true" > <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" /> </requestDispatcher> <property name="alldata.dir">/my/solr/basedir</property> <property name="magicnumber">32</property> <!-- core0 gets props above, any other props in it's configs must come from system props --> <core name="core0" instanceDir="core0" /> <core name="core1" instanceDir="core1"> <property name="dataDir">foo</property> </core> <core name="core111" instanceDir="core1"><!-- note same instanceDir as above--> <!-- can reuse exact same instance dir as another core ${solr.core.name} will be differnet --> <property name="dataDir">bar</property> <!-- and now ${dataDir} will be different too --> </core> </multicore> {code} This would not only give us the ability to have a common ${alldata.dir} for all cores, but also an easy way to reuse the same solrconfig.xml for multiple cores and still get subtle changes in behavior -- all while making it transparent what any one solrconfig.xml will do. Super powerful -- and (i think) pretty easy to implement... a new optional SolrParams arg to the SolrCore, SolrConfig, and Config constructors, and DOMUtil.substituteSystemProperties plus some code in MultiCore to create the SolrParams (hmm, DOMUtil doesn't have a very friendly method for that yet, not that big a deal though) what do you think? > Manage Multiple SolrCores > ------------------------- > > Key: SOLR-350 > URL: https://issues.apache.org/jira/browse/SOLR-350 > Project: Solr > Issue Type: Improvement > Affects Versions: 1.3 > Reporter: Ryan McKinley > Attachments: SOLR-350-MultiCore.patch, SOLR-350-MultiCore.patch, > SOLR-350-MultiCore.patch, SOLR-350-Naming.patch, SOLR-350-Naming.patch, > solr-350.patch, solr-350.patch, solr-350.patch, solr-350.patch, > solr-350.patch, solr-350.patch, solr-350.patch, solr-350.patch > > > In SOLR-215, we enabled support for more then one SolrCore - but there is no > way to use them yet. > We need to make some interface to manage, register, modify avaliable SolrCores -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.