@@ -51,14 +51,14 @@ public static QueryToFilterAdapter build(IndexSearcher searcher, String key, Que
51
51
// Wrapping with a ConstantScoreQuery enables a few more rewrite
52
52
// rules as of Lucene 9.2
53
53
query = searcher .rewrite (new ConstantScoreQuery (query ));
54
- if (query instanceof ConstantScoreQuery ) {
54
+ if (query instanceof ConstantScoreQuery csq ) {
55
55
/*
56
56
* Unwrap constant score because it gets in the way of us
57
57
* understanding what the queries are trying to do and we
58
58
* don't use the score at all anyway. Effectively we always
59
59
* run in constant score mode.
60
60
*/
61
- query = (( ConstantScoreQuery ) query ) .getQuery ();
61
+ query = csq .getQuery ();
62
62
}
63
63
return new QueryToFilterAdapter (searcher , key , query );
64
64
}
@@ -132,8 +132,8 @@ QueryToFilterAdapter union(Query extraQuery) throws IOException {
132
132
extraQuery = searcher ().rewrite (new ConstantScoreQuery (extraQuery ));
133
133
Query unwrappedExtraQuery = unwrap (extraQuery );
134
134
Query unwrappedQuery = unwrap (query );
135
- if (unwrappedQuery instanceof PointRangeQuery && unwrappedExtraQuery instanceof PointRangeQuery ) {
136
- Query merged = MergedPointRangeQuery .merge (( PointRangeQuery ) unwrappedQuery , ( PointRangeQuery ) unwrappedExtraQuery );
135
+ if (unwrappedQuery instanceof PointRangeQuery q1 && unwrappedExtraQuery instanceof PointRangeQuery q2 ) {
136
+ Query merged = MergedPointRangeQuery .merge (q1 , q2 );
137
137
if (merged != null ) {
138
138
// Should we rewrap here?
139
139
return new QueryToFilterAdapter (searcher (), key (), merged );
@@ -157,19 +157,19 @@ public boolean isInefficientUnion() {
157
157
158
158
private static Query unwrap (Query query ) {
159
159
while (true ) {
160
- if (query instanceof ConstantScoreQuery ) {
161
- query = ((ConstantScoreQuery ) query ).getQuery ();
162
- continue ;
160
+ switch (query ) {
161
+ case ConstantScoreQuery csq :
162
+ query = csq .getQuery ();
163
+ continue ;
164
+ case IndexSortSortedNumericDocValuesRangeQuery isq :
165
+ query = isq .getFallbackQuery ();
166
+ continue ;
167
+ case IndexOrDocValuesQuery idq :
168
+ query = idq .getIndexQuery ();
169
+ continue ;
170
+ default :
171
+ return query ;
163
172
}
164
- if (query instanceof IndexSortSortedNumericDocValuesRangeQuery ) {
165
- query = ((IndexSortSortedNumericDocValuesRangeQuery ) query ).getFallbackQuery ();
166
- continue ;
167
- }
168
- if (query instanceof IndexOrDocValuesQuery ) {
169
- query = ((IndexOrDocValuesQuery ) query ).getIndexQuery ();
170
- continue ;
171
- }
172
- return query ;
173
173
}
174
174
}
175
175
0 commit comments