You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2021/06/03 21:28:00 UTC

[jira] [Commented] (SOLR-15429) Solr implications of LUCENE-8811 changes to how (solr.xml's) maxBooleanClauses is now used by IndexSearcher

    [ https://issues.apache.org/jira/browse/SOLR-15429?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17356736#comment-17356736 ] 

ASF subversion and git services commented on SOLR-15429:
--------------------------------------------------------

Commit e316ac40db36558ea3114ebfab173ea42f868576 in solr's branch refs/heads/main from Chris M. Hostetter
[ https://gitbox.apache.org/repos/asf?p=solr.git;h=e316ac4 ]

SOLR-15429: Documentation updates regarding global  setting based behavior changes introduced in LUCENE-8811 / LUCENE-9970


> Solr implications of LUCENE-8811 changes to how (solr.xml's) maxBooleanClauses is now used by IndexSearcher
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-15429
>                 URL: https://issues.apache.org/jira/browse/SOLR-15429
>             Project: Solr
>          Issue Type: Task
>      Security Level: Public(Default Security Level. Issues are Public) 
>            Reporter: Chris M. Hostetter
>            Assignee: Chris M. Hostetter
>            Priority: Major
>         Attachments: SOLR-15429.patch
>
>
> {panel:title=Background Info}
> LUCENE-8811 Modified Lucene 9.x to expanded the usage of {{BooleanQuery.maxClauseCount}} (now moved to {{IndexSearcher.maxClauseCount}})
> Now, in addition to being a limit on the number of individual clauses that can be specified when creating _single_ BooleanQuery (either explicitly or during {{Query.rewrite()}}) it is also used by a {{QueryVisitor}} (after {{Query.rewrite()}} to enforce a limit on the total number of clauses in a _nested_ query structure.
> In other words, the following psuedo code will work in lucene 8, but fail in lucene 9...
> {code:java}
> x = new BooleanQuery()
> y = new BooleanQuery()
> for (int i = 0; i < BooleanQuery.maxClauseCount - 1; i++) {
>   x.addClause(new TermQuery("fx:" + i))
>   y.addClause(new TermQuery("fy:" + i))
> }
> BooleanQuery wrapper = new BooleanQuery(x, y)
> searcher.search(wrapper)
> {code}
> {panel}
> {panel:title=(Current) Impacts on Solr users}
> The solr.xml {{maxBooleanClauses}} setting is what currently controls how this value is configured. If unset, it defaults to the lucene default (unchanged in 9.x) of 1024 – but the solr.xml files shipped with all versions of Solr since 8.1 have specified a value of {{"\${solr.max.booleanClauses:1024}"}} (see SOLR-13336)
> The direct impacts of LUCENE-8811 on Solr users (as of the current solr.git/main branch) is that queries which worked fine in 8.x may start throwing {{TooManyClauses()}} exceptions in 9.x, even with existing (built by 8.x) indexes, depending on how complex and deeply nested the query structures are.
> {panel}
> This jira is being created as a focal point for assess/discussion what changes we want to make to Solr code and/or documentation regarding {{maxBooleanClauses}} in Solr 9.0.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org