diff options
author | Arne Juul <root@screwdriver.com> | 2023-10-12 12:24:43 +0000 |
---|---|---|
committer | Arne Juul <root@screwdriver.com> | 2023-10-12 12:24:43 +0000 |
commit | fae45f5a65eac3eca67dccde884bb40781983f61 (patch) | |
tree | 368b0e3fff3cb76e81ad593e98bf7e90ad3c096b /container-search | |
parent | 64f510470e9cb1484cadfc5731266782d02f7191 (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.java | 15 |
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; + } } |