Hi,

I wanted to use this parameter to specify different solr configuration files
for master and slave to simplify deployment procedure. Unfortunately, I
can't dynamically replace the value of this parameter. Basically, what I
want is

  <filter>
    <filter-name>SolrRequestFilter</filter-name>
    <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
    <init-param>
      <param-name>solrconfig-filename</param-name>
      <param-value>solrconfig-master.xml</param-value>
    </init-param>
</filter>

for master instance, and

  <filter>
    <filter-name>SolrRequestFilter</filter-name>
    <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
    <init-param>
      <param-name>solrconfig-filename</param-name>
      <param-value>solrconfig-slave.xml</param-value>
    </init-param>
</filter>

for slave instance.

Ideally, if I can use system property for its value like in solrconfig.xml.
For example,


  <filter>
    <filter-name>SolrRequestFilter</filter-name>
    <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
    <init-param>
      <param-name>solrconfig-filename</param-name>
      <param-value>${solr.config.filename: solrconfig.xml}</param-value>
    </init-param>
</filter>

but I learned that in general we can't use system property in web.xml.

I realize that I can use replication of config file to achieve this, but I
thought that creates unnecessary dependencies for slaves on master instance.

So here is my proposal:

make SolrDispatchFilter look up another init parameter, say
'solrconfig-filename-property', and its value is a system property name, and
if this property is set, we got the file name, otherwise nothing happens (of
course, if both exist, 'solrconfig-filename' takes precedence). This will
give us maxium flexibility of specifying configuration files for different
instances.

Your thoughts?

Thanks,

Jianhan

Reply via email to