Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
3.4
-
None
-
New
Description
The following test demonstrates a bug in StandardQueryParser when DEFAULT_OPERATOR is set to AND:
@Test public void testDefaultOperatorSingleGrouped() throws Exception { StandardQueryParser parser = new StandardQueryParser(); parser.getQueryConfigHandler().set(StandardQueryConfigHandler.ConfigurationKeys.DEFAULT_OPERATOR, StandardQueryConfigHandler.Operator.AND); BooleanQuery expectedQuery = new BooleanQuery(); BooleanQuery innerQuery1 = new BooleanQuery(); innerQuery1.add(new TermQuery(new Term("text", "a")), BooleanClause.Occur.MUST); expectedQuery.add(innerQuery1, BooleanClause.Occur.SHOULD); BooleanQuery innerQuery2 = new BooleanQuery(); innerQuery2.add(new TermQuery(new Term("text", "b")), BooleanClause.Occur.MUST); expectedQuery.add(innerQuery2, BooleanClause.Occur.SHOULD); Query actualQuery = parser.parse("(a) OR (b)", "text"); assertEquals("Wrong query was generated", expectedQuery, actualQuery); }
BooleanSingleChildOptimizationQueryNodeProcessor appears to be responsible because if I remove it, the correct query is generated (however, doing so breaks a number of other tests of our own.)