aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/schema/RankProfile.java
diff options
context:
space:
mode:
authorArne Juul <arnej@vespa.ai>2024-02-21 14:31:27 +0000
committerArne Juul <arnej@vespa.ai>2024-02-22 10:36:19 +0000
commit97eff1f15dcafe4a8d0229fa36b3e0448de2f4d6 (patch)
tree7bfa620f51263b3e2c6cc1bd319b922a0cb33a09 /config-model/src/main/java/com/yahoo/schema/RankProfile.java
parent4f0947b6617f5c9ff0a133a1f12bb4a5b7d57bb6 (diff)
allow inputs { query(foo) string }
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/RankProfile.java')
-rw-r--r--config-model/src/main/java/com/yahoo/schema/RankProfile.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/RankProfile.java b/config-model/src/main/java/com/yahoo/schema/RankProfile.java
index 9b3e236612a..22bf1880cd7 100644
--- a/config-model/src/main/java/com/yahoo/schema/RankProfile.java
+++ b/config-model/src/main/java/com/yahoo/schema/RankProfile.java
@@ -17,6 +17,7 @@ import com.yahoo.schema.expressiontransforms.ExpressionTransforms;
import com.yahoo.schema.expressiontransforms.RankProfileTransformContext;
import com.yahoo.schema.expressiontransforms.InputRecorder;
import com.yahoo.schema.parser.ParseException;
+import com.yahoo.search.schema.RankProfile.InputType;
import com.yahoo.searchlib.rankingexpression.ExpressionFunction;
import com.yahoo.searchlib.rankingexpression.FeatureList;
import com.yahoo.searchlib.rankingexpression.RankingExpression;
@@ -841,7 +842,7 @@ public class RankProfile implements Cloneable {
if (inputs.containsKey(reference)) {
Input existing = inputs().get(reference);
if (! input.equals(existing))
- throw new IllegalArgumentException("Duplicate input: Has both " + input + " and existing");
+ throw new IllegalArgumentException("Duplicate input: Has both " + input + " and existing " + existing);
}
inputs.put(reference, input);
}
@@ -1177,7 +1178,8 @@ public class RankProfile implements Cloneable {
private Map<Reference, TensorType> featureTypes() {
Map<Reference, TensorType> featureTypes = inputs().values().stream()
- .collect(Collectors.toMap(input -> input.name(), input -> input.type()));
+ .collect(Collectors.toMap(input -> input.name(),
+ input -> input.type().tensorType()));
allFields().forEach(field -> addAttributeFeatureTypes(field, featureTypes));
allImportedFields().forEach(field -> addAttributeFeatureTypes(field, featureTypes));
return featureTypes;
@@ -1545,17 +1547,21 @@ public class RankProfile implements Cloneable {
public static final class Input {
private final Reference name;
- private final TensorType type;
+ private final InputType type;
private final Optional<Tensor> defaultValue;
- public Input(Reference name, TensorType type, Optional<Tensor> defaultValue) {
+ public Input(Reference name, InputType type, Optional<Tensor> defaultValue) {
this.name = name;
this.type = type;
this.defaultValue = defaultValue;
}
+ public Input(Reference name, TensorType tType, Optional<Tensor> defaultValue) {
+ this(name, new InputType(tType, false), defaultValue);
+ }
+
public Reference name() { return name; }
- public TensorType type() { return type; }
+ public InputType type() { return type; }
public Optional<Tensor> defaultValue() { return defaultValue; }
@Override