You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ho...@apache.org on 2021/06/03 21:27:13 UTC

[solr] branch main updated: SOLR-15429: Documentation updates regarding global setting based behavior changes introduced in LUCENE-8811 / LUCENE-9970

This is an automated email from the ASF dual-hosted git repository.

hossman pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new e316ac4  SOLR-15429: Documentation updates regarding global  setting based behavior changes introduced in LUCENE-8811 / LUCENE-9970
e316ac4 is described below

commit e316ac40db36558ea3114ebfab173ea42f868576
Author: Chris Hostetter <ho...@apache.org>
AuthorDate: Thu Jun 3 14:27:04 2021 -0700

    SOLR-15429: Documentation updates regarding global  setting based behavior changes introduced in LUCENE-8811 / LUCENE-9970
---
 solr/solr-ref-guide/src/format-of-solr-xml.adoc      |  4 ++--
 solr/solr-ref-guide/src/major-changes-in-solr-9.adoc | 12 +++++++++++-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/solr/solr-ref-guide/src/format-of-solr-xml.adoc b/solr/solr-ref-guide/src/format-of-solr-xml.adoc
index dc76bb8..1d9a1ae 100644
--- a/solr/solr-ref-guide/src/format-of-solr-xml.adoc
+++ b/solr/solr-ref-guide/src/format-of-solr-xml.adoc
@@ -121,9 +121,9 @@ The directory under which configsets for Solr cores can be found. Defaults to `$
 
 [[global-maxbooleanclauses]]
 `maxBooleanClauses`::
-Sets the maximum number of clauses allowed in any boolean query.
+Sets the maximum number of (nested) clauses allowed in any query.
 +
-This global limit provides a safety constraint on the number of clauses allowed in any boolean queries against any collection -- regardless of whether those clauses were explicitly specified in a query string, or were the result of query expansion/re-writing from a more complex type of query based on the terms in the index.
+This global limit provides a safety constraint on the total number of clauses allowed in any query against any collection -- regardless of whether those clauses were explicitly specified in a query string, or were the result of query expansion/re-writing from a more complex type of query based on the terms in the index.  This limit is enforced at multiple points in the Lucene code base, both to prevent primative query objects (mainly `BooleanQuery`) from being constructed with an excessi [...]
 +
 In default configurations this property uses the value of the `solr.max.booleanClauses` system property if specified.  This is the same system property used in the `_default` configset for the <<query-settings-in-solrconfig#maxbooleanclauses,`<maxBooleanClauses>` setting of `solrconfig.xml`>> making it easy for Solr administrators to increase both values (in all collections) without needing to search through and update all of their configs.
 +
diff --git a/solr/solr-ref-guide/src/major-changes-in-solr-9.adoc b/solr/solr-ref-guide/src/major-changes-in-solr-9.adoc
index a22e957..36231ce 100644
--- a/solr/solr-ref-guide/src/major-changes-in-solr-9.adoc
+++ b/solr/solr-ref-guide/src/major-changes-in-solr-9.adoc
@@ -182,7 +182,17 @@ If re-indexing is too onerous, use this mechanism in Solr 8.
 
 == Configuration and Default Parameter Changes in Solr 9
 
-* base_url removed from stored state*
+=== solr.xml maxBooleanClauses now enforced recursively
+
+Lucene 9.0 has additional safety checks over previous versions that impact how the `solr.xml` global `<<format-of-solr-xml#global-maxbooleanclauses,maxBooleanClauses>>` option is enforced.
+
+In previous versios of Solr, this option was a hard limit on the number of clauses in any `BooleanQuery` object - but it was only enforced for the _direct_ clauses.  Starting with Solr 9, this global limit is now also enforced against the total number of clauses in a _nested_ query structure.
+
+Users who upgrade from prior versions of Solr may find that some requests involving complex internal query structures (Example: long query strings using `edismax` with many `qf` and `pf` fields that include query time synonym expansion) which worked in the past now hit this limit and fail.
+
+User's in this situation are advised to consider the complexity f their queries/configuration, and increase the value of `<<format-of-solr-xml#global-maxbooleanclauses,maxBooleanClauses>>` if warranted.
+
+=== base_url removed from stored state
 
 If you're able to upgrade SolrJ to 8.8.x for all of your client applications, then you can set `-Dsolr.storeBaseUrl=false` (introduced in Solr 8.8.1)
 to better align the stored state in Zookeeper with future versions of Solr; as of Solr 9.x, the `base_url` will no longer be