diff options
author | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-03-23 15:02:19 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-03-27 11:17:05 +0200 |
commit | 9bec901bd604fcaa8f0443cf9e89448ed6facdbe (patch) | |
tree | ca12ae85a56cb7d8017d106a4edae4e4afec6d78 /config-model | |
parent | 68ae183a62a67df17fafc0e98a1bfbc3cacbaeba (diff) |
Improve name of methods exposing fields in Search
Introduce new concept called 'concrete' fields which consists of all
document and extra fields. Change concept of 'all' fields to also
include 'imported' fields in addition to 'concrete' fields.
Diffstat (limited to 'config-model')
63 files changed, 138 insertions, 129 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DefaultRankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/DefaultRankProfile.java index dae3fc4e80a..16ad0f43603 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DefaultRankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DefaultRankProfile.java @@ -45,7 +45,7 @@ public class DefaultRankProfile extends RankProfile { RankSetting setting=super.getRankSetting(fieldOrIndex,type); if (setting!=null) return setting; - SDField field=getSearch().getField(fieldOrIndex); + SDField field=getSearch().getConcreteField(fieldOrIndex); if (field!=null) { setting=toRankSetting(field,type); if (setting!=null) @@ -94,7 +94,7 @@ public class DefaultRankProfile extends RankProfile { public Set<RankSetting> rankSettings() { Set<RankSetting> settings=new LinkedHashSet<>(20); settings.addAll(this.rankSettings); - for (SDField field : getSearch().allFieldsList() ) { + for (SDField field : getSearch().allConcreteFields() ) { addSetting(field,RankSetting.Type.WEIGHT,settings); addSetting(field,RankSetting.Type.RANKTYPE,settings); addSetting(field,RankSetting.Type.LITERALBOOST,settings); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java index e513436ca66..42ad77376c5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java @@ -133,7 +133,7 @@ public class DocumentModelBuilder { for (Field f : search.getDocument().fieldSet()) { addSearchField((SDField) f, searchDef); } - for(SDField field : search.allFieldsList()) { + for(SDField field : search.allConcreteFields()) { for(Attribute attribute : field.getAttributes().values()) { if (!searchDef.getFields().containsKey(attribute.getName())) { searchDef.add(new SearchField(new Field(attribute.getName(), field), !field.getIndices().isEmpty(), true)); 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 80464faf764..97bf510c1a5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java @@ -15,5 +15,7 @@ public interface ImmutableSearch { Stream<ImmutableSDField> allImportedFields(); - ImmutableSDField getImmutableField(String name); + ImmutableSDField getField(String name); + + Stream<ImmutableSDField> allFields(); } 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 2570530ebf4..2dfcb3c8dde 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java @@ -197,8 +197,7 @@ public class Search implements Serializable, ImmutableSearch { } @Override - // TODO Rename field concepts to make a distinction between concrete fields and imported fields - public ImmutableSDField getImmutableField(String name) { + public ImmutableSDField getField(String name) { ImmutableSDField field = getExtraField(name); if (field != null) { return field; @@ -207,12 +206,21 @@ public class Search implements Serializable, ImmutableSearch { if (field != null) { return field; } - return importedFields - .map(imf -> imf.fields().get(name)) - .map(ImmutableImportedSDField::new) + return allImportedFields() + .filter(f -> f.getName().equals(name)) + .findFirst() .orElse(null); } + @Override + public Stream<ImmutableSDField> allFields() { + Stream<ImmutableSDField> extraFields = extraFieldList().stream().map(ImmutableSDField.class::cast); + Stream<ImmutableSDField> documentFields = docType.fieldSet().stream().map(ImmutableSDField.class::cast); + return Stream.concat( + extraFields, + Stream.concat(documentFields, allImportedFields())); + } + /** * Gets a document from this search definition * @@ -247,7 +255,7 @@ public class Search implements Serializable, ImmutableSearch { * * @return the list of fields in this searchdefinition */ - public List<SDField> allFieldsList() { + public List<SDField> allConcreteFields() { List<SDField> allFields = new ArrayList<>(); allFields.addAll(extraFieldList()); for (Field field : docType.fieldSet()) { @@ -270,7 +278,7 @@ public class Search implements Serializable, ImmutableSearch { * @param name of the field * @return the SDField representing the field */ - public SDField getField(String name) { + public SDField getConcreteField(String name) { SDField field = getExtraField(name); if (field != null) { return field; @@ -355,7 +363,7 @@ public class Search implements Serializable, ImmutableSearch { sameIndices.add(searchIndex); } - for (SDField field : allFieldsList()) { + for (SDField field : allConcreteFields()) { Index index = field.getIndex(name); if (index != null) { sameIndices.add(index); @@ -374,7 +382,7 @@ public class Search implements Serializable, ImmutableSearch { if (indices.get(name) != null) { return true; } - for (SDField field : allFieldsList()) { + for (SDField field : allConcreteFields()) { if (field.existsIndex(name)) { return true; } @@ -424,7 +432,7 @@ public class Search implements Serializable, ImmutableSearch { */ public List<Index> getExplicitIndices() { List<Index> allIndices = new ArrayList<>(indices.values()); - for (SDField field : allFieldsList()) { + for (SDField field : allConcreteFields()) { for (Index index : field.getIndices().values()) { allIndices.add(index); } @@ -545,7 +553,7 @@ public class Search implements Serializable, ImmutableSearch { * @return The Attribute with given name. */ public Attribute getAttribute(String name) { - for (SDField field : allFieldsList()) { + for (SDField field : allConcreteFields()) { Attribute attribute = field.getAttributes().get(name); if (attribute != null) { return attribute; @@ -583,7 +591,7 @@ public class Search implements Serializable, ImmutableSearch { } private boolean isAccessingDiskSummary(String source) { - SDField field = getField(source); + SDField field = getConcreteField(source); if (field == null) { return false; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java index 8aa9aea17db..b4791ecdff2 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexInfo.java @@ -55,7 +55,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { // Populate fieldsets with actual field objects, bit late to do that here but for (FieldSet fs : fieldSets.values()) { for (String fieldName : fs.getFieldNames()) { - fs.fields().add(search.getImmutableField(fieldName)); + fs.fields().add(search.getField(fieldName)); } } // Must follow, because index settings overrides field settings 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 31fdd3c551d..00f0eeb60c6 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 @@ -35,7 +35,7 @@ public class VsmSummary extends Derived implements VsmsummaryConfig.Producer { List<String> from = toStringList(summaryField.sourceIterator()); if (doMapField(search, summaryField)) { - SDField sdField = search.getField(summaryField.getName()); + SDField sdField = search.getConcreteField(summaryField.getName()); if (sdField != null && PositionDataType.INSTANCE.equals(sdField.getDataType())) { summaryMap.put(summaryField, Collections.singletonList(summaryField.getName())); } else { @@ -52,7 +52,7 @@ public class VsmSummary extends Derived implements VsmsummaryConfig.Producer { * @param summaryField a {@link SummaryField} */ private boolean doMapField(Search search, SummaryField summaryField) { - SDField sdField = search.getField(summaryField.getName()); + SDField sdField = search.getConcreteField(summaryField.getName()); SDDocumentType document = search.getDocument(); if (sdField==null || ((document != null) && (document.getField(summaryField.getName()) == sdField))) { return true; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableSDField.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableSDField.java index e85f48053e3..ea4671fabcc 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableSDField.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableSDField.java @@ -33,6 +33,10 @@ public interface ImmutableSDField { boolean isImportedField(); + default boolean isConcreteField() { + return !isImportedField(); + } + boolean isIndexStructureField(); boolean usesStructOrMap(); 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 5d39c70e3b9..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 @@ -58,7 +58,7 @@ public class AddExtraFieldsToDocument extends Processor { private void addSummaryField(Search search, SDDocumentType document, SummaryField field) { Field docField = document.getField(field.getName()); if (docField == null) { - SDField newField = search.getField(field.getName()); + SDField newField = search.getConcreteField(field.getName()); if (newField == null) { newField = new SDField(document, field.getName(), field.getDataType(), field.isHeader(), true); newField.setIsExtraField(true); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AttributeProperties.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AttributeProperties.java index c5fb2d1a014..93e7f793a25 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AttributeProperties.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AttributeProperties.java @@ -21,7 +21,7 @@ public class AttributeProperties extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { String fieldName = field.getName(); // For each attribute, check if the attribute has been created @@ -32,7 +32,7 @@ public class AttributeProperties extends Processor { } // Check other fields or statements that may have created this attribute. boolean created = false; - for (SDField f : search.allFieldsList()) { + for (SDField f : search.allConcreteFields()) { // Checking against the field we are looking at if (!f.getName().equals(fieldName)) { if (attributeCreated(f, attribute.getName())) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AttributesImplicitWord.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AttributesImplicitWord.java index 774160793cb..03b7e41140d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AttributesImplicitWord.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AttributesImplicitWord.java @@ -25,7 +25,7 @@ public class AttributesImplicitWord extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (fieldImplicitlyWordMatch(field)) { field.getMatching().setType(Matching.Type.WORD); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Bolding.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Bolding.java index b922959598a..ed387f38e39 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Bolding.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Bolding.java @@ -23,7 +23,7 @@ public class Bolding extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { for (SummaryField summary : field.getSummaryFields()) { if (summary.getTransform().isBolded() && !((summary.getDataType() == DataType.STRING) || (summary.getDataType() == DataType.URI))) diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/CreatePositionZCurve.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/CreatePositionZCurve.java index e014adfb94f..bf901be5187 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/CreatePositionZCurve.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/CreatePositionZCurve.java @@ -39,7 +39,7 @@ public class CreatePositionZCurve extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { DataType fieldType = field.getDataType(); if ( ! isSupportedPositionType(fieldType)) continue; @@ -88,7 +88,7 @@ public class CreatePositionZCurve extends Processor { } private SDField createZCurveField(SDField inputField, String fieldName) { - if (search.getField(fieldName) != null || search.getAttribute(fieldName) != null) { + if (search.getConcreteField(fieldName) != null || search.getAttribute(fieldName) != null) { throw newProcessException(search, null, "Incompatible position attribute '" + fieldName + "' already created."); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DeprecateAttributePrefetch.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/DeprecateAttributePrefetch.java index 6d5b3ff8936..2fe32ef0b39 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DeprecateAttributePrefetch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/DeprecateAttributePrefetch.java @@ -16,7 +16,7 @@ public class DeprecateAttributePrefetch extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { for (Attribute a : field.getAttributes().values()) { if (Boolean.TRUE.equals(a.getPrefetchValue())) { warn(search, field, "Attribute prefetch is deprecated. Use an explicitly defined document summary with all desired fields defined as attribute."); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DisallowComplexMapAndWsetKeyTypes.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/DisallowComplexMapAndWsetKeyTypes.java index dbe83143189..e246c7d2b67 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DisallowComplexMapAndWsetKeyTypes.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/DisallowComplexMapAndWsetKeyTypes.java @@ -26,7 +26,7 @@ public class DisallowComplexMapAndWsetKeyTypes extends Processor { public void process() { // TODO also traverse struct types to search for bad map or wset types there. Do this after document manager is fixed, do // not start using the static stuff on SDDocumentTypes any more. - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.getDataType() instanceof WeightedSetDataType) { DataType nestedType = ((WeightedSetDataType)field.getDataType()).getNestedType(); if (!(nestedType instanceof PrimitiveDataType)) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ExactMatch.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ExactMatch.java index fee09cc53cb..9d81c89efc4 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ExactMatch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ExactMatch.java @@ -27,7 +27,7 @@ public class ExactMatch extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { Matching.Type matching = field.getMatching().getType(); if (matching.equals(Matching.Type.EXACT) || matching.equals(Matching.Type.WORD)) diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/FieldSetValidity.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/FieldSetValidity.java index 14635b8919e..11b7bd86dbe 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/FieldSetValidity.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/FieldSetValidity.java @@ -35,7 +35,7 @@ public class FieldSetValidity extends Processor { private static void checkFieldNames(Search search, FieldSet fieldSet) { for (String fld : fieldSet.getFieldNames()) { - ImmutableSDField field = search.getImmutableField(fld); + ImmutableSDField field = search.getField(fld); if (field == null) { throw new IllegalArgumentException( "For search '" + search.getName() + "': Field '"+ fld + "' in " + fieldSet + " does not exist."); @@ -46,7 +46,7 @@ public class FieldSetValidity extends Processor { private void checkMatching(Search search, FieldSet fieldSet) { Matching fsMatching = null; for (String fld : fieldSet.getFieldNames()) { - ImmutableSDField field = search.getImmutableField(fld); + ImmutableSDField field = search.getField(fld); Matching fieldMatching = field.getMatching(); if (fsMatching==null) { fsMatching = fieldMatching; @@ -64,7 +64,7 @@ public class FieldSetValidity extends Processor { private void checkNormalization(Search search, FieldSet fieldSet) { NormalizeLevel.Level fsNorm = null; for (String fld : fieldSet.getFieldNames()) { - ImmutableSDField field = search.getImmutableField(fld); + ImmutableSDField field = search.getField(fld); NormalizeLevel.Level fieldNorm = field.getNormalizing().getLevel(); if (fsNorm==null) { fsNorm = fieldNorm; @@ -82,7 +82,7 @@ public class FieldSetValidity extends Processor { private void checkStemming(Search search, FieldSet fieldSet) { Stemming fsStemming = null; for (String fld : fieldSet.getFieldNames()) { - ImmutableSDField field = search.getImmutableField(fld); + ImmutableSDField field = search.getField(fld); Stemming fieldStemming = field.getStemming(); if (fsStemming==null) { fsStemming = fieldStemming; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/FilterFieldNames.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/FilterFieldNames.java index 1df8c642750..fc035613295 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/FilterFieldNames.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/FilterFieldNames.java @@ -27,7 +27,7 @@ public class FilterFieldNames extends Processor { @Override public void process() { - for (SDField f : search.allFieldsList()) { + for (SDField f : search.allConcreteFields()) { if (f.getRanking().isFilter()) { filterField(f.getName()); } @@ -56,7 +56,7 @@ public class FilterFieldNames extends Processor { ((Boolean)setting.getValue()).booleanValue()) { String fieldName = setting.getFieldName(); - if (search.getField(fieldName) != null) { + if (search.getConcreteField(fieldName) != null) { if (!profile.filterFields().contains(fieldName)) { filterFields.add(fieldName); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaries.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaries.java index 45a1d18b928..5cf8078a962 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaries.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaries.java @@ -33,7 +33,7 @@ public class ImplicitSummaries extends Processor { search.addSummary(defaultSummary); } - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { collectSummaries(field,search); } @@ -156,7 +156,7 @@ public class ImplicitSummaries extends Processor { } String fieldName = summaryField.getSourceField(); - SDField sourceField = search.getField(fieldName); + SDField sourceField = search.getConcreteField(fieldName); if (sourceField == null) { throw newProcessException(search, summaryField, "Source field '" + fieldName + "' does not exist."); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java index 3d413d6d06e..4d55f08d2b1 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java @@ -59,7 +59,7 @@ public class ImportedFieldsResolver extends Processor { if (isImportedField(targetSearch, targetFieldName)) { fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Is an imported field. Not supported"); } - SDField targetField = targetSearch.getField(targetFieldName); + SDField targetField = targetSearch.getConcreteField(targetFieldName); if (targetField == null) { fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Not found"); } else if (!targetField.doesAttributing()) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexFieldNames.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexFieldNames.java index 2c18c58d3dc..5afd034c9a5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexFieldNames.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexFieldNames.java @@ -24,7 +24,7 @@ public class IndexFieldNames extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (!field.getName().matches(FIELD_NAME_REGEXP) && !legalDottedPositionField(field)) { fail(search, field, " Not a legal field name. Legal expression: " + FIELD_NAME_REGEXP); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexSettingsNonFieldNames.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexSettingsNonFieldNames.java index fecc5e2309d..77012823372 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexSettingsNonFieldNames.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexSettingsNonFieldNames.java @@ -25,7 +25,7 @@ public class IndexSettingsNonFieldNames extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { boolean fieldNameUsed = false; for (Iterator i = field.getFieldNameAsIterator(); i.hasNext();) { String iName = (String)(i.next()); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexTo2FieldSet.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexTo2FieldSet.java index 46e9d471484..b4ee835388e 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexTo2FieldSet.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexTo2FieldSet.java @@ -18,7 +18,7 @@ public class IndexTo2FieldSet extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { processField(field); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingInputs.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingInputs.java index c2e889f7993..def619b8716 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingInputs.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingInputs.java @@ -28,7 +28,7 @@ public class IndexingInputs extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { ScriptExpression script = field.getIndexingScript(); if (script == null) { continue; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingOutputs.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingOutputs.java index 55e7dabf9ba..f8b268d59ae 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingOutputs.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingOutputs.java @@ -30,7 +30,7 @@ public class IndexingOutputs extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { ScriptExpression script = field.getIndexingScript(); if (script == null) { continue; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingValidation.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingValidation.java index a35be31298b..b9efbbd4d9c 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingValidation.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingValidation.java @@ -27,7 +27,7 @@ public class IndexingValidation extends Processor { @Override public void process() { VerificationContext context = new VerificationContext(new MyAdapter(search)); - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { ScriptExpression script = field.getIndexingScript(); try { script.verify(context); @@ -106,7 +106,7 @@ public class IndexingValidation extends Processor { fieldDesc = "attribute"; fieldType = attribute.getDataType(); } else if (exp instanceof IndexExpression) { - SDField field = search.getField(fieldName); + SDField field = search.getConcreteField(fieldName); if (field == null) { throw new VerificationException(exp, "Index field '" + fieldName + "' not found."); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IntegerIndex2Attribute.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IntegerIndex2Attribute.java index 24ef60b6bb3..edb0cc89060 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IntegerIndex2Attribute.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IntegerIndex2Attribute.java @@ -31,7 +31,7 @@ public class IntegerIndex2Attribute extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.doesIndexing() && field.getDataType().getPrimitiveType() instanceof NumericDataType) { // Avoid changing for example RISE fields if (field.getIndex(field.getName()) != null && !(field.getIndex(field.getName()).getType().equals(Index.Type.VESPA))) continue; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/LiteralBoost.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/LiteralBoost.java index 3f75f6ffa47..0be5b4c35fd 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/LiteralBoost.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/LiteralBoost.java @@ -39,7 +39,7 @@ public class LiteralBoost extends Processor { /** Checks if literal boost is given using rank: , and set the actual literal boost accordingly. */ private void checkRankModifierRankType(Search search) { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.getLiteralBoost() > -1) continue; // Let explicit value take precedence if (field.getRanking().isLiteral()) field.setLiteralBoost(100); @@ -55,7 +55,7 @@ public class LiteralBoost extends Processor { Iterator i = matchingRankSettingsIterator(search, RankProfile.RankSetting.Type.LITERALBOOST); while (i.hasNext()) { RankProfile.RankSetting setting = (RankProfile.RankSetting)i.next(); - SDField field = search.getField(setting.getFieldName()); + SDField field = search.getConcreteField(setting.getFieldName()); if (field == null) continue; if (field.getLiteralBoost() < 0) field.setLiteralBoost(0); @@ -63,7 +63,7 @@ public class LiteralBoost extends Processor { } private void reduceFieldLiteralBoosts(Search search) { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.getLiteralBoost()<0) continue; reduceFieldLiteralBoost(field,search); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MakeAliases.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MakeAliases.java index 856b0cf3348..4e5e3b60b21 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MakeAliases.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MakeAliases.java @@ -27,7 +27,7 @@ public class MakeAliases extends Processor { @Override public void process() { List<String> usedAliases = new ArrayList<>(); - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { for (Map.Entry<String, String> e : field.getAliasToName().entrySet()) { String alias = e.getKey(); String name = e.getValue(); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchConsistency.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchConsistency.java index f21670e6f78..328eca7a708 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchConsistency.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchConsistency.java @@ -29,7 +29,7 @@ public class MatchConsistency extends Processor { @Override public void process() { Map<String, Matching.Type> types = new HashMap<>(); - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { new MyVisitor(search, field, types).visit(field.getIndexingScript()); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MultifieldIndexHarmonizer.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MultifieldIndexHarmonizer.java index 61a11fd3a4e..0c0617a5cc5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MultifieldIndexHarmonizer.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MultifieldIndexHarmonizer.java @@ -37,7 +37,7 @@ public class MultifieldIndexHarmonizer extends Processor { } private void populateIndexToFields(Search search) { - for (SDField field : search.allFieldsList() ) { + for (SDField field : search.allConcreteFields() ) { if (!field.doesIndexing()) { continue; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/NGramMatch.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/NGramMatch.java index 84a86d98b56..0ec2d4b9ec1 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/NGramMatch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/NGramMatch.java @@ -27,7 +27,7 @@ public class NGramMatch extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.getMatching().getType().equals(Matching.Type.GRAM)) implementGramMatch(search, field); else if (field.getMatching().getGramSize()>=0) diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/OptimizeIlscript.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/OptimizeIlscript.java index 078e9400ec5..b634c3380f2 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/OptimizeIlscript.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/OptimizeIlscript.java @@ -19,7 +19,7 @@ public class OptimizeIlscript extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { ScriptExpression script = field.getIndexingScript(); if (script == null) { continue; diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/PredicateProcessor.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/PredicateProcessor.java index a156a98a584..267c20c7773 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/PredicateProcessor.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/PredicateProcessor.java @@ -34,7 +34,7 @@ public class PredicateProcessor extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.getDataType() == DataType.PREDICATE) { if (field.doesIndexing()) { fail(search, field, "Use 'attribute' instead of 'index'. This will require a refeed if you have upgraded."); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java index 9ddbf77082d..a6785a044a9 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/Processor.java @@ -60,7 +60,7 @@ public abstract class Processor { * @return the implementation field which is added to the search */ protected SDField addField(Search search, SDField field, String suffix, String indexing, String queryCommand) { - SDField implementationField = search.getField(field.getName() + "_" + suffix); + SDField implementationField = search.getConcreteField(field.getName() + "_" + suffix); if (implementationField != null) { deployLogger.log(Level.WARNING, "Implementation field " + implementationField + " added twice"); } else { 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 61dfe6d9ff9..aa41acb620d 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 @@ -28,7 +28,7 @@ public class ReferenceFieldsProcessor extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.getDataType() instanceof ReferenceDataType) { removeFromAttributePrefetchSummaryClass(field); clearSummaryTransformOnSummaryFields(field); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SetLanguage.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SetLanguage.java index 764bb1602a7..4cb6c306713 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SetLanguage.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SetLanguage.java @@ -27,7 +27,7 @@ public class SetLanguage extends Processor { public void process() { List<String> textFieldsWithoutLanguage = new ArrayList<>(); - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (fieldMustComeAfterLanguageSettingField(field)) { textFieldsWithoutLanguage.add(field.getName()); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SetRankTypeEmptyOnFilters.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SetRankTypeEmptyOnFilters.java index bca863dd033..cdda804276d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SetRankTypeEmptyOnFilters.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SetRankTypeEmptyOnFilters.java @@ -21,7 +21,7 @@ public class SetRankTypeEmptyOnFilters extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.getRanking().isFilter()) { field.setRankType(RankType.EMPTY); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SortingSettings.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SortingSettings.java index 6e77f48b4a7..a184dd5b993 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SortingSettings.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SortingSettings.java @@ -22,7 +22,7 @@ public class SortingSettings extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { for (Attribute attribute : field.getAttributes().values()) { Sorting sorting = attribute.getSorting(); if (sorting.getFunction()!=Sorting.Function.UCA) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/StringSettingsOnNonStringFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/StringSettingsOnNonStringFields.java index 48c9af5556a..2345c348c51 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/StringSettingsOnNonStringFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/StringSettingsOnNonStringFields.java @@ -17,7 +17,7 @@ public class StringSettingsOnNonStringFields extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (!doCheck(field)) continue; if (field.getMatching().isTypeUserSet()) { warn(search, field, "Matching type "+field.getMatching().getType()+" is only allowed for string fields."); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDynamicStructsArrays.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDynamicStructsArrays.java index f97d5345cab..45b50c808f9 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDynamicStructsArrays.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SummaryDynamicStructsArrays.java @@ -27,7 +27,7 @@ public class SummaryDynamicStructsArrays extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { DataType type = field.getDataType(); if (type instanceof ArrayDataType || type instanceof WeightedSetDataType || type instanceof StructDataType) { 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 06207f5ed6e..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 @@ -64,7 +64,7 @@ public class SummaryFieldsMustHaveValidSource extends Processor { 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/TagType.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/TagType.java index a5de99c7406..222ab3b1db0 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/TagType.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/TagType.java @@ -23,7 +23,7 @@ public class TagType extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.getDataType() instanceof WeightedSetDataType && ((WeightedSetDataType)field.getDataType()).isTag()) { implementTagType(field); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/TensorFieldProcessor.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/TensorFieldProcessor.java index 36cf302477e..ed453605856 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/TensorFieldProcessor.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/TensorFieldProcessor.java @@ -3,7 +3,6 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.CollectionDataType; -import com.yahoo.document.DataType; import com.yahoo.document.TensorDataType; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; @@ -24,7 +23,7 @@ public class TensorFieldProcessor extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if ( field.getDataType() instanceof TensorDataType ) { warnUseOfTensorFieldAsAttribute(field); validateIndexingScripsForTensorField(field); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/TextMatch.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/TextMatch.java index 21723639ece..53ef039011f 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/TextMatch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/TextMatch.java @@ -35,7 +35,7 @@ public class TextMatch extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.getMatching().getType() != Matching.Type.TEXT) { continue; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/TypedTransformProvider.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/TypedTransformProvider.java index 0fa9cbfa05f..1e6ae027f41 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/TypedTransformProvider.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/TypedTransformProvider.java @@ -32,7 +32,7 @@ public abstract class TypedTransformProvider extends ValueTransformProvider { } fieldType = attribute.getDataType(); } else if (exp instanceof IndexExpression) { - Field field = search.getField(fieldName); + Field field = search.getConcreteField(fieldName); if (field == null) { throw new IllegalArgumentException("Index field '" + fieldName + "' not found."); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/UriHack.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/UriHack.java index b7c98bec964..0ebc7613c99 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/UriHack.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/UriHack.java @@ -24,7 +24,7 @@ public class UriHack extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.doesIndexing()) { DataType fieldType = field.getDataType(); if (fieldType instanceof CollectionDataType) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/UrlFieldValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/UrlFieldValidator.java index b01a82b0131..293c9d39f3b 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/UrlFieldValidator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/UrlFieldValidator.java @@ -19,7 +19,7 @@ public class UrlFieldValidator extends Processor { @Override public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if ( ! field.getDataType().equals(DataType.URI)) continue; if (field.doesAttributing()) 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 9ee5f48a906..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 @@ -32,7 +32,7 @@ public class ValidateFieldTypes extends Processor { public void process() { String searchName = search.getName(); Map<String, DataType> seenFields = new HashMap<>(); - for (SDField field : search.allFieldsList()) { + 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); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldWithIndexSettingsCreatesIndex.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldWithIndexSettingsCreatesIndex.java index 68ba7536c6b..7498afce0f2 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldWithIndexSettingsCreatesIndex.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldWithIndexSettingsCreatesIndex.java @@ -24,7 +24,7 @@ public class ValidateFieldWithIndexSettingsCreatesIndex extends Processor { public void process() { Matching defaultMatching = new Matching(); Ranking defaultRanking = new Ranking(); - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.doesIndexing()) { continue; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/WordMatch.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/WordMatch.java index 98775051ccd..a8b29ed23b2 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/WordMatch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/WordMatch.java @@ -26,7 +26,7 @@ public class WordMatch extends Processor { } public void process() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (!field.getMatching().getType().equals(Matching.Type.WORD)) { continue; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java index 6803b6f3382..2b581be3a84 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java @@ -41,7 +41,7 @@ public class RankProfileTypeSettingsProcessor extends Processor { } private void processAttributeFields() { - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { Attribute attribute = field.getAttributes().get(field.getName()); if (attribute != null && attribute.tensorType().isPresent()) { addAttributeTypeToRankProfiles(attribute.getName(), attribute.tensorType().get().toString()); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/NoPrefixForIndexes.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/NoPrefixForIndexes.java index d9aa600a840..f93aee4c137 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/NoPrefixForIndexes.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/NoPrefixForIndexes.java @@ -29,7 +29,7 @@ public class NoPrefixForIndexes extends Validator { for (DocumentDatabase docDb : sc.getDocumentDbs()) { DerivedConfiguration sdConfig = docDb.getDerivedConfiguration(); Search search = sdConfig.getSearch(); - for (SDField field : search.allFieldsList()) { + for (SDField field : search.allConcreteFields()) { if (field.doesIndexing()) { //if (!field.getIndexTo().isEmpty() && !field.getIndexTo().contains(field.getName())) continue; if (field.getMatching().getAlgorithm().equals(Matching.Algorithm.PREFIX)) { @@ -51,4 +51,4 @@ public class NoPrefixForIndexes extends Validator { throw new IllegalArgumentException("For search '" + search.getName() + "', field '" + field.getName() + "': match/index:prefix is not supported for indexes."); } -}
\ No newline at end of file +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/StreamingValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/StreamingValidator.java index 9d6d10f2861..be038840b92 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/StreamingValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/StreamingValidator.java @@ -34,7 +34,7 @@ public class StreamingValidator extends Validator { private void warnStreamingGramMatching(SearchCluster sc, DeployLogger logger) { if (sc.getSdConfig() != null) { - for (SDField sd : sc.getSdConfig().getSearch().allFieldsList()) { + for (SDField sd : sc.getSdConfig().getSearch().allConcreteFields()) { if (sd.getMatching().getType().equals(Matching.Type.GRAM)) { logger.log(Level.WARNING, "For streaming search cluster '" + sc.getClusterName() + "', SD field '" + sd.getName() + "': n-gram matching is not supported for streaming search."); @@ -51,7 +51,7 @@ public class StreamingValidator extends Validator { */ private void warnStreamingAttributes(SearchCluster sc, DeployLogger logger) { if (sc.getSdConfig() != null) { - for (SDField sd : sc.getSdConfig().getSearch().allFieldsList()) { + for (SDField sd : sc.getSdConfig().getSearch().allConcreteFields()) { if (sd.doesAttributing()) { warnStreamingAttribute(sc, sd, logger); } @@ -66,4 +66,4 @@ public class StreamingValidator extends Validator { logger.log(Level.WARNING, "For streaming search cluster '" + sc.getClusterName() + "', SD field '" + sd.getName() + "': 'attribute' has same match semantics as 'index'."); } -}
\ No newline at end of file +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java index 1430582d062..11418833a6c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeValidator.java @@ -33,9 +33,9 @@ public class IndexingScriptChangeValidator { public List<VespaConfigChangeAction> validate(ValidationOverrides overrides) { List<VespaConfigChangeAction> result = new ArrayList<>(); - for (SDField nextField : nextSearch.allFieldsList()) { + for (SDField nextField : nextSearch.allConcreteFields()) { String fieldName = nextField.getName(); - SDField currentField = currentSearch.getField(fieldName); + SDField currentField = currentSearch.getConcreteField(fieldName); if (currentField != null) { validateScripts(currentField, nextField, overrides).ifPresent(r -> result.add(r)); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java index 64f96930859..b9bf7cf1678 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java @@ -18,7 +18,7 @@ public class CommentTestCase extends SearchDefinitionTestCase { @Test public void testComments() throws IOException, ParseException { Search search = SearchBuilder.buildFromFile("src/test/examples/comment.sd"); - SDField field = search.getField("a"); + SDField field = search.getConcreteField("a"); assertEquals("{ input a | tokenize normalize stem:\"SHORTEST\" | summary a | index a; }", field.getIndexingScript().toString()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/PredicateDataTypeTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/PredicateDataTypeTestCase.java index 09b6a8e7b8b..d7b85abad1b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/PredicateDataTypeTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/PredicateDataTypeTestCase.java @@ -66,7 +66,7 @@ public class PredicateDataTypeTestCase { upperBoundParameter(upperBound)))); SearchBuilder sb = SearchBuilder.createFromString(sd); - for (SDField field : sb.getSearch().allFieldsList()) { + for (SDField field : sb.getSearch().allConcreteFields()) { if (field.getDataType() == DataType.PREDICATE) { for (Index index : field.getIndices().values()) { assertEquals(true, index.getBooleanIndexDefiniton().hasArity()); @@ -93,7 +93,7 @@ public class PredicateDataTypeTestCase { upperBoundParameter(upperBound)))); SearchBuilder sb = SearchBuilder.createFromString(sd); - for (SDField field : sb.getSearch().allFieldsList()) { + for (SDField field : sb.getSearch().allConcreteFields()) { if (field.getDataType() == DataType.PREDICATE) { for (Index index : field.getIndices().values()) { assertEquals(arity, index.getBooleanIndexDefiniton().getArity()); @@ -111,7 +111,7 @@ public class PredicateDataTypeTestCase { attributeFieldSd( arityParameter(2)))); SearchBuilder sb = SearchBuilder.createFromString(sd); - for (SDField field : sb.getSearch().allFieldsList()) { + for (SDField field : sb.getSearch().allConcreteFields()) { if (field.getDataType() == DataType.PREDICATE) { for (Index index : field.getIndices().values()) { assertEquals(true, index.getBooleanIndexDefiniton().hasArity()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java index bb9680665c8..d6a8999b774 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java @@ -95,24 +95,24 @@ public class SearchImporterTestCase extends SearchDefinitionTestCase { assertEquals(1, field.getAttributes().size()); // Seventh field - field= search.getField("categories"); + field= search.getConcreteField("categories"); assertEquals("{ input categories_src | lowercase | normalize | index; }", field.getIndexingScript().toString()); assertTrue(!field.isHeader()); // Eight field - field= search.getField("categoriesagain"); + field= search.getConcreteField("categoriesagain"); assertEquals("{ input categoriesagain_src | lowercase | normalize | index; }", field.getIndexingScript().toString()); assertTrue(field.isHeader()); // Ninth field - field= search.getField("exactemento"); + field= search.getConcreteField("exactemento"); assertEquals("{ input exactemento_src | lowercase | index | summary; }", field.getIndexingScript().toString()); // Tenth field - field = search.getField("category_arr"); + field = search.getConcreteField("category_arr"); assertEquals(1, field.getAttributes().size()); attribute = field.getAttributes().get("category_arr"); assertNotNull(attribute); @@ -122,7 +122,7 @@ public class SearchImporterTestCase extends SearchDefinitionTestCase { assertTrue(field.isHeader()); // Eleventh field - field = search.getField("measurement_arr"); + field = search.getConcreteField("measurement_arr"); assertEquals(1, field.getAttributes().size()); attribute = field.getAttributes().get("measurement_arr"); assertEquals("measurement_arr", attribute.getName()); @@ -148,7 +148,7 @@ public class SearchImporterTestCase extends SearchDefinitionTestCase { assertEquals("experimental",profile.getInheritedName()); // The extra-document field - SDField exact=search.getField("exact"); + SDField exact=search.getConcreteField("exact"); assertNotNull("Extra field was parsed",exact); assertEquals("exact",exact.getName()); assertEquals(Stemming.NONE,exact.getStemming()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java index 6a0dd6e2c1b..0192ca06a7b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java @@ -1,16 +1,12 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition; -import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Stemming; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; import java.io.IOException; -import java.util.LinkedList; -import java.util.List; -import java.util.logging.Level; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; @@ -48,8 +44,8 @@ public class StemmingSettingTestCase extends SearchDefinitionTestCase { @Test public void requireThatStemmingIsDefaultShortest() throws IOException, ParseException { Search search = SearchBuilder.buildFromFile("src/test/examples/stemmingdefault.sd"); - assertNull(search.getField("my_str").getStemming()); - assertEquals(Stemming.SHORTEST, search.getField("my_str").getStemming(search)); + assertNull(search.getConcreteField("my_str").getStemming()); + assertEquals(Stemming.SHORTEST, search.getConcreteField("my_str").getStemming(search)); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributeIndexTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributeIndexTestCase.java index 9c6ff281c7a..58d9edbd6c8 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributeIndexTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributeIndexTestCase.java @@ -21,14 +21,14 @@ public class AttributeIndexTestCase extends SearchDefinitionTestCase { public void testAttributeIndex() throws IOException, ParseException { Search search = UnprocessingSearchBuilder.buildUnprocessedFromFile("src/test/examples/attributeindex.sd"); - assertTrue(search.getField("nosettings").getAttributes().get("nosettings") != null); + assertTrue(search.getConcreteField("nosettings").getAttributes().get("nosettings") != null); - assertTrue(search.getField("specifyname").getAttributes().get("newname") != null); + assertTrue(search.getConcreteField("specifyname").getAttributes().get("newname") != null); - assertTrue(search.getField("specifyname2").getAttributes().get("newname2") != null); + assertTrue(search.getConcreteField("specifyname2").getAttributes().get("newname2") != null); - assertTrue(search.getField("withstaticrankname").getAttributes().get("withstaticrankname") != null); + assertTrue(search.getConcreteField("withstaticrankname").getAttributes().get("withstaticrankname") != null); - assertTrue(search.getField("withstaticrankname").getAttributes().get("someothername") != null); + assertTrue(search.getConcreteField("withstaticrankname").getAttributes().get("someothername") != null); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributesExactMatchTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributesExactMatchTestCase.java index 2081ac6accc..fd06e33a86e 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributesExactMatchTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AttributesExactMatchTestCase.java @@ -21,19 +21,19 @@ public class AttributesExactMatchTestCase extends SearchDefinitionTestCase { @Test public void testAttributesExactMatch() throws IOException, ParseException { Search search = SearchBuilder.buildFromFile("src/test/examples/attributesexactmatch.sd"); - assertEquals(search.getField("color").getMatching().getType(), Matching.Type.EXACT); - assertEquals(search.getField("artist").getMatching().getType(), Matching.Type.WORD); - assertEquals(search.getField("drummer").getMatching().getType(), Matching.Type.WORD); - assertEquals(search.getField("guitarist").getMatching().getType(), Matching.Type.TEXT); - assertEquals(search.getField("saxophonist_arr").getMatching().getType(), Matching.Type.WORD); - assertEquals(search.getField("flutist").getMatching().getType(), Matching.Type.TEXT); + assertEquals(search.getConcreteField("color").getMatching().getType(), Matching.Type.EXACT); + assertEquals(search.getConcreteField("artist").getMatching().getType(), Matching.Type.WORD); + assertEquals(search.getConcreteField("drummer").getMatching().getType(), Matching.Type.WORD); + assertEquals(search.getConcreteField("guitarist").getMatching().getType(), Matching.Type.TEXT); + assertEquals(search.getConcreteField("saxophonist_arr").getMatching().getType(), Matching.Type.WORD); + assertEquals(search.getConcreteField("flutist").getMatching().getType(), Matching.Type.TEXT); - assertFalse(search.getField("genre").getMatching().getType().equals(Matching.Type.EXACT)); - assertFalse(search.getField("title").getMatching().getType().equals(Matching.Type.EXACT)); - assertFalse(search.getField("trumpetist").getMatching().getType().equals(Matching.Type.EXACT)); - assertFalse(search.getField("genre").getMatching().getType().equals(Matching.Type.WORD)); - assertFalse(search.getField("title").getMatching().getType().equals(Matching.Type.WORD)); - assertFalse(search.getField("trumpetist").getMatching().getType().equals(Matching.Type.WORD)); + assertFalse(search.getConcreteField("genre").getMatching().getType().equals(Matching.Type.EXACT)); + assertFalse(search.getConcreteField("title").getMatching().getType().equals(Matching.Type.EXACT)); + assertFalse(search.getConcreteField("trumpetist").getMatching().getType().equals(Matching.Type.EXACT)); + assertFalse(search.getConcreteField("genre").getMatching().getType().equals(Matching.Type.WORD)); + assertFalse(search.getConcreteField("title").getMatching().getType().equals(Matching.Type.WORD)); + assertFalse(search.getConcreteField("trumpetist").getMatching().getType().equals(Matching.Type.WORD)); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolverTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolverTestCase.java index c9dd1c14a26..6152df6c0e3 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolverTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolverTestCase.java @@ -45,9 +45,9 @@ public class ImportedFieldsResolverTestCase { ImportedField myField = model.importedFields.fields().get("my_attribute_field"); assertNotNull(myField); assertEquals("my_attribute_field", myField.fieldName()); - assertSame(model.childSearch.getField("ref"), myField.reference().referenceField()); + assertSame(model.childSearch.getConcreteField("ref"), myField.reference().referenceField()); assertSame(model.parentSearch, myField.reference().targetSearch()); - assertSame(model.parentSearch.getField("attribute_field"), myField.targetField()); + assertSame(model.parentSearch.getConcreteField("attribute_field"), myField.targetField()); } @Test diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IntegerIndex2AttributeTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IntegerIndex2AttributeTestCase.java index 36a325b42eb..74ed04cda2a 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IntegerIndex2AttributeTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IntegerIndex2AttributeTestCase.java @@ -26,32 +26,32 @@ public class IntegerIndex2AttributeTestCase extends SearchDefinitionTestCase { new IntegerIndex2Attribute(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles()).process(); SDField f; - f = search.getField("s1"); + f = search.getConcreteField("s1"); assertTrue(f.getAttributes().isEmpty()); assertTrue(f.existsIndex("s1")); - f = search.getField("s2"); + f = search.getConcreteField("s2"); assertEquals(f.getAttributes().size(), 1); assertTrue(f.existsIndex("s2")); - f = search.getField("as1"); + f = search.getConcreteField("as1"); assertTrue(f.getAttributes().isEmpty()); assertTrue(f.existsIndex("as1")); - f = search.getField("as2"); + f = search.getConcreteField("as2"); assertEquals(f.getAttributes().size(), 1); assertTrue(f.existsIndex("as2")); - f = search.getField("i1"); + f = search.getConcreteField("i1"); assertEquals(f.getAttributes().size(), 1); assertTrue( ! f.existsIndex("i1")); - f = search.getField("i2"); + f = search.getConcreteField("i2"); assertEquals(f.getAttributes().size(), 1); assertTrue( ! f.existsIndex("i2")); - f = search.getField("ai1"); - assertEquals(search.getField("ai1").getAttributes().size(), 1); - assertTrue( ! search.getField("ai1").existsIndex("ai1")); - f = search.getField("ai2"); + f = search.getConcreteField("ai1"); + assertEquals(search.getConcreteField("ai1").getAttributes().size(), 1); + assertTrue( ! search.getConcreteField("ai1").existsIndex("ai1")); + f = search.getConcreteField("ai2"); assertEquals(f.getAttributes().size(), 1); assertTrue( ! f.existsIndex("ai2")); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java index f6d40644145..20acf624aad 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/NGramTestCase.java @@ -24,15 +24,15 @@ public class NGramTestCase extends SearchDefinitionTestCase { Search search = SearchBuilder.buildFromFile("src/test/examples/ngram.sd"); assertNotNull(search); - SDField gram1=search.getField("gram_1"); + SDField gram1=search.getConcreteField("gram_1"); assertEquals(Matching.Type.GRAM,gram1.getMatching().getType()); assertEquals(1,gram1.getMatching().getGramSize()); - SDField gram2=search.getField("gram_2"); + SDField gram2=search.getConcreteField("gram_2"); assertEquals(Matching.Type.GRAM,gram2.getMatching().getType()); assertEquals(-1,gram2.getMatching().getGramSize()); // Not set explicitly - SDField gram3=search.getField("gram_3"); + SDField gram3=search.getConcreteField("gram_3"); assertEquals(Matching.Type.GRAM,gram3.getMatching().getType()); assertEquals(3,gram3.getMatching().getGramSize()); |