diff options
Diffstat (limited to 'config-model')
3 files changed, 22 insertions, 23 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/FeatureNames.java b/config-model/src/main/java/com/yahoo/searchdefinition/FeatureNames.java index 659e027586f..dc59d9cb3e5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/FeatureNames.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/FeatureNames.java @@ -5,13 +5,10 @@ */ package com.yahoo.searchdefinition; -import com.yahoo.searchlib.rankingexpression.rule.ReferenceNode; +import com.yahoo.searchlib.rankingexpression.Reference; -import java.util.Arrays; -import java.util.List; import java.util.Optional; import java.util.regex.Pattern; -import java.util.stream.Collectors; /** * Utility methods for query, document and constant rank feature names @@ -22,16 +19,16 @@ public class FeatureNames { private static final Pattern identifierRegexp = Pattern.compile("[A-Za-z0-9_][A-Za-z0-9_-]*"); - public static ReferenceNode.Reference asConstantFeature(String constantName) { - return ReferenceNode.Reference.simple("constant", quoteIfNecessary(constantName)); + public static Reference asConstantFeature(String constantName) { + return Reference.simple("constant", quoteIfNecessary(constantName)); } - public static ReferenceNode.Reference asAttributeFeature(String attributeName) { - return ReferenceNode.Reference.simple("attribute", quoteIfNecessary(attributeName)); + public static Reference asAttributeFeature(String attributeName) { + return Reference.simple("attribute", quoteIfNecessary(attributeName)); } - public static ReferenceNode.Reference asQueryFeature(String propertyName) { - return ReferenceNode.Reference.simple("query", quoteIfNecessary(propertyName)); + public static Reference asQueryFeature(String propertyName) { + return Reference.simple("query", quoteIfNecessary(propertyName)); } /** @@ -39,7 +36,7 @@ public class FeatureNames { * or empty if it is not a valid query, attribute or constant feature name */ public static Optional<String> argumentOf(String feature) { - Optional<ReferenceNode.Reference> reference = ReferenceNode.Reference.simple(feature); + Optional<Reference> reference = Reference.simple(feature); if ( ! reference.isPresent()) return Optional.empty(); if ( ! ( reference.get().name().equals("attribute") || reference.get().name().equals("constant") || diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java b/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java index 43e8c7db357..6b8f1f64bb2 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/MapEvaluationTypeContext.java @@ -3,6 +3,7 @@ package com.yahoo.searchdefinition; import com.yahoo.searchlib.rankingexpression.ExpressionFunction; import com.yahoo.searchlib.rankingexpression.RankingExpression; +import com.yahoo.searchlib.rankingexpression.Reference; import com.yahoo.searchlib.rankingexpression.parser.ParseException; import com.yahoo.searchlib.rankingexpression.rule.Arguments; import com.yahoo.searchlib.rankingexpression.rule.ExpressionNode; @@ -29,7 +30,7 @@ import java.util.Optional; */ public class MapEvaluationTypeContext extends FunctionReferenceContext implements TypeContext { - private final Map<ReferenceNode.Reference, TensorType> featureTypes = new HashMap<>(); + private final Map<Reference, TensorType> featureTypes = new HashMap<>(); public MapEvaluationTypeContext(Collection<ExpressionFunction> functions) { super(functions); @@ -37,23 +38,23 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement public MapEvaluationTypeContext(Map<String, ExpressionFunction> functions, Map<String, String> bindings, - Map<ReferenceNode.Reference, TensorType> featureTypes) { + Map<Reference, TensorType> featureTypes) { super(functions, bindings); this.featureTypes.putAll(featureTypes); } public void setType(Name name, TensorType type) { // TODO: Use a type parameter if we do this both here and in getType ... - if ( ! (name instanceof ReferenceNode.Reference)) + if ( ! (name instanceof Reference)) throw new IllegalArgumentException("Not expecting unstructured names here"); - featureTypes.put((ReferenceNode.Reference)name, type); + featureTypes.put((Reference)name, type); } @Override public TensorType getType(Name name) { - if ( ! (name instanceof ReferenceNode.Reference)) + if ( ! (name instanceof Reference)) throw new IllegalArgumentException("Not expecting unstructured names here"); - ReferenceNode.Reference reference = (ReferenceNode.Reference)name; + Reference reference = (Reference)name; Optional<String> binding = boundIdentifier(reference); if (binding.isPresent()) { @@ -70,7 +71,7 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement if (isSimpleFeature(reference)) { // The argument may be a local identifier bound to the actual value String argument = simpleArgument(reference.arguments()).get(); - reference = ReferenceNode.Reference.simple(reference.name(), bindings.getOrDefault(argument, argument)); + reference = Reference.simple(reference.name(), bindings.getOrDefault(argument, argument)); return featureTypes.get(reference); } @@ -89,7 +90,7 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement * Returns the binding if this reference is a simple identifier which is bound in this context. * Returns empty otherwise. */ - private Optional<String> boundIdentifier(ReferenceNode.Reference reference) { + private Optional<String> boundIdentifier(Reference reference) { if ( ! reference.arguments().isEmpty()) return Optional.empty(); if ( reference.output() != null) return Optional.empty(); return Optional.ofNullable(bindings.get(reference.name())); @@ -100,7 +101,7 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement * ("attribute(name)", "constant(name)" or "query(name)"). * We disregard the output because all outputs under a simple feature have the same type. */ - private boolean isSimpleFeature(ReferenceNode.Reference reference) { + private boolean isSimpleFeature(Reference reference) { Optional<String> argument = simpleArgument(reference.arguments()); if ( ! argument.isPresent()) return false; return reference.name().equals("attribute") || @@ -124,7 +125,7 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement return Optional.of(refArgument.getName()); } - private Optional<ExpressionFunction> functionInvocation(ReferenceNode.Reference reference) { + private Optional<ExpressionFunction> functionInvocation(Reference reference) { if (reference.output() != null) return Optional.empty(); return Optional.ofNullable(functions().get(reference.name())); } @@ -154,7 +155,7 @@ public class MapEvaluationTypeContext extends FunctionReferenceContext implement throw new IllegalArgumentException(description + " must be an identifier but is '" + expression + "'"); } - public Map<ReferenceNode.Reference, TensorType> featureTypes() { + public Map<Reference, TensorType> featureTypes() { return Collections.unmodifiableMap(featureTypes); } 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 0b0c0c9e0ca..bd645422d50 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java @@ -12,6 +12,7 @@ import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.searchlib.rankingexpression.ExpressionFunction; import com.yahoo.searchlib.rankingexpression.FeatureList; import com.yahoo.searchlib.rankingexpression.RankingExpression; +import com.yahoo.searchlib.rankingexpression.Reference; import com.yahoo.searchlib.rankingexpression.evaluation.TensorValue; import com.yahoo.searchlib.rankingexpression.evaluation.Value; import com.yahoo.searchlib.rankingexpression.rule.ReferenceNode; @@ -767,7 +768,7 @@ public class RankProfile implements Serializable, Cloneable { for (QueryProfileType queryProfileType : queryProfiles.getTypeRegistry().allComponents()) { for (FieldDescription field : queryProfileType.declaredFields().values()) { TensorType type = field.getType().asTensorType(); - Optional<ReferenceNode.Reference> feature = ReferenceNode.Reference.simple(field.getName()); + Optional<Reference> feature = Reference.simple(field.getName()); if ( ! feature.isPresent() || ! feature.get().name().equals("query")) continue; TensorType existingType = context.getType(feature.get()); |