summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2017-03-31 22:50:52 +0200
committerGitHub <noreply@github.com>2017-03-31 22:50:52 +0200
commitf47e5141c2e468a7b2d35f1d594bceaee5e50574 (patch)
tree7a919f8c87b73cce6a428570e5e303e2905b703f /config-model/src/main/java/com/yahoo/searchdefinition
parent4fb9824be0a9fe462b782be2ee161793d676e820 (diff)
Revert "Bjorncs/summary config imported fields"
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java4
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/Search.java9
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/AttributeFields.java1
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java43
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java11
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/Processing.java3
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java7
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java11
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());