diff options
author | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2023-03-07 15:17:13 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahooinc.com> | 2023-03-07 15:55:27 +0100 |
commit | a81af2ebddb5fec15f089f63109188ebab98cb6c (patch) | |
tree | c0791ef78d25fd67df3eba5ef80a8bfcf96a305d /container-search | |
parent | 17bc2824d457eccde682d89c67fc0ce3f12d7dad (diff) |
Only setup `RankProfilesEvaluator` for schemas with 'global-phase'
Diffstat (limited to 'container-search')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/ranking/GlobalPhaseRanker.java | 19 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluatorFactory.java | 11 |
2 files changed, 10 insertions, 20 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 b72f81f1439..2c6ab9e9367 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 @@ -1,24 +1,16 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.ranking; -import ai.vespa.models.evaluation.FunctionEvaluator; -import ai.vespa.models.evaluation.Model; import com.yahoo.component.annotation.Inject; import com.yahoo.search.Query; import com.yahoo.search.Result; import com.yahoo.search.ranking.RankProfilesEvaluator.GlobalPhaseData; -import com.yahoo.search.result.Hit; -import com.yahoo.search.result.HitGroup; import com.yahoo.tensor.Tensor; import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.logging.Logger; import java.util.function.Supplier; +import java.util.logging.Logger; public class GlobalPhaseRanker { @@ -32,12 +24,11 @@ public class GlobalPhaseRanker { } public void process(Query query, Result result, String schema) { - var proxy = factory.proxyForSchema(schema); String rankProfile = query.getRanking().getProfile(); - var optData = proxy.getGlobalPhaseData(rankProfile); - if (optData.isEmpty()) - return; - GlobalPhaseData data = optData.get(); + GlobalPhaseData data = factory.evaluatorForSchema(schema) + .flatMap(evaluator -> evaluator.getGlobalPhaseData(rankProfile)) + .orElse(null); + if (data == null) return; var functionEvaluatorSource = data.functionEvaluatorSource(); var prepared = findFromQuery(query, data.needInputs()); Supplier<Evaluator> supplier = () -> { diff --git a/container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluatorFactory.java b/container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluatorFactory.java index edb05ed9788..33f2fb74da5 100644 --- a/container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluatorFactory.java +++ b/container-search/src/main/java/com/yahoo/search/ranking/RankProfilesEvaluatorFactory.java @@ -6,6 +6,8 @@ import com.yahoo.api.annotations.Beta; import com.yahoo.component.annotation.Inject; import com.yahoo.component.provider.ComponentRegistry; +import java.util.Optional; + /** * factory for model-evaluation proxies * @author arnej @@ -20,14 +22,11 @@ public class RankProfilesEvaluatorFactory { this.registry = registry; } - public RankProfilesEvaluator proxyForSchema(String schemaName) { - var component = registry.getComponent("ranking-expression-evaluator." + schemaName); - if (component == null) { - throw new IllegalArgumentException("ranking expression evaluator for schema '" + schemaName + "' not found"); - } - return component; + public Optional<RankProfilesEvaluator> evaluatorForSchema(String schemaName) { + return Optional.ofNullable(registry.getComponent("ranking-expression-evaluator." + schemaName)); } + @Override public String toString() { var buf = new StringBuilder(); buf.append(this.getClass().getName()).append(" containing: ["); |