You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Chris M. Hostetter (Jira)" <ji...@apache.org> on 2021/05/24 23:59:00 UTC

[jira] [Commented] (LUCENE-9970) provide apps details about why TooManyClauses was thrown

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

Chris M. Hostetter commented on LUCENE-9970:
--------------------------------------------


The simplest approach would probably be add an additional {{TooManyClauses}} constructor that allows the caller to set the exception message, and use this new constructor from the new IndexSearcher QueryVisitor code paths that throw {{TooManyClauses}}, with a new message clarifying that the number of nested clauses is the problem (since the initial query construction/rewriting would have already failed if a single sub-query was problematic)

that way any pre-9.x situations that caused {{TooManyClauses}} would continue to get the exact same message, only the "new" types of failure cases would get a slightly diff exception message

> provide apps details about why TooManyClauses was thrown
> --------------------------------------------------------
>
>                 Key: LUCENE-9970
>                 URL: https://issues.apache.org/jira/browse/LUCENE-9970
>             Project: Lucene - Core
>          Issue Type: Task
>            Reporter: Chris M. Hostetter
>            Priority: Major
>
> Historically, if {{TooManyClauses}} was thrown it meant exactly one thing: That a QueryX Builder (typically BooleanQuery, but there are a few others in sandbox) was not going to allow it's caller to add a clause because that QueryX object already had the maxClauseCount in _direct_ children.
> LUCENE-8811 added an additional "reason" why {{TooManyClauses}} may be thrown starting in 9.0: IndexSearcher may now throw this exception  if the (rewritten) Query being executed has a _cumulative_ number of clauses – across the entire structure of _nested_ Query objects – that exceeds the maxClauseCount.
> ----
> I think it would be helpful to users if it was possible to tell from the {{TooManyClauses}} exception how the maxClauseCount was exceeded (because of the total number of direct children during rewrite, or cumulatively across the entire nested structure) w/o needing to inspect the stack frames to see if the thrower a rewrite method, or a QueryVisitor method.
>  



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

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