aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-10-21 16:33:33 +0200
committerJon Bratseth <bratseth@gmail.com>2021-10-21 16:33:33 +0200
commit2f68b1b2ce21f0fb1dfe68dc2f09aa0113b7a0d8 (patch)
tree225961948f5fa0988772bdd8debcdd067246bb4f /config-model/src/main/java/com/yahoo/searchdefinition
parentc46b73e2271d133d096784b0ff41ac27011f70fc (diff)
Use map to allow shadowing parent fields
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/Schema.java4
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java2
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryMap.java2
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/VsmSummary.java6
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/AddExtraFieldsToDocument.java2
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFields.java40
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolver.java4
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/ReferenceFieldsProcessor.java2
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryConsistency.java2
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java8
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSource.java2
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java2
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypes.java2
13 files changed, 39 insertions, 39 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java b/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java
index b2d4f0592fe..36d4ba9699e 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java
@@ -609,7 +609,7 @@ public class Schema implements ImmutableSchema {
Map<String, SummaryField> summaryFields = inherited.isPresent() ? requireInherited().getSummaryFields(field)
: new java.util.LinkedHashMap<>();
for (DocumentSummary documentSummary : summaries.values()) {
- for (SummaryField summaryField : documentSummary.getSummaryFields()) {
+ for (SummaryField summaryField : documentSummary.getSummaryFields().values()) {
if (summaryField.hasSource(field.getName())) {
summaryFields.put(summaryField.getName(), summaryField);
}
@@ -628,7 +628,7 @@ public class Schema implements ImmutableSchema {
Map<String, SummaryField> summaryFields = inherited.isPresent() ? requireInherited().getUniqueNamedSummaryFields()
: new java.util.LinkedHashMap<>();
for (DocumentSummary documentSummary : summaries.values()) {
- for (SummaryField summaryField : documentSummary.getSummaryFields()) {
+ for (SummaryField summaryField : documentSummary.getSummaryFields().values()) {
summaryFields.put(summaryField.getName(), summaryField);
}
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java
index 5f88ddba5f5..68966d39d7d 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryClass.java
@@ -63,7 +63,7 @@ public class SummaryClass extends Derived {
}
private void deriveFields(Schema schema, DocumentSummary summary) {
- for (SummaryField summaryField : summary.getSummaryFields()) {
+ for (SummaryField summaryField : summary.getSummaryFields().values()) {
if (!accessingDiskSummary && schema.isAccessingDiskSummary(summaryField)) {
accessingDiskSummary = true;
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryMap.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryMap.java
index cf182a1afbc..c65ed7dc762 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryMap.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SummaryMap.java
@@ -39,7 +39,7 @@ public class SummaryMap extends Derived implements SummarymapConfig.Producer {
}
private void derive(DocumentSummary documentSummary) {
- for (SummaryField summaryField : documentSummary.getSummaryFields()) {
+ for (SummaryField summaryField : documentSummary.getSummaryFields().values()) {
if (summaryField.getTransform()== SummaryTransform.NONE) continue;
if (summaryField.getTransform()==SummaryTransform.ATTRIBUTE ||
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/VsmSummary.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/VsmSummary.java
index a2c90bc92f5..4ce486e13ba 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/VsmSummary.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/VsmSummary.java
@@ -18,7 +18,7 @@ import java.util.*;
*/
public class VsmSummary extends Derived implements VsmsummaryConfig.Producer {
- private Map<SummaryField, List<String>> summaryMap = new java.util.LinkedHashMap<>(1);
+ private final Map<SummaryField, List<String>> summaryMap = new java.util.LinkedHashMap<>(1);
public VsmSummary(Schema schema) {
derive(schema);
@@ -31,8 +31,8 @@ public class VsmSummary extends Derived implements VsmsummaryConfig.Producer {
}
private void derive(Schema schema, DocumentSummary documentSummary) {
- if (documentSummary==null) return;
- for (SummaryField summaryField : documentSummary.getSummaryFields()) {
+ if (documentSummary == null) return;
+ for (SummaryField summaryField : documentSummary.getSummaryFields().values()) {
List<String> from = toStringList(summaryField.sourceIterator());
if (doMapField(schema, summaryField)) {
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 9ade1786e37..57d5a9c8e75 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
@@ -39,7 +39,7 @@ public class AddExtraFieldsToDocument extends Processor {
addSdField(schema, document, field, validate);
}
//TODO Vespa 8 or sooner we should avoid the dirty addition of fields from dirty 'default' summary to document at all
- for (SummaryField field : schema.getSummary("default").getSummaryFields()) {
+ for (SummaryField field : schema.getSummary("default").getSummaryFields().values()) {
if (dirtyLegalFieldNameCheck(field.getName())) {
addSummaryField(schema, document, field, validate);
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFields.java
index 176fcf2130f..983942f87c3 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFields.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFields.java
@@ -33,26 +33,26 @@ public class AdjustPositionSummaryFields extends Processor {
}
private void scanSummary(DocumentSummary summary) {
- for (SummaryField summaryField : summary.getSummaryFields()) {
- if (isPositionDataType(summaryField.getDataType())) {
- String originalSource = summaryField.getSingleSource();
- if (originalSource.indexOf('.') == -1) { // Eliminate summary fields with pos.x or pos.y as source
- ImmutableSDField sourceField = schema.getField(originalSource);
- if (sourceField != null) {
- String zCurve = null;
- if (sourceField.getDataType().equals(summaryField.getDataType())) {
- zCurve = PositionDataType.getZCurveFieldName(originalSource);
- } else if (sourceField.getDataType().equals(makeZCurveDataType(summaryField.getDataType())) &&
- hasZCurveSuffix(originalSource)) {
- zCurve = originalSource;
- }
- if (zCurve != null) {
- if (hasPositionAttribute(zCurve)) {
- Source source = new Source(zCurve);
- adjustPositionField(summary, summaryField, source);
- } else if (sourceField.isImportedField() || !summaryField.getName().equals(originalSource)) {
- fail(summaryField, "No position attribute '" + zCurve + "'");
- }
+ for (SummaryField summaryField : summary.getSummaryFields().values()) {
+ if ( ! isPositionDataType(summaryField.getDataType())) continue;
+
+ String originalSource = summaryField.getSingleSource();
+ if (originalSource.indexOf('.') == -1) { // Eliminate summary fields with pos.x or pos.y as source
+ ImmutableSDField sourceField = schema.getField(originalSource);
+ if (sourceField != null) {
+ String zCurve = null;
+ if (sourceField.getDataType().equals(summaryField.getDataType())) {
+ zCurve = PositionDataType.getZCurveFieldName(originalSource);
+ } else if (sourceField.getDataType().equals(makeZCurveDataType(summaryField.getDataType())) &&
+ hasZCurveSuffix(originalSource)) {
+ zCurve = originalSource;
+ }
+ if (zCurve != null) {
+ if (hasPositionAttribute(zCurve)) {
+ Source source = new Source(zCurve);
+ adjustPositionField(summary, summaryField, source);
+ } else if (sourceField.isImportedField() || !summaryField.getName().equals(originalSource)) {
+ fail(summaryField, "No position attribute '" + zCurve + "'");
}
}
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolver.java
index 709c79cd79b..c2fe4e875b8 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolver.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolver.java
@@ -33,8 +33,8 @@ public class MatchedElementsOnlyResolver extends Processor {
public void process(boolean validate, boolean documentsOnly) {
for (var entry : schema.getSummaries().entrySet()) {
var summary = entry.getValue();
- for (var field : summary.getSummaryFields()) {
- if (field.getTransform().equals(SummaryTransform.MATCHED_ELEMENTS_FILTER)) {
+ for (var field : summary.getSummaryFields().values()) {
+ if (field.getTransform() == SummaryTransform.MATCHED_ELEMENTS_FILTER) {
processSummaryField(summary, field, validate);
}
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReferenceFieldsProcessor.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReferenceFieldsProcessor.java
index ed23b1ca606..19bfb41289d 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReferenceFieldsProcessor.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReferenceFieldsProcessor.java
@@ -35,7 +35,7 @@ public class ReferenceFieldsProcessor extends Processor {
private void clearSummaryAttributeAspectForExplicitSummaryFields() {
for (DocumentSummary docSum : schema.getSummaries().values()) {
- docSum.getSummaryFields().stream()
+ docSum.getSummaryFields().values().stream()
.filter(summaryField -> summaryField.getDataType() instanceof ReferenceDataType)
.forEach(summaryField -> summaryField.setTransform(SummaryTransform.NONE));
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryConsistency.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryConsistency.java
index 80f9a15f1e5..8b86674e4d0 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryConsistency.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryConsistency.java
@@ -33,7 +33,7 @@ public class SummaryConsistency extends Processor {
for (DocumentSummary summary : schema.getSummaries().values()) {
if (summary.getName().equals("default")) continue;
- for (SummaryField summaryField : summary.getSummaryFields() ) {
+ for (SummaryField summaryField : summary.getSummaryFields().values()) {
assertConsistency(summaryField, schema, validate);
makeAttributeTransformIfAppropriate(summaryField, schema);
makeAttributeCombinerTransformIfAppropriate(summaryField, schema);
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java
index 4bc553b1669..6a64202686f 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDiskAccessValidator.java
@@ -37,7 +37,7 @@ public class SummaryDiskAccessValidator extends Processor {
if (documentsOnly) return;
for (DocumentSummary summary : schema.getSummaries().values()) {
- for (SummaryField summaryField : summary.getSummaryFields()) {
+ for (SummaryField summaryField : summary.getSummaryFields().values()) {
for (SummaryField.Source source : summaryField.getSources()) {
ImmutableSDField field = schema.getField(source.getName());
if (field == null)
@@ -47,9 +47,9 @@ public class SummaryDiskAccessValidator extends Processor {
source + ", but this field does not exist");
if ( ! isInMemory(field, summaryField) && ! summary.isFromDisk()) {
deployLogger.logApplicationPackage(Level.WARNING, summaryField + " in " + summary + " references " +
- source + ", which is not an attribute: Using this " +
- "summary will cause disk accesses. " +
- "Set 'from-disk' on this summary class to silence this warning.");
+ source + ", which is not an attribute: Using this " +
+ "summary will cause disk accesses. " +
+ "Set 'from-disk' on this summary class to silence this warning.");
}
}
}
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 2e2144b819d..c6f5b35aaa8 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
@@ -26,7 +26,7 @@ public class SummaryFieldsMustHaveValidSource extends Processor {
if ( ! validate) return;
for (DocumentSummary summary : schema.getSummaries().values()) {
- for (SummaryField summaryField : summary.getSummaryFields()) {
+ for (SummaryField summaryField : summary.getSummaryFields().values()) {
if (summaryField.getSources().isEmpty()) {
if ((summaryField.getTransform() != SummaryTransform.RANKFEATURES) &&
(summaryField.getTransform() != SummaryTransform.SUMMARYFEATURES))
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java
index 1c6f8d54ea3..2d0afe88281 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryNamesFieldCollisions.java
@@ -32,7 +32,7 @@ public class SummaryNamesFieldCollisions extends Processor {
Map<String, Pair<String, String>> fieldToClassAndSource = new HashMap<>();
for (DocumentSummary summary : schema.getSummaries().values()) {
if ("default".equals(summary.getName())) continue;
- for (SummaryField summaryField : summary.getSummaryFields() ) {
+ for (SummaryField summaryField : summary.getSummaryFields().values()) {
if (summaryField.isImplicit()) continue;
Pair<String, String> prevClassAndSource = fieldToClassAndSource.get(summaryField.getName());
for (Source source : summaryField.getSources()) {
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 0d4bfd09677..68bf2511a4b 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
@@ -48,7 +48,7 @@ public class ValidateFieldTypes extends Processor {
}
final protected void verifySummaryFields(String searchName, Map<String, DataType> seenFields) {
for (DocumentSummary summary : schema.getSummaries().values()) {
- for (SummaryField field : summary.getSummaryFields()) {
+ for (SummaryField field : summary.getSummaryFields().values()) {
checkFieldType(searchName, "summary field", field.getName(), field.getDataType(), seenFields);
}
}