aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/schema/processing/AdjustSummaryTransforms.java
diff options
context:
space:
mode:
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.java20
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().
*/