|
73 | 73 | import static org.hamcrest.CoreMatchers.equalTo; |
74 | 74 | import static org.hamcrest.CoreMatchers.instanceOf; |
75 | 75 | import static org.mockito.Mockito.mock; |
76 | | -import static org.mockito.Mockito.when; |
77 | 76 |
|
78 | 77 | public class BoolQueryBuilderTests extends AbstractQueryTestCase<BoolQueryBuilder> { |
79 | 78 | @Override |
@@ -584,74 +583,6 @@ public void testMustNotRewriteDisabledWithoutExactlyOneValuePerDoc() throws Exce |
584 | 583 | IOUtils.close(w, reader, dir); |
585 | 584 | } |
586 | 585 |
|
587 | | - // Note: The must-to-filter optimization has been moved to MustToFilterRewriter in the query rewriting infrastructure |
588 | | - // This test is kept but modified to verify that the optimization no longer happens at this level |
589 | | - public void testMustClausesRewritten() throws Exception { |
590 | | - BoolQueryBuilder qb = new BoolQueryBuilder(); |
591 | | - |
592 | | - // Previously these would be moved, but now they stay in must |
593 | | - QueryBuilder intTermQuery = new TermQueryBuilder(INT_FIELD_NAME, 200); |
594 | | - QueryBuilder rangeQuery = new RangeQueryBuilder(INT_FIELD_NAME).gt(10).lt(20); |
595 | | - QueryBuilder rangeQueryWithBoost = new RangeQueryBuilder(DATE_FIELD_NAME).gt(10).lt(20).boost(2); |
596 | | - QueryBuilder intTermsQuery = new TermsQueryBuilder(INT_FIELD_NAME, new int[] { 1, 4, 100 }); |
597 | | - QueryBuilder boundingBoxQuery = new GeoBoundingBoxQueryBuilder(GEO_POINT_FIELD_NAME); |
598 | | - QueryBuilder doubleMatchQuery = new MatchQueryBuilder(DOUBLE_FIELD_NAME, 5.5); |
599 | | - |
600 | | - // Text queries |
601 | | - QueryBuilder textTermQuery = new TermQueryBuilder(TEXT_FIELD_NAME, "bar"); |
602 | | - QueryBuilder textTermsQuery = new TermsQueryBuilder(TEXT_FIELD_NAME, "foo", "bar"); |
603 | | - QueryBuilder textMatchQuery = new MatchQueryBuilder(TEXT_FIELD_NAME, "baz"); |
604 | | - |
605 | | - qb.must(intTermQuery); |
606 | | - qb.must(rangeQuery); |
607 | | - qb.must(rangeQueryWithBoost); |
608 | | - qb.must(intTermsQuery); |
609 | | - qb.must(boundingBoxQuery); |
610 | | - qb.must(doubleMatchQuery); |
611 | | - |
612 | | - qb.must(textTermQuery); |
613 | | - qb.must(textTermsQuery); |
614 | | - qb.must(textMatchQuery); |
615 | | - |
616 | | - BoolQueryBuilder rewritten = (BoolQueryBuilder) Rewriteable.rewrite(qb, createShardContext()); |
617 | | - |
618 | | - // Verify that the must-to-filter optimization no longer happens at this level |
619 | | - // All clauses should remain in must |
620 | | - for (QueryBuilder clause : List.of( |
621 | | - intTermQuery, |
622 | | - rangeQuery, |
623 | | - rangeQueryWithBoost, |
624 | | - intTermsQuery, |
625 | | - boundingBoxQuery, |
626 | | - doubleMatchQuery, |
627 | | - textTermQuery, |
628 | | - textTermsQuery, |
629 | | - textMatchQuery |
630 | | - )) { |
631 | | - assertTrue(rewritten.must().contains(clause)); |
632 | | - assertFalse(rewritten.filter().contains(clause)); |
633 | | - } |
634 | | - |
635 | | - // Same behavior with null context - all clauses remain in must |
636 | | - QueryRewriteContext nullContext = mock(QueryRewriteContext.class); |
637 | | - when(nullContext.convertToShardContext()).thenReturn(null); |
638 | | - rewritten = (BoolQueryBuilder) Rewriteable.rewrite(qb, nullContext); |
639 | | - for (QueryBuilder clause : List.of( |
640 | | - rangeQuery, |
641 | | - rangeQueryWithBoost, |
642 | | - boundingBoxQuery, |
643 | | - textTermQuery, |
644 | | - textTermsQuery, |
645 | | - textMatchQuery, |
646 | | - intTermQuery, |
647 | | - intTermsQuery, |
648 | | - doubleMatchQuery |
649 | | - )) { |
650 | | - assertTrue(rewritten.must().contains(clause)); |
651 | | - assertFalse(rewritten.filter().contains(clause)); |
652 | | - } |
653 | | - } |
654 | | - |
655 | 586 | private QueryBuilder getRangeQueryBuilder(String fieldName, Integer lower, Integer upper, boolean includeLower, boolean includeUpper) { |
656 | 587 | RangeQueryBuilder rq = new RangeQueryBuilder(fieldName); |
657 | 588 | if (lower != null) { |
|
0 commit comments