summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-10-31 08:51:25 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2019-10-31 08:51:25 +0100
commitde8d9183d929db1ae048663618aa25262486de85 (patch)
treeefc1a0cb0539b6f891a7159b43c1eb54ee90c528 /config-model
parent44e3dda310c6848e086cef24fd90b8695d964205 (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.java6
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/expressiontransforms/FunctionShadower.java2
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);
}