diff options
author | bjormel <bjormel@yahooinc.com> | 2023-10-26 13:59:28 +0000 |
---|---|---|
committer | bjormel <bjormel@yahooinc.com> | 2023-10-26 13:59:28 +0000 |
commit | 567be9a1f6353cec41c23bfd1fcd46b4b2a4d2d7 (patch) | |
tree | 4664a743e166a5e11aee7b9acd70ad8ee2617612 /container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluator.java | |
parent | e9058b555d4dfea2f6c872d9a677e8678b569569 (diff) | |
parent | bce3b8e926bf9da880172acbe1ba4b12d5e026d6 (diff) |
Merge branch 'master' into bjormel/aws-main-controllerbjormel/aws-main-controller
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluator.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluator.java | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluator.java b/container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluator.java index a89f0a5c3ea..0ebb98af60e 100644 --- a/container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluator.java +++ b/container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluator.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.ranking; @@ -63,40 +63,17 @@ public class RankProfilesEvaluator extends AbstractComponent { return modelForRankProfile(rankProfile).evaluatorOf(functionName); } - static record GlobalPhaseData(Supplier<FunctionEvaluator> functionEvaluatorSource, - Collection<String> matchFeaturesToHide, - int rerankCount, - List<String> needInputs) {} + private Map<String, GlobalPhaseSetup> profilesWithGlobalPhase = new HashMap<>(); - private Map<String, GlobalPhaseData> profilesWithGlobalPhase = new HashMap<>(); - - Optional<GlobalPhaseData> getGlobalPhaseData(String rankProfile) { + Optional<GlobalPhaseSetup> getGlobalPhaseSetup(String rankProfile) { return Optional.ofNullable(profilesWithGlobalPhase.get(rankProfile)); } private void extractGlobalPhaseData(RankProfilesConfig rankProfilesConfig) { for (var rp : rankProfilesConfig.rankprofile()) { - String name = rp.name(); - Supplier<FunctionEvaluator> functionEvaluatorSource = null; - int rerankCount = -1; - List<String> needInputs = null; - Set<String> namesToHide = new HashSet<>(); - for (var prop : rp.fef().property()) { - if (prop.name().equals("vespa.globalphase.rerankcount")) { - rerankCount = Integer.valueOf(prop.value()); - } - if (prop.name().equals("vespa.rank.globalphase")) { - var model = modelForRankProfile(name); - functionEvaluatorSource = () -> model.evaluatorOf("globalphase"); - var evaluator = functionEvaluatorSource.get(); - needInputs = List.copyOf(evaluator.function().arguments()); - } - if (prop.name().equals("vespa.hidden.matchfeature")) { - namesToHide.add(prop.value()); - } - } - if (functionEvaluatorSource != null && needInputs != null) { - profilesWithGlobalPhase.put(name, new GlobalPhaseData(functionEvaluatorSource, namesToHide, rerankCount, needInputs)); + var setup = GlobalPhaseSetup.maybeMakeSetup(rp, this); + if (setup != null) { + profilesWithGlobalPhase.put(rp.name(), setup); } } } |