Skip to content

Commit 89edd4f

Browse files
committed
cleaned it up
1 parent a44cf1d commit 89edd4f

File tree

1 file changed

+8
-52
lines changed

1 file changed

+8
-52
lines changed

x-pack/plugin/rank-rrf/src/main/java/org/elasticsearch/xpack/rank/linear/LinearRetrieverBuilder.java

Lines changed: 8 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ private void normalizeNormalizerArray(ScoreNormalizer topLevelNormalizer, ScoreN
129129

130130
if (topLevelNormalizer != null) {
131131
// Validate explicit per-retriever normalizers match top-level
132-
if (current != null && !current.equals(DEFAULT_NORMALIZER) && !current.equals(topLevelNormalizer)) {
132+
if (current != null && current.equals(DEFAULT_NORMALIZER) == false && current.equals(topLevelNormalizer) == false) {
133133
throw new IllegalArgumentException(
134134
String.format(
135135
"[%s] All per-retriever normalizers must match the top-level normalizer: "
@@ -189,39 +189,23 @@ public LinearRetrieverBuilder(
189189
// Use a mutable list for innerRetrievers so that we can use addChild
190190
super(innerRetrievers == null ? new ArrayList<>() : new ArrayList<>(innerRetrievers), rankWindowSize);
191191
if (weights.length != this.innerRetrievers.size()) {
192-
throw new IllegalArgumentException(
193-
"["
194-
+ NAME
195-
+ "] the number of weights must be equal to the number of retrievers, but found ["
196-
+ weights.length
197-
+ "] weights and ["
198-
+ this.innerRetrievers.size()
199-
+ "] retrievers"
200-
);
192+
throw new IllegalArgumentException("The number of weights must match the number of inner retrievers");
201193
}
202194
if (normalizers.length != this.innerRetrievers.size()) {
203-
throw new IllegalArgumentException(
204-
"["
205-
+ NAME
206-
+ "] the number of normalizers must be equal to the number of retrievers, but found ["
207-
+ normalizers.length
208-
+ "] normalizers and ["
209-
+ this.innerRetrievers.size()
210-
+ "] retrievers"
211-
);
195+
throw new IllegalArgumentException("The number of normalizers must match the number of inner retrievers");
212196
}
197+
198+
this.fields = fields == null ? null : List.copyOf(fields);
199+
this.query = query;
200+
this.normalizer = normalizer;
213201
this.weights = weights;
214202
this.normalizers = normalizers;
215-
// Apply top-level normalizer priority system:
216-
// 1. Retriever-specific override (if specified)
217-
// 2. Top-level normalizer (if specified)
218-
// 3. Default (IdentityScoreNormalizer.INSTANCE)
203+
219204
ScoreNormalizer effectiveNormalizer = normalizer != null ? normalizer : DEFAULT_NORMALIZER;
220205
for (int i = 0; i < normalizers.length; i++) {
221206
if (normalizers[i] == null || normalizers[i].equals(DEFAULT_NORMALIZER)) {
222207
normalizers[i] = effectiveNormalizer;
223208
}
224-
// If per-retriever normalizer is explicitly specified, keep it (allow override)
225209
}
226210
}
227211

@@ -411,34 +395,6 @@ protected RetrieverBuilder doRewrite(QueryRewriteContext ctx) {
411395
rewritten = new StandardRetrieverBuilder(new MatchNoneQueryBuilder());
412396
}
413397
}
414-
if (rewritten instanceof LinearRetrieverBuilder == false) {
415-
return rewritten;
416-
}
417-
LinearRetrieverBuilder linearRewritten = (LinearRetrieverBuilder) rewritten;
418-
419-
if (normalizer != null) {
420-
ScoreNormalizer[] newNormalizers = new ScoreNormalizer[linearRewritten.normalizers.length];
421-
Arrays.fill(newNormalizers, normalizer);
422-
rewritten = new LinearRetrieverBuilder(
423-
linearRewritten.innerRetrievers,
424-
linearRewritten.fields,
425-
linearRewritten.query,
426-
normalizer,
427-
linearRewritten.rankWindowSize,
428-
linearRewritten.weights,
429-
newNormalizers
430-
);
431-
} else {
432-
rewritten = new LinearRetrieverBuilder(
433-
linearRewritten.innerRetrievers,
434-
linearRewritten.fields,
435-
linearRewritten.query,
436-
linearRewritten.normalizer,
437-
linearRewritten.rankWindowSize,
438-
linearRewritten.weights,
439-
linearRewritten.normalizers
440-
);
441-
}
442398

443399
return rewritten;
444400
}

0 commit comments

Comments
 (0)