diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/processing/AdjustSummaryTransforms.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/schema/processing/AdjustSummaryTransforms.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/processing/AdjustSummaryTransforms.java b/config-model/src/main/java/com/yahoo/schema/processing/AdjustSummaryTransforms.java index dd6f118d113..fe26ada5c8b 100644 --- a/config-model/src/main/java/com/yahoo/schema/processing/AdjustSummaryTransforms.java +++ b/config-model/src/main/java/com/yahoo/schema/processing/AdjustSummaryTransforms.java @@ -36,6 +36,7 @@ public class AdjustSummaryTransforms extends Processor { makeDocumentIdTransformIfAppropriate(summaryField); makeAttributeTransformIfAppropriate(summaryField, schema); makeAttributeCombinerTransformIfAppropriate(summaryField, schema); + makeAttributeTokensTransformIfAppropriate(summaryField, summary.getName(), schema); makeCopyTransformIfAppropriate(summaryField, schema); } } @@ -67,6 +68,25 @@ public class AdjustSummaryTransforms extends Processor { } } + private void makeAttributeTokensTransformIfAppropriate(SummaryField summaryField, String docsumName, Schema schema) { + if (summaryField.getTransform() == SummaryTransform.TOKENS) { + String sourceFieldName = summaryField.getSingleSource(); + Attribute attribute = schema.getAttribute(sourceFieldName); + ImmutableSDField source = schema.getField(sourceFieldName); + if (!source.doesIndexing()) { + if (attribute != null) { + summaryField.setTransform(SummaryTransform.ATTRIBUTE_TOKENS); + } else { + throw new IllegalArgumentException("For schema '" + schema.getName() + + "', document-summary '" + docsumName + + "', summary field '" + summaryField.getName() + + "', source field '" + sourceFieldName + + "': tokens summary field setting requires index or attribute for source field"); + } + } + } + } + /* * This function must be called after makeAttributeCombinerTransformIfAppropriate(). */ |