@@ -42,35 +42,28 @@ public static Optional<QueryBuilder> pruneQuery(QueryBuilder query, Set<Class<?
4242 return Optional .empty ();
4343 }
4444
45- if (query instanceof BoolQueryBuilder boolQuery ) {
46- return pruneBoolQuery (boolQuery , prunedTypes );
47- }
48- if (query instanceof BoostingQueryBuilder boostingQuery ) {
45+ return switch (query ) {
46+ case BoolQueryBuilder boolQuery -> pruneBoolQuery (boolQuery , prunedTypes );
4947 // We only need the positive query here as the negative query is used for scoring only - we are filtering.
50- return pruneQuery (boostingQuery .positiveQuery (), prunedTypes );
51- }
52- if (query instanceof ConstantScoreQueryBuilder constantScoreQuery ) {
53- Optional <QueryBuilder > pruned = pruneQuery (constantScoreQuery .innerQuery (), prunedTypes );
54- return pruned .map (q -> q == constantScoreQuery .innerQuery () ? constantScoreQuery : new ConstantScoreQueryBuilder (q ));
55- }
56- if (query instanceof DisMaxQueryBuilder disMaxQuery ) {
57- return pruneDisMaxQuery (disMaxQuery , prunedTypes );
58- }
59- if (query instanceof FunctionScoreQueryBuilder functionScoreQuery ) {
60- return pruneFunctionScoreQuery (functionScoreQuery , prunedTypes );
61- }
62- if (query instanceof InterceptedQueryBuilderWrapper interceptedQuery ) {
63- Optional <QueryBuilder > pruned = pruneQuery (interceptedQuery .query (), prunedTypes );
64- return pruned .map (q -> q == interceptedQuery .query () ? interceptedQuery : new InterceptedQueryBuilderWrapper (q ));
65- }
66- if (query instanceof NestedQueryBuilder nestedQuery ) {
67- Optional <QueryBuilder > pruned = pruneQuery (nestedQuery .query (), prunedTypes );
68- return pruned .map (
69- q -> q == nestedQuery .query () ? nestedQuery : new NestedQueryBuilder (nestedQuery .path (), q , nestedQuery .scoreMode ())
70- );
71- }
72-
73- return Optional .of (query );
48+ case BoostingQueryBuilder boostingQuery -> pruneQuery (boostingQuery .positiveQuery (), prunedTypes );
49+ case ConstantScoreQueryBuilder constantScoreQuery -> {
50+ Optional <QueryBuilder > pruned = pruneQuery (constantScoreQuery .innerQuery (), prunedTypes );
51+ yield pruned .map (q -> q == constantScoreQuery .innerQuery () ? constantScoreQuery : new ConstantScoreQueryBuilder (q ));
52+ }
53+ case DisMaxQueryBuilder disMaxQuery -> pruneDisMaxQuery (disMaxQuery , prunedTypes );
54+ case FunctionScoreQueryBuilder functionScoreQuery -> pruneFunctionScoreQuery (functionScoreQuery , prunedTypes );
55+ case InterceptedQueryBuilderWrapper interceptedQuery -> {
56+ Optional <QueryBuilder > pruned = pruneQuery (interceptedQuery .query (), prunedTypes );
57+ yield pruned .map (q -> q == interceptedQuery .query () ? interceptedQuery : new InterceptedQueryBuilderWrapper (q ));
58+ }
59+ case NestedQueryBuilder nestedQuery -> {
60+ Optional <QueryBuilder > pruned = pruneQuery (nestedQuery .query (), prunedTypes );
61+ yield pruned .map (
62+ q -> q == nestedQuery .query () ? nestedQuery : new NestedQueryBuilder (nestedQuery .path (), q , nestedQuery .scoreMode ())
63+ );
64+ }
65+ default -> Optional .of (query );
66+ };
7467 }
7568
7669 private static Optional <QueryBuilder > pruneBoolQuery (BoolQueryBuilder boolQuery , Set <Class <? extends QueryBuilder >> prunedTypes ) {
0 commit comments