As per the source code, Solr only sets the BooleanQuery clause limit on the
very first core load. It ignores any the setting on subsequent core loads,
including a reload of the initial core.
SolrCore.java: "// only change the BooleanQuery maxClauseCount once for ALL
cores..."
The cores should get loaded in the order they appear in solr.xml, although I
don't know if that is a written, contractual guarantee.
As the CoreAdmin wiki page says, "Workaround, set maxBooleanClauses to the
greatest value desired in *all* cores".
See:
http://wiki.apache.org/solr/CoreAdmin#Known_Issues
The wiki is wrong when it says "Whichever Solr core initializes last will
win the setting of the solrconfig.xml's maxBooleanClauses value." The first
core to be loaded wins. Or, maybe the source code is wrong. Either way, a
correction is needed.
-- Jack Krupansky
-----Original Message-----
From: Sujatha Arun
Sent: Wednesday, May 30, 2012 1:30 PM
To: solr-user@lucene.apache.org
Subject: solr 1.3 Multicores and maxboolean clause
Hello,
The solrcore Wiki says that "Lucene's
BooleanQuery<http://wiki.apache.org/solr/BooleanQuery>maxClauseCount
is a static variable, making it a single value across the
entire JVM. Whichever Solr core initializes last will win the setting of
the solrconfig.xml's maxBooleanClauses value. Workaround, set
maxBooleanClauses to the greatest value desired in *all* cores."
Now what I see is that even if any one core* has a smaller value for
maxboolean clause* ,the smaller one is taken into effect and not the last
core which is created.
*Some questions*
1. What is the order for initialization of the cores on a server
restart,I don't see this info in the logs?
2. When i change the maxboolean clause on one cores and reload the core
,it is not effected ?Does this require Tomcat restart?why?
3. The default cores core0 and core1 that comes in the example multicore
setup does not have this value set in them as it has minimum
configuration
,does this affect the value in other cores if I use that as default?
Regards,
Sujatha