diff options
author | gjoranv <gjoranv@gmail.com> | 2017-03-31 22:50:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-31 22:50:52 +0200 |
commit | f47e5141c2e468a7b2d35f1d594bceaee5e50574 (patch) | |
tree | 7a919f8c87b73cce6a428570e5e303e2905b703f /config-model/src/main/java/com/yahoo/searchdefinition | |
parent | 4fb9824be0a9fe462b782be2ee161793d676e820 (diff) |
Revert "Bjorncs/summary config imported fields"
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition')
8 files changed, 21 insertions, 68 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java b/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java index de23cef447f..97bf510c1a5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java @@ -2,9 +2,7 @@ package com.yahoo.searchdefinition; import com.yahoo.searchdefinition.document.ImmutableSDField; -import com.yahoo.vespa.documentmodel.SummaryField; -import java.util.Map; import java.util.stream.Stream; /** @@ -20,6 +18,4 @@ public interface ImmutableSearch { ImmutableSDField getField(String name); Stream<ImmutableSDField> allFields(); - - Map<String, SummaryField> getSummaryFields(ImmutableSDField field); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java index 29e67479950..2dfcb3c8dde 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java @@ -198,7 +198,11 @@ public class Search implements Serializable, ImmutableSearch { @Override public ImmutableSDField getField(String name) { - ImmutableSDField field = getConcreteField(name); + ImmutableSDField field = getExtraField(name); + if (field != null) { + return field; + } + field = (ImmutableSDField)docType.getField(name); if (field != null) { return field; } @@ -508,8 +512,7 @@ public class Search implements Serializable, ImmutableSearch { * @param field The source field. * @return The map of summary fields found. */ - @Override - public Map<String, SummaryField> getSummaryFields(ImmutableSDField field) { + public Map<String, SummaryField> getSummaryFields(SDField field) { Map<String, SummaryField> summaryFields = new java.util.LinkedHashMap<>(); for (DocumentSummary documentSummary : summaries.values()) { for (SummaryField summaryField : documentSummary.getSummaryFields()) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java index d1bb090a797..1da7206ef3b 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java @@ -67,6 +67,7 @@ public class AttributeFields extends Derived implements AttributesConfig.Produce /** * Derives one attribute. TODO: Support non-default named attributes + * @param field */ private void deriveAttributes(ImmutableSDField field) { for (Attribute fieldAttribute : field.getAttributes().values()) { 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 deleted file mode 100644 index c9ea7fb9d1f..00000000000 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java +++ /dev/null @@ -1,43 +0,0 @@ -// 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/AddExtraFieldsToDocument.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java index 9588c08439b..091bf662460 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java @@ -8,7 +8,6 @@ import com.yahoo.document.Field; import com.yahoo.document.PositionDataType; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.document.Attribute; -import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.documentmodel.SummaryField; @@ -59,14 +58,12 @@ public class AddExtraFieldsToDocument extends Processor { private void addSummaryField(Search search, SDDocumentType document, SummaryField field) { Field docField = document.getField(field.getName()); if (docField == null) { - ImmutableSDField existingField = search.getField(field.getName()); - if (existingField == null) { - SDField newField = new SDField(document, field.getName(), field.getDataType(), field.isHeader(), true); + SDField newField = search.getConcreteField(field.getName()); + if (newField == null) { + newField = new SDField(document, field.getName(), field.getDataType(), field.isHeader(), true); newField.setIsExtraField(true); - document.addField(newField); - } else if (!existingField.isImportedField()) { - document.addField(existingField.asField()); } + document.addField(newField); } else if (!docField.getDataType().equals(field.getDataType())) { throw newProcessException(search, field, "Summary field has conflicting type."); } 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 2098d0c0808..0f6ed328ea9 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 @@ -41,13 +41,11 @@ public class Processing { CreatePositionZCurve::new, WordMatch::new, DeprecateAttributePrefetch::new, - ImportedFieldsResolver::new, ImplicitSummaries::new, ImplicitSummaryFields::new, SummaryConsistency::new, SummaryNamesFieldCollisions::new, SummaryFieldsMustHaveValidSource::new, - AddAttributeTransformToSummaryOfImportedFields::new, MakeDefaultSummaryTheSuperSet::new, Bolding::new, AttributeProperties::new, @@ -65,6 +63,7 @@ public class Processing { ValidateFieldTypes::new, DisallowComplexMapAndWsetKeyTypes::new, SortingSettings::new, + ImportedFieldsResolver::new, FieldSetValidity::new, AddExtraFieldsToDocument::new, PredicateProcessor::new, diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java index ce1fe9e951e..0dacb3064ec 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java @@ -57,15 +57,14 @@ public class SummaryFieldsMustHaveValidSource extends Processor { } } - private static boolean isNotInThisSummaryClass(DocumentSummary summary, String name) { + private boolean isNotInThisSummaryClass(DocumentSummary summary, String name) { return summary.getSummaryField(name) == null; } - - private static boolean isInThisSummaryClass(DocumentSummary summary, String name) { + private boolean isInThisSummaryClass(DocumentSummary summary, String name) { return summary.getSummaryField(name) != null; } private boolean isDocumentField(String name) { - return search.getField(name) != null; + return search.getConcreteField(name) != null; } private boolean isSummaryField(String name) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java index 6bda869828f..63610fd623c 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java @@ -2,11 +2,12 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; -import com.yahoo.document.DataType; import com.yahoo.document.TensorDataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.document.Attribute; +import com.yahoo.document.DataType; +import com.yahoo.searchdefinition.document.SDField; +import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -31,12 +32,12 @@ public class ValidateFieldTypes extends Processor { public void process() { String searchName = search.getName(); Map<String, DataType> seenFields = new HashMap<>(); - search.allFields().forEach(field -> { + for (SDField field : search.allConcreteFields()) { checkFieldType(searchName, "index field", field.getName(), field.getDataType(), seenFields); for (Map.Entry<String, Attribute> entry : field.getAttributes().entrySet()) { checkFieldType(searchName, "attribute", entry.getKey(), entry.getValue().getDataType(), seenFields); } - }); + } for (DocumentSummary summary : search.getSummaries().values()) { for (SummaryField field : summary.getSummaryFields()) { checkFieldType(searchName, "summary field", field.getName(), field.getDataType(), seenFields); @@ -56,7 +57,7 @@ public class ValidateFieldTypes extends Processor { } } - private static boolean compatibleTypes(DataType seenType, DataType fieldType) { + private boolean compatibleTypes(DataType seenType, DataType fieldType) { // legacy tag field type compatibility; probably not needed any more (Oct 2016) if ("tag".equals(seenType.getName())) { return "tag".equals(fieldType.getName()) || "WeightedSet<string>".equals(fieldType.getName()); |