Global Search reaches maxBooleanClauses limit
Symptoms
- Global Search returns no results for long search input, typically around 12 characters or more.
- Global Search returns no results when users enter several search terms, typically four or more words.
- Global Search returns no results for complete email addresses, for example
t.admin@example.adito.de.
Causes
The configured Solr maxBooleanClauses limit is usually sufficient for normal
Global Search usage. If the limit is reached, the query often expands into too
many Boolean clauses because too many fields or field types are involved.
This issue only affects fields that are used in Global Search and have the
isGlobalSearchField property enabled.
Common causes are:
- Too many fields are configured as Global Search fields. The number of Global Search fields is a direct multiplicative factor when Solr calculates the required Boolean clauses.
- One or more Global Search field types generate many additional terms for a search input. This can happen with phonetic field types and field types that use shingle filters or many synonyms.
- Email or phone number fields generate many terms for complete addresses, formatted numbers, or long input values.
How to verify
Check whether the Solr instance is configured with the expected
maxBooleanClauses setting. In ADITO 2025 systems, Solr should be started with
-Dsolr.max.booleanClauses=200000. You can verify the active Solr startup
arguments in the Solr AdminUI dashboard
or in the Solr ADITO-Cloud settings.
If the setting is present, inspect the Global Search field configuration:
- Review all IndexRecordContainer field mappings that have
isGlobalSearchFieldenabled. - Count how many fields are included in Global Search for each index group.
- Check whether internal fields such as IDs, Solr filter fields, record filter fields, or lookup-only fields are included even though users do not need to search them manually.
- Check whether Global Search fields use
PROPER_NAME,ADDRESS,EMAIL, orPHONE_NUMBER.
Use the Solr AdminUI analysis view to inspect how many terms are generated for representative input values. The Index field types reference describes the analyzer behavior of the affected field types.
Test with the same kind of input that users report as failing. Long names, complete email addresses, and formatted phone numbers are useful test values because they expose term expansion more clearly than short single-word queries.
Solutions
First verify that the Solr instance uses the expected maxBooleanClauses
setting. If the setting is missing in an unmanaged system, add the JVM argument
to the existing SOLR_OPTS value and restart Solr:
SOLR_OPTS="<existing-options> -Dsolr.max.booleanClauses=200000"
For managed systems, contact the responsible operator if the setting is missing or differs from the expected value.
If the setting is correct, reduce the number of generated Boolean clauses by adjusting the Global Search configuration.
Reduce the number of Global Search fields
Review all index groups and keep only fields that users must be able to search
manually in Global Search. Remove isGlobalSearchField from fields that are
only used for technical filtering, record filters, lookup support, or internal
identifiers.
Each removed Global Search field reduces the multiplicative factor for
maxBooleanClauses and makes searches with more complex field types less likely
to reach the limit.
Replace field types that generate many terms
If the issue persists, review the field types used by Global Search fields:
- Change Global Search fields using
PROPER_NAMEorADDRESStoTEXT_NOSTOPWORDSif phonetic search is not required for these fields. - Check Global Search fields using
EMAILorPHONE_NUMBER. These fields can initially be changed toCOMMUNICATIONfor Global Search.
After changing isGlobalSearchField or indexFieldType, deploy the changes and
rebuild the complete index or the affected index groups. The updated field
configuration only takes effect after the index has been rebuilt.
Search behavior after changing field types
Changing field types can improve query stability and performance, but it also changes how matching works.
Phonetic field types
PROPER_NAME and ADDRESS are phonetic field types. They support searches that
match terms by pronunciation or linguistic similarity.
Changing these fields to TEXT_NOSTOPWORDS removes that phonetic behavior.
Searches become more exact, which can improve precision and performance, but
less tolerant of spelling variants.
This trade-off is often acceptable for Global Search because phonetic matching can be imprecise for longer words, can work poorly outside English-oriented soundex behavior, and can produce false positives for numeric input.
Email and phone number field types
EMAIL and PHONE_NUMBER are specialized field types for their respective
input formats.
Changing EMAIL to COMMUNICATION can increase the chance of false-positive
matches for non-email input, but email search usually remains usable because
COMMUNICATION also handles email-like values.
Changing PHONE_NUMBER to COMMUNICATION has a stronger impact. PHONE_NUMBER
is optimized for formatted phone numbers and country-code normalization, for
example matching values such as 0871/1234-567, 08711234567, and
+498711234567. COMMUNICATION can still match formatted phone numbers, but it
does not provide the same country-code normalization and can return more
false-positive matches for partial numbers.
Problem isn't solved?
Other guides for problems with similar symptoms: