diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-10-31 08:51:25 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-10-31 08:51:25 +0100 |
commit | de8d9183d929db1ae048663618aa25262486de85 (patch) | |
tree | efc1a0cb0539b6f891a7159b43c1eb54ee90c528 /config-model | |
parent | 44e3dda310c6848e086cef24fd90b8695d964205 (diff) |
It is better to just lookup a function by name from the hierarchical maps in shadoworder than creating a new joined map for every lookup.
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java | 6 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java index f1155a5d3cf..5c43428a5d7 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java @@ -541,6 +541,12 @@ public class RankProfile implements Serializable, Cloneable { return rankingExpressionFunction; } + public RankingExpressionFunction findFunction(String name) { + RankingExpressionFunction function = functions.get(name); + return ((function == null) && (getInherited() != null)) + ? getInherited().findFunction(name) + : function; + } /** Returns an unmodifiable snapshot of the functions in this */ public Map<String, RankingExpressionFunction> getFunctions() { if (functions.isEmpty() && getInherited() == null) return Collections.emptyMap(); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java index 74b6471d291..c3ee7d5fc3d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java @@ -43,7 +43,7 @@ public class FunctionShadower extends ExpressionTransformer<RankProfileTransform private ExpressionNode transformFunctionNode(FunctionNode function, RankProfileTransformContext context) { String name = function.getFunction().toString(); - RankProfile.RankingExpressionFunction rankingExpressionFunction = context.rankProfile().getFunctions().get(name); + RankProfile.RankingExpressionFunction rankingExpressionFunction = context.rankProfile().findFunction(name); if (rankingExpressionFunction == null) { return transformChildren(function, context); } |