diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2019-01-10 15:33:47 +0100 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2019-01-11 11:18:03 +0100 |
commit | 714931304b90a3438c4b048f5b4f94119dac2b23 (patch) | |
tree | d4abe5a03366e85274bb3179a976d0405d419c5f /config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java | |
parent | 0719167b1ebdc03e79156dafded27edee3daa852 (diff) |
Stop flattening imported fields.
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java index 6a1275a73d9..59dc4275e15 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java @@ -4,7 +4,9 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.document.ImmutableImportedComplexSDField; import com.yahoo.searchdefinition.document.ImmutableSDField; +import com.yahoo.searchdefinition.document.ImportedComplexField; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.documentmodel.SummaryTransform; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -30,19 +32,21 @@ public class AddAttributeTransformToSummaryOfImportedFields extends Processor { @Override public void process(boolean validate, boolean documentsOnly) { search.allImportedFields() - .flatMap(this::getSummaryFieldsForImportedField) - .forEach(AddAttributeTransformToSummaryOfImportedFields::setAttributeTransform); - search.importedFields().map(fields -> fields.complexFields().values().stream()). - orElse(Stream.empty()). - map(field -> field.asImmutableSDField()). - flatMap(this::getSummaryFieldsForImportedField). - forEach(AddAttributeTransformToSummaryOfImportedFields::setAttributeCombinerTransform); + .forEach(field -> setTransform(field)); } private Stream<SummaryField> getSummaryFieldsForImportedField(ImmutableSDField importedField) { return search.getSummaryFields(importedField).values().stream(); } + private void setTransform(ImmutableSDField field) { + if (field instanceof ImmutableImportedComplexSDField) { + getSummaryFieldsForImportedField(field).forEach(AddAttributeTransformToSummaryOfImportedFields::setAttributeCombinerTransform); + } else { + getSummaryFieldsForImportedField(field).forEach(AddAttributeTransformToSummaryOfImportedFields::setAttributeTransform); + } + } + private static void setAttributeTransform(SummaryField summaryField) { if (summaryField.getTransform() == SummaryTransform.NONE) { summaryField.setTransform(SummaryTransform.ATTRIBUTE); |