aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2022-09-07 14:41:02 +0000
committerGeir Storli <geirst@yahooinc.com>2022-09-07 14:41:02 +0000
commit3fe5b4c3af7448c348619b02e65c9441e4f122c5 (patch)
treeb58fd21578ce6bfa10c2f3fe67dd330dc36decc8 /config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java
parent3052127c03446d531e60ec74170917ff3a610258 (diff)
Remove producing of summarymap config from the config model.
The search backend is no longer using this config.
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java')
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java51
1 files changed, 50 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java b/config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java
index 9cd5d901574..b8aa89fc82a 100644
--- a/config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java
+++ b/config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java
@@ -69,7 +69,7 @@ public class SummaryClass extends Derived {
accessingDiskSummary = true;
}
addField(summaryField.getName(), summaryField.getDataType(), summaryField.getTransform(),
- SummaryMap.getSource(summaryField), fields);
+ getSource(summaryField), fields);
}
}
@@ -130,4 +130,53 @@ public class SummaryClass extends Derived {
return "summary class '" + getName() + "'";
}
+ /** Returns the command name of a transform */
+ static String getCommand(SummaryTransform transform) {
+ if (transform == SummaryTransform.NONE) {
+ return "";
+ } else if (transform == SummaryTransform.DISTANCE) {
+ return "absdist";
+ } else if (transform.isDynamic()) {
+ return "dynamicteaser";
+ } else {
+ return transform.getName();
+ }
+ }
+
+ static String getSource(SummaryField summaryField) {
+ if (summaryField.getTransform() == SummaryTransform.NONE) {
+ return "";
+ }
+
+ if (summaryField.getTransform() == SummaryTransform.ATTRIBUTE ||
+ (summaryField.getTransform() == SummaryTransform.ATTRIBUTECOMBINER && summaryField.hasExplicitSingleSource()) ||
+ summaryField.getTransform() == SummaryTransform.COPY ||
+ summaryField.getTransform() == SummaryTransform.DISTANCE ||
+ summaryField.getTransform() == SummaryTransform.GEOPOS ||
+ summaryField.getTransform() == SummaryTransform.POSITIONS ||
+ summaryField.getTransform() == SummaryTransform.MATCHED_ELEMENTS_FILTER ||
+ summaryField.getTransform() == SummaryTransform.MATCHED_ATTRIBUTE_ELEMENTS_FILTER)
+ {
+ return summaryField.getSingleSource();
+ } else {
+ // Note: Currently source mapping is handled in the indexing statement,
+ // by creating a summary field for each of the values
+ // This works, but is suboptimal. We could consolidate to a minimal set and
+ // use the right value from the minimal set as the third parameter here,
+ // and add "override" commands to multiple static values
+ boolean useFieldNameAsArgument = summaryField.getTransform().isDynamic();
+ return useFieldNameAsArgument ? summaryField.getName() : "";
+ }
+ }
+
+ /**
+ * A dynamic transform that needs the query to perform its computations.
+ * We need this because some model information is shared through configs instead of model - see usage
+ */
+ static boolean commandRequiringQuery(String commandName) {
+ return (commandName.equals("dynamicteaser") ||
+ commandName.equals(SummaryTransform.MATCHED_ELEMENTS_FILTER.getName()) ||
+ commandName.equals(SummaryTransform.MATCHED_ATTRIBUTE_ELEMENTS_FILTER.getName()));
+ }
+
}