[ https://issues.apache.org/jira/browse/LUCENE-8810?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Atri Sharma updated LUCENE-8810: -------------------------------- Attachment: LUCENE-8810.patch > 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 > Priority: Minor > Fix For: 8.1.1 > > Attachments: LUCENE-8810.patch > > > 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