@@ -75,7 +75,7 @@ public final class RRFRetrieverBuilder extends CompoundRetrieverBuilder<RRFRetri
7575
7676 List <RetrieverSource > innerRetrievers = new ArrayList <>(rawRetrievers .size ());
7777 float [] weights = new float [rawRetrievers .size ()];
78-
78+
7979 int weightIndex = 0 ;
8080 for (Object retrieverOrComponent : rawRetrievers ) {
8181 if (retrieverOrComponent instanceof RRFRetrieverComponent component ) {
@@ -93,29 +93,26 @@ public final class RRFRetrieverBuilder extends CompoundRetrieverBuilder<RRFRetri
9393 );
9494
9595 static {
96- PARSER .declareObjectArray (optionalConstructorArg (),
97- (p , c ) -> {
98- List <Object > list = new ArrayList <>();
99- while (p .nextToken () != XContentParser .Token .END_ARRAY ) {
100- if (p .currentToken () == XContentParser .Token .START_OBJECT &&
101- p .nextToken () == XContentParser .Token .FIELD_NAME &&
102- RRFRetrieverComponent .RETRIEVER_FIELD .match (p .currentName (), p .getDeprecationHandler ())) {
103- // Handle wrapped retriever with weight
104- list .add (RRFRetrieverComponent .fromXContent (p , c ));
105- } else {
106- // Handle bare retriever (legacy format)
107- String name = p .currentName ();
108- RetrieverBuilder retrieverBuilder = p .namedObject (RetrieverBuilder .class , name , c );
109- c .trackRetrieverUsage (retrieverBuilder .getName ());
110- p .nextToken ();
111- list .add (retrieverBuilder );
112- }
96+ PARSER .declareObjectArray (optionalConstructorArg (), (p , c ) -> {
97+ List <Object > list = new ArrayList <>();
98+ while (p .nextToken () != XContentParser .Token .END_ARRAY ) {
99+ if (p .currentToken () == XContentParser .Token .START_OBJECT
100+ && p .nextToken () == XContentParser .Token .FIELD_NAME
101+ && RRFRetrieverComponent .RETRIEVER_FIELD .match (p .currentName (), p .getDeprecationHandler ())) {
102+ // Handle wrapped retriever with weight
103+ list .add (RRFRetrieverComponent .fromXContent (p , c ));
104+ } else {
105+ // Handle bare retriever (legacy format)
106+ String name = p .currentName ();
107+ RetrieverBuilder retrieverBuilder = p .namedObject (RetrieverBuilder .class , name , c );
108+ c .trackRetrieverUsage (retrieverBuilder .getName ());
109+ p .nextToken ();
110+ list .add (retrieverBuilder );
113111 }
114- return list ;
115- },
116- RETRIEVERS_FIELD
117- );
118-
112+ }
113+ return list ;
114+ }, RETRIEVERS_FIELD );
115+
119116 PARSER .declareStringArray (optionalConstructorArg (), FIELDS_FIELD );
120117 PARSER .declareString (optionalConstructorArg (), QUERY_FIELD );
121118 PARSER .declareInt (optionalConstructorArg (), RANK_WINDOW_SIZE_FIELD );
@@ -200,7 +197,14 @@ public ActionRequestValidationException validate(
200197
201198 @ Override
202199 protected RRFRetrieverBuilder clone (List <RetrieverSource > newRetrievers , List <QueryBuilder > newPreFilterQueryBuilders ) {
203- RRFRetrieverBuilder clone = new RRFRetrieverBuilder (newRetrievers , this .fields , this .query , this .rankWindowSize , this .rankConstant , this .weights );
200+ RRFRetrieverBuilder clone = new RRFRetrieverBuilder (
201+ newRetrievers ,
202+ this .fields ,
203+ this .query ,
204+ this .rankWindowSize ,
205+ this .rankConstant ,
206+ this .weights
207+ );
204208 clone .preFilterQueryBuilders = newPreFilterQueryBuilders ;
205209 clone .retrieverName = retrieverName ;
206210 return clone ;
@@ -290,17 +294,15 @@ protected RetrieverBuilder doRewrite(QueryRewriteContext ctx) {
290294 List <RetrieverSource > retrievers = new ArrayList <>(r .size ());
291295 float [] weights = new float [r .size ()];
292296 int i = 0 ;
293- for (var retriever : r ) {
297+ for (var retriever : r ) {
294298 retrievers .add (retriever .retrieverSource ());
295299 weights [i ++] = retriever .weight ();
296300 }
297301 return new RRFRetrieverBuilder (retrievers , null , null , rankWindowSize , rankConstant , weights );
298302 },
299303 w -> {
300304 if (w < 0 ) {
301- throw new IllegalArgumentException (
302- "[" + NAME + "] per-field weights must be non-negative"
303- );
305+ throw new IllegalArgumentException ("[" + NAME + "] per-field weights must be non-negative" );
304306 }
305307 }
306308 );
@@ -341,7 +343,7 @@ public int doHashCode() {
341343 public void doToXContent (XContentBuilder builder , Params params ) throws IOException {
342344 if (innerRetrievers .isEmpty () == false ) {
343345 builder .startArray (RETRIEVERS_FIELD .getPreferredName ());
344-
346+
345347 for (int i = 0 ; i < innerRetrievers .size (); i ++) {
346348 new RRFRetrieverComponent (innerRetrievers .get (i ).retriever (), this .weights [i ]).toXContent (builder , params );
347349 }
0 commit comments