diff options
author | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-03-30 15:44:35 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-03-30 15:58:15 +0200 |
commit | 99474232ef26cbaa0878d11511ab87aa40613f4c (patch) | |
tree | 938adeb96d7416ea6aa651c4c3dd61185cd8071d /config-model/src/main/java/com/yahoo/searchdefinition/processing | |
parent | 437239cce49adadabcf18363830098eec4016acd (diff) |
Add attribute transform to summary fields of imported fields
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/processing')
2 files changed, 44 insertions, 0 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 new file mode 100644 index 00000000000..c9ea7fb9d1f --- /dev/null +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java @@ -0,0 +1,43 @@ +// Copyright 2017 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +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.ImmutableSDField; +import com.yahoo.vespa.documentmodel.SummaryField; +import com.yahoo.vespa.documentmodel.SummaryTransform; +import com.yahoo.vespa.model.container.search.QueryProfiles; + +import java.util.stream.Stream; + +/** + * Adds the attribute summary transform ({@link SummaryTransform#ATTRIBUTE} to all {@link SummaryField} having an imported + * field as source. + * + * @author bjorncs + */ +public class AddAttributeTransformToSummaryOfImportedFields extends Processor { + + public AddAttributeTransformToSummaryOfImportedFields(Search search, + DeployLogger deployLogger, + RankProfileRegistry rankProfileRegistry, + QueryProfiles queryProfiles) { + super(search, deployLogger, rankProfileRegistry, queryProfiles); + } + + @Override + public void process() { + search.allImportedFields() + .flatMap(this::getSummaryFieldsForImportedField) + .forEach(AddAttributeTransformToSummaryOfImportedFields::setAttributeTransform); + } + + private Stream<SummaryField> getSummaryFieldsForImportedField(ImmutableSDField importedField) { + return search.getSummaryFields(importedField).values().stream(); + } + + private static void setAttributeTransform(SummaryField summaryField) { + summaryField.setTransform(SummaryTransform.ATTRIBUTE); + } +} diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java index f725113f5ab..5ec60ef7e54 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java @@ -72,6 +72,7 @@ public class Processing { TensorFieldProcessor::new, RankProfileTypeSettingsProcessor::new, ReferenceFieldsProcessor::new, + AddAttributeTransformToSummaryOfImportedFields::new, // These two should be last. IndexingValidation::new, |