Mickaël Sauvée created LUCENE-8810: --------------------------------------
Summary: Flattening of nested disjunctions does not take into account number of clause limitation of builder Key: LUCENE-8810 URL: https://issues.apache.org/jira/browse/LUCENE-8810 Project: Lucene - Core Issue Type: Bug Components: core/search Affects Versions: 8.0 Reporter: Mickaël Sauvée Fix For: 8.1.1 In org.apache.lucene.search.BooleanQuery, at the end of the function rewrite(IndexReader reader), the query is rewritten to flatten nested disjunctions. This does not take into account the limitation on the number of clauses in a builder (1024). In some circumstances, this limite can be reached, hence an exception is thrown. Here is a unit test that highlight this. {code:java} public void testFlattenInnerDisjunctionsWithMoreThan1024Terms() throws IOException { IndexSearcher searcher = newSearcher(new MultiReader()); BooleanQuery.Builder builder1024 = new BooleanQuery.Builder(); for(int i = 0; i < 1024; i++) { builder1024.add(new TermQuery(new Term("foo", "bar-" + i)), Occur.SHOULD); } Query inner = builder1024.build(); Query query = new BooleanQuery.Builder() .add(inner, Occur.SHOULD) .add(new TermQuery(new Term("foo", "baz")), Occur.SHOULD) .build(); searcher.rewrite(query); } {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org