@@ -88,7 +88,7 @@ public class ShardSearchRequest extends TransportRequest implements IndicesReque
8888 // these are the only mutable fields, as they are subject to rewriting
8989 private AliasFilter aliasFilter ;
9090 private SearchSourceBuilder source ;
91- private SearchSourceBuilder originalSource ;
91+ private QueryBuilder originalQuery ;
9292 private final ShardSearchContextId readerId ;
9393 private final TimeValue keepAlive ;
9494
@@ -148,6 +148,7 @@ public ShardSearchRequest(
148148 numberOfShards ,
149149 searchRequest .searchType (),
150150 searchRequest .source (),
151+ searchRequest .source ().query (),
151152 searchRequest .requestCache (),
152153 aliasFilter ,
153154 indexBoost ,
@@ -190,6 +191,7 @@ public ShardSearchRequest(ShardId shardId, long nowInMillis, AliasFilter aliasFi
190191 SearchType .QUERY_THEN_FETCH ,
191192 null ,
192193 null ,
194+ null ,
193195 aliasFilter ,
194196 1.0f ,
195197 true ,
@@ -211,6 +213,7 @@ public ShardSearchRequest(
211213 int numberOfShards ,
212214 SearchType searchType ,
213215 SearchSourceBuilder source ,
216+ QueryBuilder originalQuery ,
214217 Boolean requestCache ,
215218 AliasFilter aliasFilter ,
216219 float indexBoost ,
@@ -229,7 +232,7 @@ public ShardSearchRequest(
229232 this .numberOfShards = numberOfShards ;
230233 this .searchType = searchType ;
231234 this .source (source );
232- this .originalSource ( source );
235+ this .originalQuery ( originalQuery );
233236 this .requestCache = requestCache ;
234237 this .aliasFilter = aliasFilter ;
235238 this .indexBoost = indexBoost ;
@@ -254,7 +257,7 @@ public ShardSearchRequest(ShardSearchRequest clone) {
254257 this .numberOfShards = clone .numberOfShards ;
255258 this .scroll = clone .scroll ;
256259 this .source (clone .source );
257- this .originalSource (clone .originalSource );
260+ this .originalQuery (clone .originalQuery );
258261 this .aliasFilter = clone .aliasFilter ;
259262 this .indexBoost = clone .indexBoost ;
260263 this .nowInMillis = clone .nowInMillis ;
@@ -280,7 +283,9 @@ public ShardSearchRequest(StreamInput in) throws IOException {
280283 numberOfShards = in .readVInt ();
281284 scroll = in .readOptionalWriteable (Scroll ::new );
282285 source = in .readOptionalWriteable (SearchSourceBuilder ::new );
283- originalSource = source ;
286+ if (in .getTransportVersion ().onOrAfter (TransportVersion .V_8_500_031 )) {
287+ originalQuery = in .readOptionalNamedWriteable (QueryBuilder .class );
288+ }
284289 if (in .getTransportVersion ().onOrAfter (TransportVersion .V_8_8_0 ) && in .getTransportVersion ().before (TransportVersion .V_8_500_013 )) {
285290 // to deserialize between the 8.8 and 8.500.013 version we need to translate
286291 // the rank queries into sub searches if we are ranking; if there are no rank queries
@@ -302,7 +307,6 @@ public ShardSearchRequest(StreamInput in) throws IOException {
302307 subSearchSourceBuilders .add (new SubSearchSourceBuilder (queryBuilder ));
303308 }
304309 source .subSearches (subSearchSourceBuilders );
305- originalSource .subSearches (subSearchSourceBuilders );
306310 }
307311 }
308312 if (in .getTransportVersion ().before (TransportVersion .V_8_0_0 )) {
@@ -375,6 +379,9 @@ protected final void innerWriteTo(StreamOutput out, boolean asKey) throws IOExce
375379 }
376380 out .writeOptionalWriteable (scroll );
377381 out .writeOptionalWriteable (source );
382+ if (out .getTransportVersion ().onOrAfter (TransportVersion .V_8_500_031 )) {
383+ out .writeOptionalNamedWriteable (originalQuery );
384+ }
378385 if (out .getTransportVersion ().onOrAfter (TransportVersion .V_8_8_0 )
379386 && out .getTransportVersion ().before (TransportVersion .V_8_500_013 )) {
380387 // to serialize between the 8.8 and 8.500.013 version we need to translate
@@ -459,12 +466,12 @@ public SearchSourceBuilder source() {
459466 return source ;
460467 }
461468
462- public SearchSourceBuilder originalSource () {
463- return originalSource ;
469+ public QueryBuilder originalQuery () {
470+ return originalQuery ;
464471 }
465472
466- public void originalSource ( SearchSourceBuilder originalSource ) {
467- this .originalSource = originalSource ;
473+ public void originalQuery ( QueryBuilder originalQuery ) {
474+ this .originalQuery = originalQuery ;
468475 }
469476
470477 public AliasFilter getAliasFilter () {
@@ -641,7 +648,7 @@ public Rewriteable rewrite(QueryRewriteContext ctx) throws IOException {
641648 newSource .size (0 );
642649 }
643650 request .source (newSource );
644- request .originalSource (request .source ());
651+ request .originalQuery (request .source (). query ());
645652 request .setBottomSortValues (null );
646653 }
647654
0 commit comments