OK, a hacky but working solution to making one core shard to all
others: have the default parameter *name* vary, so that one core gets
"&shards=foo" and all other cores get "&dummy=foo".

# solr.xml
<solr ...>
<property name="shardsKey" value="dummy" />
<property name="shardsValue" value="" />
<cores ...>
  <core name="core0" instanceDir="./">
    <property name="shardsKey" value="shards" />
    <property name="shardsValue" value="localhost:9990/solr/core1,..."/>
  </core>
  <core name="core1" instanceDir="./" dataDir="/search/1"/>
   ...
</cores>
</solr>

# solrconfig.xml
<requestHandler ...>
  <list name="defaults">
    <str name="${shardsKey}">${shardsValue}</str>
    ...

Michael

On Mon, Oct 12, 2009 at 12:00 PM, Michael <solrco...@gmail.com> wrote:
> Thanks for your input, Shalin.
>
> On Sun, Oct 11, 2009 at 12:30 AM, Shalin Shekhar Mangar
> <shalinman...@gmail.com> wrote:
>>> - I can't use a variable like ${shardsParam} in a single shared
>>> solrconfig.xml, because the line
>>>    <str name="shards">${shardsParam}</str>
>>>  has to be in there, and that forces a (possibly empty) &shards
>>> parameter onto cores that *don't* need one, causing a
>>> NullPointerException.
>>>
>>>
>> Well, we can fix the NPE :)  Please raise an issue.
>
> The NPE may be the "correct" behavior -- I'm causing an empty &shards=
> parameter, which doesn't have a defined behavior AFAIK.  The
> deficiency I was pointing out was that using ${shardsParam} doesn't
> help me achieve my real goal, which is to have the entire <str> tag
> disappear for some shards.
>
>>> So I think my best bet is to make two mostly-identical
>>> solrconfig.xmls, and point core0 to the one specifying a &shards=
>>> parameter:
>>>    <core name="core0" config="core0_solrconfig.xml"/>
>>>
>>> I don't like the duplication of config, but at least it accomplishes my
>>> goal!
>>>
>>>
>> There is another way too. Each plugin in Solr now supports a configuration
>> attribute named "enable" which can be true or false. You can control the
>> value (true/false) through a variable. So you can duplicate just the handle
>> instead of the complete solrconfig.xml
>
> I had looked into this, but thought it doesn't help because I'm not
> disabling an entire plugin -- just a <str> tag specifying a default
> parameter to a <requestHandler>.  Individual <str> tags don't have an
> "enable" flag for me to conditionally set to false.  Maybe I'm
> misunderstanding what you're suggesting?
>
> Thanks again,
> Michael
>

Reply via email to