summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorArne Juul <root@screwdriver.com>2023-10-12 12:24:43 +0000
committerArne Juul <root@screwdriver.com>2023-10-12 12:24:43 +0000
commitfae45f5a65eac3eca67dccde884bb40781983f61 (patch)
tree368b0e3fff3cb76e81ad593e98bf7e90ad3c096b /container-search
parent64f510470e9cb1484cadfc5731266782d02f7191 (diff)
wire rerank-count from query properties
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/ranking/GlobalPhaseRanker.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/ranking/GlobalPhaseRanker.java b/container-search/src/main/java/com/yahoo/search/ranking/GlobalPhaseRanker.java
index 6e30a81eebc..d3c100931be 100644
--- a/container-search/src/main/java/com/yahoo/search/ranking/GlobalPhaseRanker.java
+++ b/container-search/src/main/java/com/yahoo/search/ranking/GlobalPhaseRanker.java
@@ -31,6 +31,11 @@ public class GlobalPhaseRanker {
logger.fine(() -> "Using factory: " + factory);
}
+ public int getRerankCount(Query query, String schema) {
+ var setup = globalPhaseSetupFor(query, schema).orElse(null);
+ return resolveRerankCount(setup, query);
+ }
+
public Optional<ErrorMessage> validateNoSorting(Query query, String schema) {
var setup = globalPhaseSetupFor(query, schema).orElse(null);
if (setup == null) return Optional.empty();
@@ -50,7 +55,7 @@ public class GlobalPhaseRanker {
if (setup == null) return;
var mainSpec = setup.globalPhaseEvalSpec;
var mainSrc = withQueryPrep(mainSpec.evalSource(), mainSpec.fromQuery(), query);
- int rerankCount = setup.rerankCount;
+ int rerankCount = resolveRerankCount(setup, query);
var normalizers = new ArrayList<NormalizerContext>();
for (var nSetup : setup.normalizers) {
var normSpec = nSetup.inputEvalSpec();
@@ -101,4 +106,12 @@ public class GlobalPhaseRanker {
.flatMap(evaluator -> evaluator.getGlobalPhaseSetup(query.getRanking().getProfile()));
}
+ private int resolveRerankCount(GlobalPhaseSetup setup, Query query) {
+ if (setup == null) return 0;
+ Integer override = query.getRanking().getGlobalPhase().getRerankCount();
+ if (override != null) {
+ return override;
+ }
+ return setup.rerankCount;
+ }
}