aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java20
1 files changed, 20 insertions, 0 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 77182e05f9b..68faa462fdd 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java
@@ -673,6 +673,26 @@ public class RankProfile implements Cloneable {
inputFeatures.put(ref, declaredType);
}
+ public static class ExecuteOperation {
+ public enum Phase { onmatch, onrerank, onsummary}
+ final Phase phase;
+ final String attribute;
+ final String operation;
+ ExecuteOperation(Phase phase, String attribute, String operation) {
+ this.phase = phase;
+ this.attribute = attribute;
+ this.operation = operation;
+ }
+ }
+ private final List<ExecuteOperation> executeOperations = new ArrayList<>();
+
+ public void addExecuteOperation(ExecuteOperation.Phase phase, String attribute, String operation) {
+ executeOperations.add(new ExecuteOperation(phase, attribute, operation));
+ addRankProperty("vespa.execute." + phase + ".attribute", attribute);
+ addRankProperty("vespa.execute." + phase + ".operation", operation);
+ }
+ public List<ExecuteOperation> getExecuteOperations() { return executeOperations; }
+
public RankingExpressionFunction findFunction(String name) {
RankingExpressionFunction function = functions.get(name);
return ((function == null) && (getInherited() != null))