diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-09-07 14:41:02 +0000 |
---|---|---|
committer | Geir Storli <geirst@yahooinc.com> | 2022-09-07 14:41:02 +0000 |
commit | 3fe5b4c3af7448c348619b02e65c9441e4f122c5 (patch) | |
tree | b58fd21578ce6bfa10c2f3fe67dd330dc36decc8 /config-model/src/main/java/com/yahoo/schema/derived/SummaryClass.java | |
parent | 3052127c03446d531e60ec74170917ff3a610258 (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.java | 51 |
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())); + } + } |