diff options
author | Jon Bratseth <bratseth@gmail.com> | 2021-10-15 19:00:17 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2021-10-15 19:00:17 +0200 |
commit | cf7c0cb612a2cbc1cd63e7043eae28e5a5ecba06 (patch) | |
tree | 38309e09d8ec0f4ebbf702343b3f0a7590dbcaa1 /config-model | |
parent | 813c270c2ea80953c7b09aac56dc6a5c254aca1e (diff) |
search -> schema
Diffstat (limited to 'config-model')
206 files changed, 1888 insertions, 1895 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/SearchDocumentModel.java b/config-model/src/main/java/com/yahoo/config/model/deploy/SearchDocumentModel.java index d4b7004a1b6..604e2b0a44b 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/SearchDocumentModel.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/SearchDocumentModel.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.model.deploy; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.vespa.documentmodel.DocumentModel; import com.yahoo.vespa.model.search.NamedSchema; @@ -35,16 +36,16 @@ public class SearchDocumentModel { public static SearchDocumentModel fromBuilderAndNames(SearchBuilder builder, Map<String, String> names) { List<NamedSchema> ret = new ArrayList<>(); - for (com.yahoo.searchdefinition.Search search : builder.getSearchList()) { - ret.add(new NamedSchema(names.get(search.getName()), search)); + for (Schema schema : builder.getSearchList()) { + ret.add(new NamedSchema(names.get(schema.getName()), schema)); } return new SearchDocumentModel(builder.getModel(), ret); } public static SearchDocumentModel fromBuilder(SearchBuilder builder) { List<NamedSchema> ret = new ArrayList<>(); - for (com.yahoo.searchdefinition.Search search : builder.getSearchList()) { - ret.add(new NamedSchema(search.getName(), search)); + for (Schema schema : builder.getSearchList()) { + ret.add(new NamedSchema(schema.getName(), schema)); } return new SearchDocumentModel(builder.getModel(), ret); } diff --git a/config-model/src/main/java/com/yahoo/documentmodel/NewDocumentType.java b/config-model/src/main/java/com/yahoo/documentmodel/NewDocumentType.java index b9e46989fa3..301141d0465 100644 --- a/config-model/src/main/java/com/yahoo/documentmodel/NewDocumentType.java +++ b/config-model/src/main/java/com/yahoo/documentmodel/NewDocumentType.java @@ -10,7 +10,7 @@ import com.yahoo.document.annotation.AnnotationType; import com.yahoo.document.annotation.AnnotationTypeRegistry; import com.yahoo.document.datatypes.FieldValue; import com.yahoo.searchdefinition.FieldSets; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.FieldSet; import com.yahoo.searchdefinition.processing.BuiltInFieldSets; @@ -337,7 +337,7 @@ public final class NewDocumentType extends StructuredDataType implements DataTyp return this; } - /** The field sets defined for this type and its {@link Search} */ + /** The field sets defined for this type and its {@link Schema} */ public Set<FieldSet> getFieldSets() { return Collections.unmodifiableSet(fieldSets); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Application.java b/config-model/src/main/java/com/yahoo/searchdefinition/Application.java index 5eb28201239..6b9034f35e0 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Application.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Application.java @@ -19,7 +19,7 @@ import java.util.Map; public class Application { private final ApplicationPackage applicationPackage; - private final Map<String, Search> schemas = new LinkedHashMap<>(); + private final Map<String, Schema> schemas = new LinkedHashMap<>(); public Application(ApplicationPackage applicationPackage) { this.applicationPackage = applicationPackage; @@ -27,17 +27,17 @@ public class Application { public ApplicationPackage applicationPackage() { return applicationPackage; } - public void add(Search schema) { + public void add(Schema schema) { if (schemas.containsKey(schema.getName())) throw new IllegalArgumentException("Duplicate schema '" + schema.getName() + "' in " + this); schemas.put(schema.getName(), schema); } /** Returns an unmodifiable list of the schemas of this application */ - public Map<String, Search> schemas() { return Collections.unmodifiableMap(schemas); } + public Map<String, Schema> schemas() { return Collections.unmodifiableMap(schemas); } /** Used by SearchBuilder, for now */ - void replaceSchemasBy(List<Search> schemas) { + void replaceSchemasBy(List<Schema> schemas) { this.schemas.clear(); for (var schema : schemas) this.schemas.put(schema.getName(), schema); 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 da611513570..56a739ced8b 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DefaultRankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DefaultRankProfile.java @@ -19,8 +19,8 @@ public class DefaultRankProfile extends RankProfile { * * @param rankProfileRegistry The {@link com.yahoo.searchdefinition.RankProfileRegistry} to use for storing and looking up rank profiles. */ - public DefaultRankProfile(Search search, RankProfileRegistry rankProfileRegistry, RankingConstants rankingConstants) { - super("default", search, rankProfileRegistry, rankingConstants); + public DefaultRankProfile(Schema schema, RankProfileRegistry rankProfileRegistry, RankingConstants rankingConstants) { + super("default", schema, rankProfileRegistry, rankingConstants); } /** 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 e7d0b72d46b..576b23b4dce 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentModelBuilder.java @@ -57,17 +57,17 @@ public class DocumentModelBuilder { return scratchInheritsMap.isEmpty(); } - public void addToModel(Collection<Search> searchList) { + public void addToModel(Collection<Schema> schemaList) { List<SDDocumentType> docList = new LinkedList<>(); - for (Search search : searchList) { - docList.add(search.getDocument()); + for (Schema schema : schemaList) { + docList.add(schema.getDocument()); } docList = sortDocumentTypes(docList); addDocumentTypes(docList); - for (Collection<Search> toAdd = tryAdd(searchList); - ! toAdd.isEmpty() && (toAdd.size() < searchList.size()); - toAdd = tryAdd(searchList)) { - searchList = toAdd; + for (Collection<Schema> toAdd = tryAdd(schemaList); + ! toAdd.isEmpty() && (toAdd.size() < schemaList.size()); + toAdd = tryAdd(schemaList)) { + schemaList = toAdd; } } @@ -116,26 +116,26 @@ public class DocumentModelBuilder { return out.toString(); } - private Collection<Search> tryAdd(Collection<Search> searchList) { - Collection<Search> left = new ArrayList<>(); - for (Search search : searchList) { + private Collection<Schema> tryAdd(Collection<Schema> schemaList) { + Collection<Schema> left = new ArrayList<>(); + for (Schema schema : schemaList) { try { - addToModel(search); + addToModel(schema); } catch (RetryLaterException e) { - left.add(search); + left.add(schema); } } return left; } - public void addToModel(Search search) { + public void addToModel(Schema schema) { // Then we add the search specific stuff - SearchDef searchDef = new SearchDef(search.getName()); - addSearchFields(search.extraFieldList(), searchDef); - for (Field f : search.getDocument().fieldSet()) { + SearchDef searchDef = new SearchDef(schema.getName()); + addSearchFields(schema.extraFieldList(), searchDef); + for (Field f : schema.getDocument().fieldSet()) { addSearchField((SDField) f, searchDef); } - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.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)); @@ -143,7 +143,7 @@ public class DocumentModelBuilder { } } - for (Field f : search.getDocument().fieldSet()) { + for (Field f : schema.getDocument().fieldSet()) { addAlias((SDField) f, searchDef); } model.getSearchManager().add(searchDef); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySchema.java index 29d8252f621..c672b662874 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySchema.java @@ -1,7 +1,6 @@ // Copyright Yahoo. 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.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.model.api.ModelContext; @@ -13,9 +12,9 @@ import com.yahoo.searchdefinition.document.SDDocumentType; * * @author vegardh */ -public class DocumentOnlySearch extends Search { +public class DocumentOnlySchema extends Schema { - public DocumentOnlySearch(Application application, FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties) { + public DocumentOnlySchema(Application application, FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties) { super(application, fileRegistry, deployLogger, properties); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReference.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReference.java index 2b0ade3797a..145effcdc9d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReference.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReference.java @@ -11,18 +11,18 @@ import com.yahoo.document.Field; public class DocumentReference { private final Field referenceField; - private final Search targetSearch; + private final Schema targetSchema; - public DocumentReference(Field referenceField, Search targetSearch) { + public DocumentReference(Field referenceField, Schema targetSchema) { this.referenceField = referenceField; - this.targetSearch = targetSearch; + this.targetSchema = targetSchema; } public Field referenceField() { return referenceField; } - public Search targetSearch() { - return targetSearch; + public Schema targetSearch() { + return targetSchema; } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java index a16433b36dc..26c140e58fe 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentReferenceResolver.java @@ -23,9 +23,9 @@ import static java.util.stream.Collectors.toMap; */ public class DocumentReferenceResolver { - private final Map<String, Search> searchMapping; + private final Map<String, Schema> searchMapping; - public DocumentReferenceResolver(Collection<Search> schemas) { + public DocumentReferenceResolver(Collection<Schema> schemas) { this.searchMapping = createDocumentNameToSearchMapping(schemas); } @@ -63,13 +63,13 @@ public class DocumentReferenceResolver { } ReferenceDataType reference = (ReferenceDataType) field.getDataType(); String targetDocumentName = getTargetDocumentName(reference); - Search search = searchMapping.get(targetDocumentName); - if (search == null) { + Schema schema = searchMapping.get(targetDocumentName); + if (schema == null) { throw new IllegalArgumentException( String.format("Invalid document reference '%s': " + "Could not find document type '%s'", field.getName(), targetDocumentName)); } - return new DocumentReference(field, search); + return new DocumentReference(field, schema); } private static boolean isAttribute(Field field) { @@ -77,10 +77,10 @@ public class DocumentReferenceResolver { return sdField.doesAttributing(); } - private static Map<String, Search> createDocumentNameToSearchMapping(Collection<Search> searchDefintions) { - return searchDefintions.stream() - .filter(search -> search.getDocument() != null) - .collect(toMap(search -> search.getDocument().getName(), identity())); + private static Map<String, Schema> createDocumentNameToSearchMapping(Collection<Schema> schemaDefintions) { + return schemaDefintions.stream() + .filter(search -> search.getDocument() != null) + .collect(toMap(search -> search.getDocument().getName(), identity())); } private static Stream<Field> fieldStream(SDDocumentType documentType) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentsOnlyRankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentsOnlyRankProfile.java index a6694ed7bff..acab2b96772 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentsOnlyRankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentsOnlyRankProfile.java @@ -14,9 +14,9 @@ import java.util.List; */ public class DocumentsOnlyRankProfile extends RankProfile { - public DocumentsOnlyRankProfile(String name, Search search, RankProfileRegistry rankProfileRegistry, + public DocumentsOnlyRankProfile(String name, Schema schema, RankProfileRegistry rankProfileRegistry, RankingConstants rankingConstants) { - super(name, search, rankProfileRegistry, rankingConstants); + super(name, schema, rankProfileRegistry, rankingConstants); } @Override diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/FieldOperationApplierForSearch.java b/config-model/src/main/java/com/yahoo/searchdefinition/FieldOperationApplierForSearch.java index 6460fdcdbc7..52110e95ac7 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/FieldOperationApplierForSearch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/FieldOperationApplierForSearch.java @@ -14,8 +14,8 @@ public class FieldOperationApplierForSearch extends FieldOperationApplier { //Do nothing } - public void process(Search search) { - for (Field field : search.extraFieldList()) { + public void process(Schema schema) { + for (Field field : schema.extraFieldList()) { apply(field); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/FieldSets.java b/config-model/src/main/java/com/yahoo/searchdefinition/FieldSets.java index ba015ebaba6..407d49e65d9 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/FieldSets.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/FieldSets.java @@ -8,7 +8,7 @@ import java.util.Map; import com.yahoo.searchdefinition.document.FieldSet; /** - * The field sets owned by a {@link Search} + * The field sets owned by a {@link Schema} * Both built in and user defined. * * @author vegardh 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 605176e0c07..1208707fe96 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java @@ -15,8 +15,8 @@ import java.util.Map; import java.util.stream.Stream; /** - * An interface containing the non-mutating methods of {@link Search}. - * For description of the methods see {@link Search}. + * An interface containing the non-mutating methods of {@link Schema}. + * For description of the methods see {@link Schema}. * * @author bjorncs */ diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/ImportedFieldsEnumerator.java b/config-model/src/main/java/com/yahoo/searchdefinition/ImportedFieldsEnumerator.java index 91fd0aee957..a1248409368 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/ImportedFieldsEnumerator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/ImportedFieldsEnumerator.java @@ -4,7 +4,6 @@ package com.yahoo.searchdefinition; import com.yahoo.searchdefinition.document.SDDocumentType; import java.util.Collection; -import java.util.List; /** * Enumerates and emplaces a set of all imported fields into a SDDocumentType from @@ -12,9 +11,9 @@ import java.util.List; */ public class ImportedFieldsEnumerator { - private final Collection<Search> schemas; + private final Collection<Schema> schemas; - public ImportedFieldsEnumerator(Collection<Search> schemas) { + public ImportedFieldsEnumerator(Collection<Schema> schemas) { this.schemas = schemas; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Index.java b/config-model/src/main/java/com/yahoo/searchdefinition/Index.java index bc1800f7ad7..793fcc59f9d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Index.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Index.java @@ -88,11 +88,11 @@ public class Index implements Cloneable, Serializable { * Whether this field should be stemmed in this search definition, * this is never null */ - public Stemming getStemming(Search search) { + public Stemming getStemming(Schema schema) { if (stemming != null) return stemming; else - return search.getStemming(); + return schema.getStemming(); } /** diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java index 68faa462fdd..d48b232cfef 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java @@ -147,18 +147,18 @@ public class RankProfile implements Cloneable { * Creates a new rank profile for a particular search definition * * @param name the name of the new profile - * @param search the search definition owning this profile + * @param schema the search definition owning this profile * @param rankProfileRegistry the {@link com.yahoo.searchdefinition.RankProfileRegistry} to use for storing * and looking up rank profiles. */ - public RankProfile(String name, Search search, RankProfileRegistry rankProfileRegistry, RankingConstants rankingConstants) { + public RankProfile(String name, Schema schema, RankProfileRegistry rankProfileRegistry, RankingConstants rankingConstants) { this.name = Objects.requireNonNull(name, "name cannot be null"); - this.search = Objects.requireNonNull(search, "search cannot be null"); + this.search = Objects.requireNonNull(schema, "search cannot be null"); this.onnxModels = null; this.rankingConstants = rankingConstants; this.rankProfileRegistry = rankProfileRegistry; - this.applicationPackage = search.applicationPackage(); - this.deployLogger = search.getDeployLogger(); + this.applicationPackage = schema.applicationPackage(); + this.deployLogger = schema.getDeployLogger(); } /** diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfileRegistry.java b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfileRegistry.java index 52b9fba391b..50ba7d07baa 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfileRegistry.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfileRegistry.java @@ -14,7 +14,7 @@ import java.util.Map; import java.util.Set; /** - * Mapping from name to {@link RankProfile} as well as a reverse mapping of {@link RankProfile} to {@link Search}. + * Mapping from name to {@link RankProfile} as well as a reverse mapping of {@link RankProfile} to {@link Schema}. * Having both of these mappings consolidated here make it easier to remove dependencies on these mappings at * run time, since it is essentially only used when building rank profile config at deployment time. * @@ -30,10 +30,10 @@ public class RankProfileRegistry { /* These rank profiles can be overridden: 'default' rank profile, as that is documented to work. And 'unranked'. */ static final Set<String> overridableRankProfileNames = new HashSet<>(Arrays.asList("default", "unranked")); - public static RankProfileRegistry createRankProfileRegistryWithBuiltinRankProfiles(Search search) { + public static RankProfileRegistry createRankProfileRegistryWithBuiltinRankProfiles(Schema schema) { RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); - rankProfileRegistry.add(new DefaultRankProfile(search, rankProfileRegistry, search.rankingConstants())); - rankProfileRegistry.add(new UnrankedRankProfile(search, rankProfileRegistry, search.rankingConstants())); + rankProfileRegistry.add(new DefaultRankProfile(schema, rankProfileRegistry, schema.rankingConstants())); + rankProfileRegistry.add(new UnrankedRankProfile(schema, rankProfileRegistry, schema.rankingConstants())); return rankProfileRegistry; } @@ -69,7 +69,7 @@ public class RankProfileRegistry { /** * Returns a named rank profile, null if the search definition doesn't have one with the given name * - * @param search the {@link Search} that owns the rank profile. + * @param search the {@link Schema} that owns the rank profile. * @param name the name of the rank profile * @return the RankProfile to return. */ diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java b/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java index 0b7b1687eb9..ea69b829e85 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java @@ -36,16 +36,14 @@ import java.util.logging.Level; import java.util.stream.Stream; /** - * A search definition describes (or uses) some document types, defines how these are turned into a relevancy tuned - * index through indexing and how data from documents should be served at search time. The identity of this - * class is its name. + * A schema contains a document type, additional fields, rank profiles and document summaries. * * @author bratseth */ // TODO: Make a class owned by this, for each of these responsibilities: // Managing indexes, managing attributes, managing summary classes. // Ensure that after the processing step, all implicit instances of the above types are explicitly represented -public class Search implements ImmutableSearch { +public class Schema implements ImmutableSearch { private static final String SD_DOC_FIELD_NAME = "sddocname"; private static final List<String> RESERVED_NAMES = List.of( @@ -102,11 +100,11 @@ public class Search implements ImmutableSearch { private final ModelContext.Properties properties; /** Testing only */ - public Search(String name) { + public Schema(String name) { this(name, Optional.empty(), null, null, new BaseDeployLogger(), new TestProperties()); } - public Search(String name, + public Schema(String name, Application application, FileRegistry fileRegistry, DeployLogger deployLogger, @@ -121,7 +119,7 @@ public class Search implements ImmutableSearch { * @param inherited the schema this inherits, if any * @param application the application containing this */ - public Search(String name, + public Schema(String name, Optional<String> inherited, Application application, FileRegistry fileRegistry, @@ -131,11 +129,11 @@ public class Search implements ImmutableSearch { this.name = name; } - protected Search(Application application, FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties) { + protected Schema(Application application, FileRegistry fileRegistry, DeployLogger deployLogger, ModelContext.Properties properties) { this(Optional.empty(), application, fileRegistry, deployLogger, properties, true); } - private Search(Optional<String> inherited, + private Schema(Optional<String> inherited, Application application, FileRegistry fileRegistry, DeployLogger deployLogger, @@ -641,11 +639,11 @@ public class Search implements ImmutableSearch { @Override public boolean equals(Object o) { - if (!(o instanceof Search)) { + if (!(o instanceof Schema)) { return false; } - Search other = (Search)o; + Schema other = (Schema)o; return getName().equals(other.getName()); } @@ -689,12 +687,12 @@ public class Search implements ImmutableSearch { * @param dt the struct to add * @return self, for chaining */ - public Search addType(SDDocumentType dt) { + public Schema addType(SDDocumentType dt) { docType.addType(dt); // TODO This is a very very dirty thing. It must go return this; } - public Search addAnnotation(SDAnnotationType dt) { + public Schema addAnnotation(SDAnnotationType dt) { docType.addAnnotation(dt); return this; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java b/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java index adfed2e8147..91ff9040713 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/SearchBuilder.java @@ -37,7 +37,7 @@ import java.util.LinkedList; import java.util.List; /** - * Helper class for importing {@link Search} objects in an unambiguous way. The pattern for using this is to 1) Import + * Helper class for importing {@link Schema} objects in an unambiguous way. The pattern for using this is to 1) Import * all available search definitions, using the importXXX() methods, 2) provide the available rank types and rank * expressions, using the setRankXXX() methods, 3) invoke the {@link #build()} method, and 4) retrieve the built * search objects using the {@link #getSearch(String)} method. @@ -56,7 +56,7 @@ public class SearchBuilder { /** True to build the document aspect only, skipping instantiation of rank profiles */ private final boolean documentsOnly; - private List<Search> searchList = new LinkedList<>(); + private List<Schema> schemaList = new LinkedList<>(); private boolean isBuilt = false; /** For testing only */ @@ -171,7 +171,7 @@ public class SearchBuilder { SimpleCharStream stream = new SimpleCharStream(str); try { return importRawSearch(new SDParser(stream, fileRegistry, deployLogger, properties, application, rankProfileRegistry, documentsOnly) - .search(docTypeMgr, searchDefDir)); + .schema(docTypeMgr, searchDefDir)); } catch (TokenMgrException e) { throw new ParseException("Unknown symbol: " + e.getMessage()); } catch (ParseException pe) { @@ -181,19 +181,19 @@ public class SearchBuilder { /** * Registers the given search object to the internal list of objects to be processed during {@link #build()}. A - * {@link Search} object is considered to be "raw" if it has not already been processed. This is the case for most + * {@link Schema} object is considered to be "raw" if it has not already been processed. This is the case for most * programmatically constructed search objects used in unit tests. * * @param schema the object to import. * @return the name of the imported object. * @throws IllegalArgumentException if the given search object has already been processed. */ - public String importRawSearch(Search schema) { + public String importRawSearch(Schema schema) { if (schema.getName() == null) throw new IllegalArgumentException("Schema has no name"); String rawName = schema.getName(); application.add(schema); - searchList.add(schema); + schemaList.add(schema); return rawName; } @@ -221,12 +221,12 @@ public class SearchBuilder { if (validate) application.validate(deployLogger); - List<Search> built = new ArrayList<>(); + List<Schema> built = new ArrayList<>(); List<SDDocumentType> sdocs = new ArrayList<>(); sdocs.add(SDDocumentType.VESPA_DOCUMENT); - for (Search search : searchList) { - if (search.hasDocument()) { - sdocs.add(search.getDocument()); + for (Schema schema : schemaList) { + if (schema.hasDocument()) { + sdocs.add(schema.getDocument()); } } @@ -237,46 +237,46 @@ public class SearchBuilder { new FieldOperationApplier().process(sdoc); } - var resolver = new DocumentReferenceResolver(searchList); + var resolver = new DocumentReferenceResolver(schemaList); sdocs.forEach(resolver::resolveReferences); sdocs.forEach(resolver::resolveInheritedReferences); - var importedFieldsEnumerator = new ImportedFieldsEnumerator(searchList); + var importedFieldsEnumerator = new ImportedFieldsEnumerator(schemaList); sdocs.forEach(importedFieldsEnumerator::enumerateImportedFields); if (validate) new DocumentGraphValidator().validateDocumentGraph(sdocs); var builder = new DocumentModelBuilder(model); - for (Search search : new SearchOrderer().order(searchList)) { - new FieldOperationApplierForSearch().process(search); // TODO: Why is this not in the regular list? - process(search, new QueryProfiles(queryProfileRegistry, deployLogger), validate); - built.add(search); + for (Schema schema : new SearchOrderer().order(schemaList)) { + new FieldOperationApplierForSearch().process(schema); // TODO: Why is this not in the regular list? + process(schema, new QueryProfiles(queryProfileRegistry, deployLogger), validate); + built.add(schema); } - builder.addToModel(searchList); + builder.addToModel(schemaList); if ( validate && ! builder.valid() ) throw new IllegalArgumentException("Impossible to build a correct model"); - searchList = built; + schemaList = built; isBuilt = true; } /** - * Processes and returns the given {@link Search} object. This method has been factored out of the {@link + * Processes and returns the given {@link Schema} object. This method has been factored out of the {@link * #build()} method so that subclasses can choose not to build anything. */ - private void process(Search search, QueryProfiles queryProfiles, boolean validate) { - new Processing().process(search, deployLogger, rankProfileRegistry, queryProfiles, validate, documentsOnly); + private void process(Schema schema, QueryProfiles queryProfiles, boolean validate) { + new Processing().process(schema, deployLogger, rankProfileRegistry, queryProfiles, validate, documentsOnly); } /** - * Convenience method to call {@link #getSearch(String)} when there is only a single {@link Search} object + * Convenience method to call {@link #getSearch(String)} when there is only a single {@link Schema} object * built. This method will never return null. * * @return the built object * @throws IllegalStateException if there is not exactly one search. */ - public Search getSearch() { + public Schema getSearch() { if ( ! isBuilt) throw new IllegalStateException("Searches not built."); if (application.schemas().size() != 1) throw new IllegalStateException("This call only works if we have 1 schema. Schemas: " + @@ -290,7 +290,7 @@ public class SearchBuilder { } /** - * Returns the built {@link Search} object that has the given name. If the name is unknown, this method will simply + * Returns the built {@link Schema} object that has the given name. If the name is unknown, this method will simply * return null. * * @param name the name of the search definition to return, @@ -298,23 +298,23 @@ public class SearchBuilder { * @return the built object, or null if none with this name * @throws IllegalStateException if {@link #build()} has not been called. */ - public Search getSearch(String name) { + public Schema getSearch(String name) { if ( ! isBuilt) throw new IllegalStateException("Searches not built."); if (name == null) return getSearch(); return application.schemas().get(name); } /** - * Convenience method to return a list of all built {@link Search} objects. + * Convenience method to return a list of all built {@link Schema} objects. * * @return the list of built searches */ - public List<Search> getSearchList() { - return new ArrayList<>(searchList); + public List<Schema> getSearchList() { + return new ArrayList<>(schemaList); } /** - * Convenience factory method to import and build a {@link Search} object from a string. + * Convenience factory method to import and build a {@link Schema} object from a string. * * @param sd The string to build from. * @return The built {@link SearchBuilder} object. @@ -340,7 +340,7 @@ public class SearchBuilder { } /** - * Convenience factory method to import and build a {@link Search} object from a file. Only for testing. + * Convenience factory method to import and build a {@link Schema} object from a file. Only for testing. * * @param fileName the file to build from * @return the built {@link SearchBuilder} object @@ -367,7 +367,7 @@ public class SearchBuilder { } /** - * Convenience factory method to import and build a {@link Search} object from a file. + * Convenience factory method to import and build a {@link Schema} object from a file. * * @param fileName the file to build from. * @param deployLogger logger for deploy messages. @@ -456,27 +456,27 @@ public class SearchBuilder { // TODO: The build methods below just call the create methods above - remove /** - * Convenience factory method to import and build a {@link Search} object from a file. Only for testing. + * Convenience factory method to import and build a {@link Schema} object from a file. Only for testing. * * @param fileName The file to build from. - * @return The built {@link Search} object. + * @return The built {@link Schema} object. * @throws IOException Thrown if there was a problem reading the file. * @throws ParseException Thrown if there was a problem parsing the file content. */ - public static Search buildFromFile(String fileName) throws IOException, ParseException { + public static Schema buildFromFile(String fileName) throws IOException, ParseException { return buildFromFile(fileName, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfileRegistry()); } /** - * Convenience factory method to import and build a {@link Search} object from a file. + * Convenience factory method to import and build a {@link Schema} object from a file. * * @param fileName The file to build from. * @param rankProfileRegistry Registry for rank profiles. - * @return The built {@link Search} object. + * @return The built {@link Schema} object. * @throws IOException Thrown if there was a problem reading the file. * @throws ParseException Thrown if there was a problem parsing the file content. */ - public static Search buildFromFile(String fileName, + public static Schema buildFromFile(String fileName, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfileRegistry) throws IOException, ParseException { @@ -484,16 +484,16 @@ public class SearchBuilder { } /** - * Convenience factory method to import and build a {@link Search} object from a file. + * Convenience factory method to import and build a {@link Schema} object from a file. * * @param fileName The file to build from. * @param deployLogger Logger for deploy messages. * @param rankProfileRegistry Registry for rank profiles. - * @return The built {@link Search} object. + * @return The built {@link Schema} object. * @throws IOException Thrown if there was a problem reading the file. * @throws ParseException Thrown if there was a problem parsing the file content. */ - public static Search buildFromFile(String fileName, + public static Schema buildFromFile(String fileName, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfileRegistry) @@ -502,32 +502,32 @@ public class SearchBuilder { } /** - * Convenience factory method to import and build a {@link Search} object from a raw object. + * Convenience factory method to import and build a {@link Schema} object from a raw object. * - * @param rawSearch the raw object to build from. + * @param rawSchema the raw object to build from. * @return the built {@link SearchBuilder} object. - * @see #importRawSearch(Search) + * @see #importRawSearch(Schema) */ - public static SearchBuilder createFromRawSearch(Search rawSearch, + public static SearchBuilder createFromRawSearch(Schema rawSchema, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfileRegistry) { SearchBuilder builder = new SearchBuilder(rankProfileRegistry, queryProfileRegistry); - builder.importRawSearch(rawSearch); + builder.importRawSearch(rawSchema); builder.build(); return builder; } /** - * Convenience factory method to import and build a {@link Search} object from a raw object. + * Convenience factory method to import and build a {@link Schema} object from a raw object. * - * @param rawSearch The raw object to build from. - * @return The built {@link Search} object. - * @see #importRawSearch(Search) + * @param rawSchema The raw object to build from. + * @return The built {@link Schema} object. + * @see #importRawSearch(Schema) */ - public static Search buildFromRawSearch(Search rawSearch, + public static Schema buildFromRawSearch(Schema rawSchema, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfileRegistry) { - return createFromRawSearch(rawSearch, rankProfileRegistry, queryProfileRegistry).getSearch(); + return createFromRawSearch(rawSchema, rankProfileRegistry, queryProfileRegistry).getSearch(); } public RankProfileRegistry getRankProfileRegistry() { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/UnrankedRankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/UnrankedRankProfile.java index 6bd30538abd..acf034362ca 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/UnrankedRankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/UnrankedRankProfile.java @@ -11,8 +11,8 @@ import com.yahoo.searchlib.rankingexpression.parser.ParseException; */ public class UnrankedRankProfile extends RankProfile { - public UnrankedRankProfile(Search search, RankProfileRegistry rankProfileRegistry, RankingConstants rankingConstants) { - super("unranked", search, rankProfileRegistry, rankingConstants); + public UnrankedRankProfile(Schema schema, RankProfileRegistry rankProfileRegistry, RankingConstants rankingConstants) { + super("unranked", schema, rankProfileRegistry, rankingConstants); try { RankingExpression exp = new RankingExpression("value(0)"); this.setFirstPhaseRanking(exp); 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 24cc15dde21..67ed37800f9 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 @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.config.subscription.ConfigInstanceUtil; import com.yahoo.document.DataType; import com.yahoo.document.PositionDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.Case; import com.yahoo.searchdefinition.document.Dictionary; @@ -44,14 +44,14 @@ public class AttributeFields extends Derived implements AttributesConfig.Produce public static final AttributeFields empty = new AttributeFields(null); - public AttributeFields(Search search) { - if (search != null) - derive(search); + public AttributeFields(Schema schema) { + if (schema != null) + derive(schema); } /** Derives everything from a field */ @Override - protected void derive(ImmutableSDField field, Search search) { + protected void derive(ImmutableSDField field, Schema schema) { if (unsupportedFieldType(field)) { return; // Ignore complex struct and map fields for indexed search (only supported for streaming search) } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Derived.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Derived.java index fded9502c49..30cb236984d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Derived.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Derived.java @@ -6,7 +6,7 @@ import com.yahoo.config.ConfigInstance.Builder; import com.yahoo.document.Field; import com.yahoo.io.IOUtils; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; @@ -36,14 +36,14 @@ public abstract class Derived implements Exportable { * and derive(SDField) for each search definition level field * AND sets the name of this to the name of the input search definition */ - protected void derive(Search search) { - setName(search.getName()); - derive(search.getDocument(), search); - for (Index index : search.getExplicitIndices()) - derive(index, search); - for (SDField field : search.allExtraFields()) - derive(field, search); - search.allImportedFields().forEach(importedField -> derive(importedField, search)); + protected void derive(Schema schema) { + setName(schema.getName()); + derive(schema.getDocument(), schema); + for (Index index : schema.getExplicitIndices()) + derive(index, schema); + for (SDField field : schema.allExtraFields()) + derive(field, schema); + schema.allImportedFields().forEach(importedField -> derive(importedField, schema)); } @@ -51,11 +51,11 @@ public abstract class Derived implements Exportable { * Derives the content of this configuration. This * default calls derive(SDField) for each document field */ - protected void derive(SDDocumentType document, Search search) { + protected void derive(SDDocumentType document, Schema schema) { for (Field field : document.fieldSet()) { SDField sdField = (SDField) field; if ( ! sdField.isExtraField()) { - derive(sdField, search); + derive(sdField, schema); } } } @@ -64,13 +64,13 @@ public abstract class Derived implements Exportable { * Derives the content of this configuration. This * default does nothing. */ - protected void derive(ImmutableSDField field, Search search) {} + protected void derive(ImmutableSDField field, Schema schema) {} /** * Derives the content of this configuration. This * default does nothing. */ - protected void derive(Index index, Search search) { + protected void derive(Index index, Schema schema) { } protected abstract String getDerivedName(); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java index 65bda6eb576..54e9a4ccb61 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java @@ -14,7 +14,7 @@ import com.yahoo.io.IOUtils; import com.yahoo.protect.Validator; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.validation.Validation; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -30,7 +30,7 @@ import java.util.concurrent.ExecutorService; */ public class DerivedConfiguration { - private final Search search; + private final Schema schema; private Summaries summaries; private SummaryMap summaryMap; private Juniperrc juniperrc; @@ -48,23 +48,23 @@ public class DerivedConfiguration { * Creates a complete derived configuration from a search definition. * Only used in tests. * - * @param search the search to derive a configuration from. Derived objects will be snapshots, but this argument is + * @param schema the search to derive a configuration from. Derived objects will be snapshots, but this argument is * live. Which means that this object will be inconsistent when the given search definition is later * modified. * @param rankProfileRegistry a {@link com.yahoo.searchdefinition.RankProfileRegistry} */ - public DerivedConfiguration(Search search, RankProfileRegistry rankProfileRegistry) { - this(search, rankProfileRegistry, new QueryProfileRegistry()); + public DerivedConfiguration(Schema schema, RankProfileRegistry rankProfileRegistry) { + this(schema, rankProfileRegistry, new QueryProfileRegistry()); } - DerivedConfiguration(Search search, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfiles) { - this(search, new BaseDeployLogger(), new TestProperties(), rankProfileRegistry, queryProfiles, new ImportedMlModels(), new InThreadExecutorService()); + DerivedConfiguration(Schema schema, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfiles) { + this(schema, new BaseDeployLogger(), new TestProperties(), rankProfileRegistry, queryProfiles, new ImportedMlModels(), new InThreadExecutorService()); } /** * Creates a complete derived configuration snapshot from a search definition. * - * @param search the search to derive a configuration from. Derived objects will be snapshots, but this + * @param schema the search to derive a configuration from. Derived objects will be snapshots, but this * argument is live. Which means that this object will be inconsistent when the given * search definition is later modified. * @param deployLogger a {@link DeployLogger} for logging when doing operations on this @@ -72,34 +72,34 @@ public class DerivedConfiguration { * @param rankProfileRegistry a {@link com.yahoo.searchdefinition.RankProfileRegistry} * @param queryProfiles the query profiles of this application */ - public DerivedConfiguration(Search search, + public DerivedConfiguration(Schema schema, DeployLogger deployLogger, ModelContext.Properties deployProperties, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfiles, ImportedMlModels importedModels, ExecutorService executor) { - Validator.ensureNotNull("Search definition", search); - this.search = search; + Validator.ensureNotNull("Search definition", schema); + this.schema = schema; this.queryProfiles = queryProfiles; - if ( ! search.isDocumentsOnly()) { - streamingFields = new VsmFields(search); - streamingSummary = new VsmSummary(search); + if ( ! schema.isDocumentsOnly()) { + streamingFields = new VsmFields(schema); + streamingSummary = new VsmSummary(schema); } - if ( ! search.isDocumentsOnly()) { - attributeFields = new AttributeFields(search); - summaries = new Summaries(search, deployLogger); - summaryMap = new SummaryMap(search); - juniperrc = new Juniperrc(search); - rankProfileList = new RankProfileList(search, search.rankingConstants(), search.rankExpressionFiles(), - search.onnxModels(), attributeFields, rankProfileRegistry, + if ( ! schema.isDocumentsOnly()) { + attributeFields = new AttributeFields(schema); + summaries = new Summaries(schema, deployLogger); + summaryMap = new SummaryMap(schema); + juniperrc = new Juniperrc(schema); + rankProfileList = new RankProfileList(schema, schema.rankingConstants(), schema.rankExpressionFiles(), + schema.onnxModels(), attributeFields, rankProfileRegistry, queryProfiles, importedModels, deployProperties, executor); - indexingScript = new IndexingScript(search); - indexInfo = new IndexInfo(search); - indexSchema = new IndexSchema(search); - importedFields = new ImportedFields(search); + indexingScript = new IndexingScript(schema); + indexInfo = new IndexInfo(schema); + indexSchema = new IndexSchema(schema); + importedFields = new ImportedFields(schema); } - Validation.validate(this, search); + Validation.validate(this, schema); } /** @@ -109,7 +109,7 @@ public class DerivedConfiguration { * @throws IOException if exporting fails, some files may still be created */ public void export(String toDirectory) throws IOException { - if (!search.isDocumentsOnly()) { + if (!schema.isDocumentsOnly()) { summaries.export(toDirectory); summaryMap.export(toDirectory); juniperrc.export(toDirectory); @@ -171,8 +171,8 @@ public class DerivedConfiguration { this.indexingScript = script; } - public Search getSearch() { - return search; + public Schema getSearch() { + return schema; } public RankProfileList getRankProfileList() { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/ImportedFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/ImportedFields.java index 281ab6536bd..a63b88f9445 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/ImportedFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/ImportedFields.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.document.DataType; import com.yahoo.document.PositionDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.ImportedComplexField; @@ -25,13 +25,13 @@ public class ImportedFields extends Derived implements ImportedFieldsConfig.Prod private Optional<com.yahoo.searchdefinition.document.ImportedFields> importedFields = Optional.empty(); - public ImportedFields(Search search) { - derive(search); + public ImportedFields(Schema schema) { + derive(schema); } @Override - protected void derive(Search search) { - importedFields = search.importedFields(); + protected void derive(Schema schema) { + importedFields = schema.importedFields(); } @Override 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 7950cd758fd..879ad570c26 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 @@ -10,7 +10,7 @@ import com.yahoo.document.PositionDataType; import com.yahoo.document.PrimitiveDataType; import com.yahoo.document.StructuredDataType; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.BooleanIndexDefinition; import com.yahoo.searchdefinition.document.Case; @@ -55,33 +55,33 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { private final Set<IndexCommand> commands = new java.util.LinkedHashSet<>(); private final Map<String, String> aliases = new java.util.LinkedHashMap<>(); private final Map<String, FieldSet> fieldSets; - private Search search; + private Schema schema; - public IndexInfo(Search search) { - this.fieldSets = search.fieldSets().userFieldSets(); + public IndexInfo(Schema schema) { + this.fieldSets = schema.fieldSets().userFieldSets(); addIndexCommand("sddocname", CMD_INDEX); addIndexCommand("sddocname", CMD_WORD); - derive(search); + derive(schema); } @Override - protected void derive(Search search) { - super.derive(search); // Derive per field - this.search = search; + protected void derive(Schema schema) { + super.derive(schema); // Derive per field + this.schema = schema; // 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.getField(fieldName)); + fs.fields().add(schema.getField(fieldName)); } } // Must follow, because index settings overrides field settings - for (Index index : search.getExplicitIndices()) { - derive(index, search); + for (Index index : schema.getExplicitIndices()) { + derive(index, schema); } // Commands for summary fields // TODO: Move to fieldinfo and implement differently. This is not right - for (SummaryField summaryField : search.getUniqueNamedSummaryFields().values()) { + for (SummaryField summaryField : schema.getUniqueNamedSummaryFields().values()) { if (summaryField.getTransform().isTeaser()) { addIndexCommand(summaryField.getName(), CMD_DYNTEASER); } @@ -100,11 +100,11 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { } @Override - protected void derive(ImmutableSDField field, Search search) { - derive(field, search, false); + protected void derive(ImmutableSDField field, Schema schema) { + derive(field, schema, false); } - protected void derive(ImmutableSDField field, Search search, boolean inPosition) { + protected void derive(ImmutableSDField field, Schema schema, boolean inPosition) { if (field.getDataType().equals(DataType.PREDICATE)) { addIndexCommand(field, CMD_PREDICATE); Index index = field.getIndex(field.getName()); @@ -127,7 +127,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { boolean isPosition = isPositionField(field); if (field.usesStructOrMap()) { for (ImmutableSDField structField : field.getStructFields()) { - derive(structField, search, isPosition); // Recursion + derive(structField, schema, isPosition); // Recursion } } @@ -151,8 +151,8 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { if (attribute != null && attribute.isFastSearch()) addIndexCommand(field.getName(), CMD_FAST_SEARCH); } else if (field.doesIndexing()) { - if (stemSomehow(field, search)) { - addIndexCommand(field, stemCmd(field, search), new StemmingOverrider(this, search)); + if (stemSomehow(field, schema)) { + addIndexCommand(field, stemCmd(field, schema), new StemmingOverrider(this, schema)); } if (normalizeAccents(field)) { addIndexCommand(field, CMD_NORMALIZE); @@ -201,12 +201,12 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { && field.getMatching().getCase().equals(Case.UNCASED)); } - static String stemCmd(ImmutableSDField field, Search search) { - return CMD_STEM + ":" + field.getStemming(search).toStemMode(); + static String stemCmd(ImmutableSDField field, Schema schema) { + return CMD_STEM + ":" + field.getStemming(schema).toStemMode(); } - private boolean stemSomehow(ImmutableSDField field, Search search) { - if (field.getStemming(search).equals(Stemming.NONE)) return false; + private boolean stemSomehow(ImmutableSDField field, Schema schema) { + if (field.getStemming(schema).equals(Stemming.NONE)) return false; return isTypeOrNested(field, DataType.STRING); } @@ -456,7 +456,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { } private Stemming getEffectiveStemming(ImmutableSDField field) { - Stemming active = field.getStemming(search); + Stemming active = field.getStemming(schema); if (field.getIndex(field.getName()) != null) { if (field.getIndex(field.getName()).getStemming()!=null) { active = field.getIndex(field.getName()).getStemming(); @@ -472,7 +472,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { if (field.getStemming() != null) { return !field.getStemming().equals(Stemming.NONE); } - if (search.getStemming()==Stemming.NONE) return false; + if (schema.getStemming() == Stemming.NONE) return false; if (field.isImportedField()) return false; if (field.getIndex(field.getName())==null) return true; if (field.getIndex(field.getName()).getStemming()==null) return true; @@ -563,19 +563,19 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { private static class StemmingOverrider extends IndexOverrider { - private Search search; + private Schema schema; - public StemmingOverrider(IndexInfo owner, Search search) { + public StemmingOverrider(IndexInfo owner, Schema schema) { super(owner); - this.search = search; + this.schema = schema; } public boolean override(String indexName, String command, ImmutableSDField field) { - if (search == null) { + if (schema == null) { return false; } - Index index = search.getIndex(indexName); + Index index = schema.getIndex(indexName); if (index == null) { return false; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexSchema.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexSchema.java index 8b5e9d4ca8e..ce5731bcdeb 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexSchema.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexSchema.java @@ -7,7 +7,7 @@ import com.yahoo.document.Field; import com.yahoo.document.StructuredDataType; import com.yahoo.document.TensorDataType; import com.yahoo.document.WeightedSetDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.BooleanIndexDefinition; import com.yahoo.searchdefinition.document.FieldSet; import com.yahoo.searchdefinition.document.ImmutableSDField; @@ -31,9 +31,9 @@ public class IndexSchema extends Derived implements IndexschemaConfig.Producer { private final Map<String, FieldCollection> collections = new LinkedHashMap<>(); private final Map<String, FieldSet> fieldSets = new LinkedHashMap<>(); - public IndexSchema(Search search) { - fieldSets.putAll(search.fieldSets().userFieldSets()); - derive(search); + public IndexSchema(Schema schema) { + fieldSets.putAll(schema.fieldSets().userFieldSets()); + derive(schema); } public boolean containsField(String fieldName) { @@ -41,15 +41,15 @@ public class IndexSchema extends Derived implements IndexschemaConfig.Producer { } @Override - protected void derive(Search search) { - super.derive(search); + protected void derive(Schema schema) { + super.derive(schema); } private boolean isTensorField(ImmutableSDField field) { return field.getDataType() instanceof TensorDataType; } - private void deriveIndexFields(ImmutableSDField field, Search search) { + private void deriveIndexFields(ImmutableSDField field, Schema schema) { // Note: Indexes for tensor fields are NOT part of the index schema for text fields. if ((!field.doesIndexing() && !field.isIndexStructureField()) || isTensorField(field)) @@ -62,7 +62,7 @@ public class IndexSchema extends Derived implements IndexschemaConfig.Producer { } String fieldName = field.getName(); for (Field flatField : lst) { - deriveIndexFields(flatField, search); + deriveIndexFields(flatField, schema); } if (lst.size() > 1) { FieldSet fieldSet = new FieldSet(fieldName); @@ -73,9 +73,9 @@ public class IndexSchema extends Derived implements IndexschemaConfig.Producer { } } - private void deriveIndexFields(Field field, Search search) { + private void deriveIndexFields(Field field, Schema schema) { IndexField toAdd = new IndexField(field.getName(), Index.convertType(field.getDataType()), field.getDataType()); - com.yahoo.searchdefinition.Index definedIndex = search.getIndex(field.getName()); + com.yahoo.searchdefinition.Index definedIndex = schema.getIndex(field.getName()); if (definedIndex != null) { toAdd.setIndexSettings(definedIndex); } @@ -98,11 +98,11 @@ public class IndexSchema extends Derived implements IndexschemaConfig.Producer { } @Override - protected void derive(ImmutableSDField field, Search search) { + protected void derive(ImmutableSDField field, Schema schema) { if (field.usesStructOrMap()) { return; // unsupported } - deriveIndexFields(field, search); + deriveIndexFields(field, schema); } @Override diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexingScript.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexingScript.java index 4bf4b21eb75..cabe8d001bd 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexingScript.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/IndexingScript.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.document.DataType; import com.yahoo.document.PositionDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.configdefinition.IlscriptsConfig; import com.yahoo.vespa.configdefinition.IlscriptsConfig.Ilscript.Builder; @@ -39,20 +39,20 @@ public final class IndexingScript extends Derived implements IlscriptsConfig.Pro private final List<Expression> expressions = new ArrayList<>(); private List<ImmutableSDField> fieldsSettingLanguage; - public IndexingScript(Search search) { - derive(search); + public IndexingScript(Schema schema) { + derive(schema); } @Override - protected void derive(Search search) { - fieldsSettingLanguage = fieldsSettingLanguage(search); + protected void derive(Schema schema) { + fieldsSettingLanguage = fieldsSettingLanguage(schema); if (fieldsSettingLanguage.size() == 1) // Assume this language should be used for all fields addExpression(fieldsSettingLanguage.get(0).getIndexingScript()); - super.derive(search); + super.derive(schema); } @Override - protected void derive(ImmutableSDField field, Search search) { + protected void derive(ImmutableSDField field, Schema schema) { if (field.isImportedField()) return; if (field.hasFullIndexingDocprocRights()) @@ -75,11 +75,11 @@ public final class IndexingScript extends Derived implements IlscriptsConfig.Pro expressions.add(new StatementExpression(new ClearStateExpression(), new GuardExpression(expression))); } - private List<ImmutableSDField> fieldsSettingLanguage(Search search) { - return search.allFieldsList().stream() - .filter(field -> ! field.isImportedField()) - .filter(field -> field.containsExpression(SetLanguageExpression.class)) - .collect(Collectors.toList()); + private List<ImmutableSDField> fieldsSettingLanguage(Schema schema) { + return schema.allFieldsList().stream() + .filter(field -> ! field.isImportedField()) + .filter(field -> field.containsExpression(SetLanguageExpression.class)) + .collect(Collectors.toList()); } public Iterable<Expression> expressions() { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Juniperrc.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Juniperrc.java index 8dad49f40d1..327d7df4d07 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Juniperrc.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Juniperrc.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.documentmodel.SummaryTransform; import com.yahoo.vespa.config.search.summary.JuniperrcConfig; @@ -20,19 +20,19 @@ public class Juniperrc extends Derived implements JuniperrcConfig.Producer { /** * Constructs a new juniper rc instance for a given search object. This will derive the configuration automatically, - * so there is no need to call {@link #derive(com.yahoo.searchdefinition.Search)}. + * so there is no need to call {@link #derive(Schema)}. * - * @param search The search model to use for deriving. + * @param schema The search model to use for deriving. */ - public Juniperrc(Search search) { - derive(search); + public Juniperrc(Schema schema) { + derive(schema); } // Inherit doc from Derived. @Override - protected void derive(Search search) { - super.derive(search); - for (SummaryField summaryField : search.getUniqueNamedSummaryFields().values()) { + protected void derive(Schema schema) { + super.derive(schema); + for (SummaryField summaryField : schema.getUniqueNamedSummaryFields().values()) { if (summaryField.getTransform() == SummaryTransform.BOLDED) { boldingFields.add(summaryField.getName()); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java index dc84e1fdd8a..9f043770eab 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java @@ -12,7 +12,7 @@ import com.yahoo.searchdefinition.RankingConstant; import com.yahoo.searchdefinition.RankingConstants; import com.yahoo.vespa.config.search.RankProfilesConfig; import com.yahoo.searchdefinition.RankProfile; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.config.search.core.OnnxModelsConfig; import com.yahoo.vespa.config.search.core.RankingConstantsConfig; import com.yahoo.vespa.config.search.core.RankingExpressionsConfig; @@ -53,10 +53,10 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ /** * Creates a rank profile * - * @param search the search definition this is a rank profile from + * @param schema the search definition this is a rank profile from * @param attributeFields the attribute fields to create a ranking for */ - public RankProfileList(Search search, + public RankProfileList(Schema schema, RankingConstants rankingConstants, LargeRankExpressions largeRankExpressions, OnnxModels onnxModels, @@ -66,11 +66,11 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ ImportedMlModels importedModels, ModelContext.Properties deployProperties, ExecutorService executor) { - setName(search == null ? "default" : search.getName()); + setName(schema == null ? "default" : schema.getName()); this.rankingConstants = rankingConstants; this.largeRankExpressions = largeRankExpressions; this.onnxModels = onnxModels; // as ONNX models come from parsing rank expressions - deriveRankProfiles(rankProfileRegistry, queryProfiles, importedModels, search, attributeFields, deployProperties, executor); + deriveRankProfiles(rankProfileRegistry, queryProfiles, importedModels, schema, attributeFields, deployProperties, executor); } private boolean areDependenciesReady(RankProfile rank, RankProfileRegistry registry) { @@ -82,38 +82,38 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ private void deriveRankProfiles(RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfiles, ImportedMlModels importedModels, - Search search, + Schema schema, AttributeFields attributeFields, ModelContext.Properties deployProperties, ExecutorService executor) { - if (search != null) { // profiles belonging to a search have a default profile - RawRankProfile rawRank = new RawRankProfile(rankProfileRegistry.get(search, "default"), + if (schema != null) { // profiles belonging to a search have a default profile + RawRankProfile rawRank = new RawRankProfile(rankProfileRegistry.get(schema, "default"), largeRankExpressions, queryProfiles, importedModels, attributeFields, deployProperties); rankProfiles.put(rawRank.getName(), rawRank); } Map<String, RankProfile> remaining = new LinkedHashMap<>(); - rankProfileRegistry.rankProfilesOf(search).forEach(rank -> remaining.put(rank.getName(), rank)); + rankProfileRegistry.rankProfilesOf(schema).forEach(rank -> remaining.put(rank.getName(), rank)); remaining.remove("default"); while (!remaining.isEmpty()) { List<RankProfile> ready = new ArrayList<>(); remaining.forEach((name, rank) -> { if (areDependenciesReady(rank, rankProfileRegistry)) ready.add(rank); }); - processRankProfiles(ready, queryProfiles, importedModels, search, attributeFields, deployProperties, executor); + processRankProfiles(ready, queryProfiles, importedModels, schema, attributeFields, deployProperties, executor); ready.forEach(rank -> remaining.remove(rank.getName())); } } private void processRankProfiles(List<RankProfile> ready, QueryProfileRegistry queryProfiles, ImportedMlModels importedModels, - Search search, + Schema schema, AttributeFields attributeFields, ModelContext.Properties deployProperties, ExecutorService executor) { Map<String, Future<RawRankProfile>> futureRawRankProfiles = new LinkedHashMap<>(); for (RankProfile rank : ready) { - if (search == null) { + if (schema == null) { onnxModels.add(rank.onnxModels()); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SearchOrderer.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SearchOrderer.java index b55064cc49d..8703eb11433 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/SearchOrderer.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/SearchOrderer.java @@ -4,8 +4,8 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.document.DataTypeName; import com.yahoo.searchdefinition.DocumentReference; import com.yahoo.searchdefinition.DocumentReferences; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDDocumentType; -import com.yahoo.searchdefinition.Search; import java.util.*; @@ -23,7 +23,7 @@ import java.util.*; public class SearchOrderer { /** A map from DataTypeName to the Search defining them */ - private final Map<DataTypeName, Search> documentNameToSearch = new HashMap<>(); + private final Map<DataTypeName, Schema> documentNameToSearch = new HashMap<>(); /** * Reorders the given list of search definitions such that any supertype @@ -32,21 +32,21 @@ public class SearchOrderer { * * @return a new list containing the same search instances in the right order */ - public List<Search> order(List<Search> unordered) { + public List<Schema> order(List<Schema> unordered) { // Description above state that the original order should be preserved, except for the dependency constraint. // Yet we botch that guarantee by sorting the list... - unordered.sort(Comparator.comparing(Search::getName)); + unordered.sort(Comparator.comparing(Schema::getName)); // No, this is not a fast algorithm... indexOnDocumentName(unordered); - List<Search> ordered = new ArrayList<>(unordered.size()); - List<Search> moveOutwards = new ArrayList<>(); - for (Search search : unordered) { - if (allDependenciesAlreadyEmitted(ordered, search)) { - addOrdered(ordered, search, moveOutwards); + List<Schema> ordered = new ArrayList<>(unordered.size()); + List<Schema> moveOutwards = new ArrayList<>(); + for (Schema schema : unordered) { + if (allDependenciesAlreadyEmitted(ordered, schema)) { + addOrdered(ordered, schema, moveOutwards); } else { - moveOutwards.add(search); + moveOutwards.add(schema); } } @@ -58,9 +58,9 @@ public class SearchOrderer { return ordered; } - private void addOrdered(List<Search> ordered, Search search, List<Search> moveOutwards) { - ordered.add(search); - Search eligibleMove; + private void addOrdered(List<Schema> ordered, Schema schema, List<Schema> moveOutwards) { + ordered.add(schema); + Schema eligibleMove; do { eligibleMove = removeFirstEntryWithFullyEmittedDependencies(moveOutwards, ordered); if (eligibleMove != null) { @@ -70,8 +70,8 @@ public class SearchOrderer { } /** Removes and returns the first search from the move list which can now be added, or null if none */ - private Search removeFirstEntryWithFullyEmittedDependencies(List<Search> moveOutwards, List<Search> ordered) { - for (Search move : moveOutwards) { + private Schema removeFirstEntryWithFullyEmittedDependencies(List<Schema> moveOutwards, List<Schema> ordered) { + for (Schema move : moveOutwards) { if (allDependenciesAlreadyEmitted(ordered, move)) { moveOutwards.remove(move); return move; @@ -80,29 +80,29 @@ public class SearchOrderer { return null; } - private boolean allDependenciesAlreadyEmitted(List<Search> alreadyOrdered, Search search) { - if (search.getDocument() == null) { + private boolean allDependenciesAlreadyEmitted(List<Schema> alreadyOrdered, Schema schema) { + if (schema.getDocument() == null) { return true; } - SDDocumentType document = search.getDocument(); + SDDocumentType document = schema.getDocument(); return allInheritedDependenciesEmitted(alreadyOrdered, document) && allReferenceDependenciesEmitted(alreadyOrdered, document); } - private boolean allInheritedDependenciesEmitted(List<Search> alreadyOrdered, SDDocumentType document) { + private boolean allInheritedDependenciesEmitted(List<Schema> alreadyOrdered, SDDocumentType document) { for (SDDocumentType sdoc : document.getInheritedTypes() ) { DataTypeName inheritedName = sdoc.getDocumentName(); if ("document".equals(inheritedName.getName())) { continue; } - Search inheritedSearch = documentNameToSearch.get(inheritedName); - if (!alreadyOrdered.contains(inheritedSearch)) { + Schema inheritedSchema = documentNameToSearch.get(inheritedName); + if (!alreadyOrdered.contains(inheritedSchema)) { return false; } } return true; } - private static boolean allReferenceDependenciesEmitted(List<Search> alreadyOrdered, SDDocumentType document) { + private static boolean allReferenceDependenciesEmitted(List<Schema> alreadyOrdered, SDDocumentType document) { DocumentReferences documentReferences = document.getDocumentReferences() .orElseThrow(() -> new IllegalStateException("Missing document references. Should have been processed by now.")); return documentReferences.stream() @@ -111,11 +111,11 @@ public class SearchOrderer { .allMatch(alreadyOrdered::contains); } - private void indexOnDocumentName(List<Search> searches) { + private void indexOnDocumentName(List<Schema> schemas) { documentNameToSearch.clear(); - for (Search search : searches) { - if (search.getDocument() != null) { - documentNameToSearch.put(search.getDocument().getDocumentName(),search); + for (Schema schema : schemas) { + if (schema.getDocument() != null) { + documentNameToSearch.put(schema.getDocument().getDocumentName(), schema); } } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Summaries.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Summaries.java index a91bbeed9b2..5fdc51e8f5f 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Summaries.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Summaries.java @@ -2,7 +2,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.config.application.api.DeployLogger; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.config.search.SummaryConfig; import java.util.List; @@ -16,12 +16,12 @@ public class Summaries extends Derived implements SummaryConfig.Producer { private List<SummaryClass> summaries=new java.util.ArrayList<>(1); - public Summaries(Search search, DeployLogger deployLogger) { + public Summaries(Schema schema, DeployLogger deployLogger) { // Make sure the default is first - summaries.add(new SummaryClass(search,search.getSummary("default"), deployLogger)); - for (DocumentSummary summary : search.getSummaries().values()) { + summaries.add(new SummaryClass(schema, schema.getSummary("default"), deployLogger)); + for (DocumentSummary summary : schema.getSummaries().values()) { if (!summary.getName().equals("default")) - summaries.add(new SummaryClass(search,summary, deployLogger)); + summaries.add(new SummaryClass(schema, summary, deployLogger)); } } 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 2b40822b23b..5f88ddba5f5 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 @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.DataType; import com.yahoo.prelude.fastsearch.DocsumDefinitionSet; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.config.search.SummaryConfig; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; @@ -42,12 +42,12 @@ public class SummaryClass extends Derived { * * @param deployLogger a {@link DeployLogger} */ - public SummaryClass(Search search, DocumentSummary summary, DeployLogger deployLogger) { + public SummaryClass(Schema schema, DocumentSummary summary, DeployLogger deployLogger) { this.deployLogger = deployLogger; - this.rawAsBase64 = search.isRawAsBase64(); + this.rawAsBase64 = schema.isRawAsBase64(); this.omitSummaryFeatures = summary.omitSummaryFeatures(); deriveName(summary); - deriveFields(search,summary); + deriveFields(schema, summary); deriveImplicitFields(summary); } @@ -62,9 +62,9 @@ public class SummaryClass extends Derived { } } - private void deriveFields(Search search, DocumentSummary summary) { + private void deriveFields(Schema schema, DocumentSummary summary) { for (SummaryField summaryField : summary.getSummaryFields()) { - if (!accessingDiskSummary && search.isAccessingDiskSummary(summaryField)) { + if (!accessingDiskSummary && schema.isAccessingDiskSummary(summaryField)) { accessingDiskSummary = true; } addField(summaryField.getName(), summaryField.getDataType(), summaryField.getTransform()); 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 c53dba0bab0..cf182a1afbc 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 @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.config.search.SummarymapConfig; import com.yahoo.vespa.documentmodel.DocumentSummary; @@ -23,19 +23,19 @@ public class SummaryMap extends Derived implements SummarymapConfig.Producer { private Map<String,FieldResultTransform> resultTransforms = new java.util.LinkedHashMap<>(); /** Creates a summary map from a search definition */ - SummaryMap(Search search) { - derive(search); + SummaryMap(Schema schema) { + derive(schema); } - protected void derive(Search search) { - for (DocumentSummary documentSummary : search.getSummaries().values()) { + protected void derive(Schema schema) { + for (DocumentSummary documentSummary : schema.getSummaries().values()) { derive(documentSummary); } - super.derive(search); + super.derive(schema); } @Override - protected void derive(ImmutableSDField field, Search search) { + protected void derive(ImmutableSDField field, Schema schema) { } private void derive(DocumentSummary documentSummary) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/VsmFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/VsmFields.java index a301f3983a6..2fd90d6c87e 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/VsmFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/VsmFields.java @@ -12,7 +12,7 @@ import com.yahoo.document.datatypes.Raw; import com.yahoo.document.datatypes.StringFieldValue; import com.yahoo.document.datatypes.TensorFieldValue; import com.yahoo.searchdefinition.FieldSets; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.FieldSet; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.SDDocumentType; @@ -30,20 +30,20 @@ public class VsmFields extends Derived implements VsmfieldsConfig.Producer { private final Map<String, StreamingField> fields=new LinkedHashMap<>(); private final Map<String, StreamingDocumentType> doctypes=new LinkedHashMap<>(); - public VsmFields(Search search) { - addSearchdefinition(search); + public VsmFields(Schema schema) { + addSearchdefinition(schema); } - private void addSearchdefinition(Search search) { - derive(search); + private void addSearchdefinition(Schema schema) { + derive(schema); } @Override - protected void derive(SDDocumentType document,Search search) { - super.derive(document, search); + protected void derive(SDDocumentType document, Schema schema) { + super.derive(document, schema); StreamingDocumentType docType=getDocumentType(document.getName()); if (docType == null) { - docType = new StreamingDocumentType(document.getName(), search.fieldSets()); + docType = new StreamingDocumentType(document.getName(), schema.fieldSets()); doctypes.put(document.getName(), docType); } for (Object o : document.fieldSet()) { 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 44ba9df8226..a2c90bc92f5 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 @@ -2,9 +2,9 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.document.PositionDataType; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDDocumentType; 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.config.search.vsm.VsmsummaryConfig; @@ -20,23 +20,23 @@ public class VsmSummary extends Derived implements VsmsummaryConfig.Producer { private Map<SummaryField, List<String>> summaryMap = new java.util.LinkedHashMap<>(1); - public VsmSummary(Search search) { - derive(search); + public VsmSummary(Schema schema) { + derive(schema); } @Override - protected void derive(Search search) { + protected void derive(Schema schema) { // Use the default class, as it is the superset - derive(search, search.getSummary("default")); + derive(schema, schema.getSummary("default")); } - private void derive(Search search, DocumentSummary documentSummary) { + private void derive(Schema schema, DocumentSummary documentSummary) { if (documentSummary==null) return; for (SummaryField summaryField : documentSummary.getSummaryFields()) { List<String> from = toStringList(summaryField.sourceIterator()); - if (doMapField(search, summaryField)) { - SDField sdField = search.getConcreteField(summaryField.getName()); + if (doMapField(schema, summaryField)) { + SDField sdField = schema.getConcreteField(summaryField.getName()); if (sdField != null && PositionDataType.INSTANCE.equals(sdField.getDataType())) { summaryMap.put(summaryField, Collections.singletonList(summaryField.getName())); } else { @@ -52,9 +52,9 @@ public class VsmSummary extends Derived implements VsmsummaryConfig.Producer { * Don't map if not struct either. * @param summaryField a {@link SummaryField} */ - private boolean doMapField(Search search, SummaryField summaryField) { - SDField sdField = search.getConcreteField(summaryField.getName()); - SDDocumentType document = search.getDocument(); + private boolean doMapField(Schema schema, SummaryField summaryField) { + SDField sdField = schema.getConcreteField(summaryField.getName()); + SDDocumentType document = schema.getDocument(); if (sdField==null || ((document != null) && (document.getField(summaryField.getName()) == sdField))) { return true; } @@ -66,7 +66,7 @@ public class VsmSummary extends Derived implements VsmsummaryConfig.Producer { } if (summaryField.getSourceCount()==sdField.getStructFields().size()) { for (SummaryField.Source source : summaryField.getSources()) { - if (!sdField.getStructFields().contains(new SDField(search.getDocument(), source.getName(), sdField.getDataType()))) { // equals() uses just name + if (!sdField.getStructFields().contains(new SDField(schema.getDocument(), source.getName(), sdField.getDataType()))) { // equals() uses just name return true; } if (sdField.getStructField(source.getName())!=null && !sdField.getStructField(source.getName()).doesSummarying()) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/IndexStructureValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/IndexStructureValidator.java index c41437f2531..76f52bce2a9 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/IndexStructureValidator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/IndexStructureValidator.java @@ -2,7 +2,7 @@ package com.yahoo.searchdefinition.derived.validation; import com.yahoo.searchdefinition.document.SDDocumentType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.DerivedConfiguration; import com.yahoo.searchdefinition.derived.IndexingScript; import com.yahoo.vespa.indexinglanguage.ExpressionVisitor; @@ -14,14 +14,14 @@ import com.yahoo.vespa.indexinglanguage.expressions.OutputExpression; */ public class IndexStructureValidator extends Validator { - public IndexStructureValidator(DerivedConfiguration config, Search search) { - super(config, search); + public IndexStructureValidator(DerivedConfiguration config, Schema schema) { + super(config, schema); } public void validate() { IndexingScript script = config.getIndexingScript(); for (Expression exp : script.expressions()) { - new OutputVisitor(search.getDocument(), exp).visit(exp); + new OutputVisitor(schema.getDocument(), exp).visit(exp); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/Validation.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/Validation.java index a32fe67312f..fd75fbb2f48 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/Validation.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/Validation.java @@ -1,12 +1,12 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived.validation; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.DerivedConfiguration; public class Validation { - public static void validate(DerivedConfiguration config, Search search) { - new IndexStructureValidator(config, search).validate(); + public static void validate(DerivedConfiguration config, Schema schema) { + new IndexStructureValidator(config, schema).validate(); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/Validator.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/Validator.java index 170639f5deb..7d3e5b8e9ed 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/Validator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/validation/Validator.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived.validation; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.DerivedConfiguration; /** @@ -10,11 +10,11 @@ import com.yahoo.searchdefinition.derived.DerivedConfiguration; public abstract class Validator { protected DerivedConfiguration config; - protected Search search; + protected Schema schema; - protected Validator(DerivedConfiguration config, Search search) { + protected Validator(DerivedConfiguration config, Schema schema) { this.config = config; - this.search = search; + this.schema = schema; } public abstract void validate(); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableImportedSDField.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableImportedSDField.java index 925b67014e5..71814c31087 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableImportedSDField.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/ImmutableImportedSDField.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.document; import com.yahoo.document.DataType; import com.yahoo.document.Field; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.indexinglanguage.expressions.Expression; import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression; @@ -151,7 +151,7 @@ public class ImmutableImportedSDField implements ImmutableSDField { } @Override - public Stemming getStemming(Search search) { + public Stemming getStemming(Schema schema) { throw createUnsupportedException("stemming"); } 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 d54f76614c0..6d1dee67641 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 @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.document; import com.yahoo.document.DataType; import com.yahoo.document.Field; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.indexinglanguage.expressions.Expression; import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression; @@ -69,7 +69,7 @@ public interface ImmutableSDField { Stemming getStemming(); - Stemming getStemming(Search search); + Stemming getStemming(Schema schema); Ranking getRanking(); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java index 5d50abec8bb..cef9cf3dede 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDDocumentType.java @@ -14,7 +14,7 @@ import com.yahoo.documentmodel.NewDocumentType; import com.yahoo.documentmodel.VespaDocumentType; import com.yahoo.searchdefinition.DocumentReferences; import com.yahoo.searchdefinition.FieldSets; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import java.io.Serializable; import java.util.ArrayList; @@ -149,13 +149,13 @@ public class SDDocumentType implements Cloneable, Serializable { * The document type id will be generated as a hash from the document type name. * * @param name The name of the new document type - * @param search check for type ID collisions in this search definition + * @param schema check for type ID collisions in this search definition */ @SuppressWarnings("deprecation") - public SDDocumentType(String name, Search search) { + public SDDocumentType(String name, Schema schema) { docType = new DocumentType(name); docType.contentStruct().setCompressionConfig(new CompressionConfig()); - validateId(search); + validateId(schema); inherit(VESPA_DOCUMENT); } @@ -196,10 +196,10 @@ public class SDDocumentType implements Cloneable, Serializable { public Collection<SDDocumentType> getInheritedTypes() { return inheritedTypes.values(); } - protected void validateId(Search search) { - if (search == null) return; - if (search.getDocument(getName()) == null) return; - SDDocumentType doc = search.getDocument(); + protected void validateId(Schema schema) { + if (schema == null) return; + if (schema.getDocument(getName()) == null) return; + SDDocumentType doc = schema.getDocument(); throw new IllegalArgumentException("Failed creating document type '" + getName() + "', " + "document type '" + doc.getName() + "' already uses ID '" + doc.getName() + "'"); } @@ -312,7 +312,7 @@ public class SDDocumentType implements Cloneable, Serializable { return docType; } - /** The field sets defined for this type and its {@link Search} */ + /** The field sets defined for this type and its {@link Schema} */ public FieldSets getFieldSets() { return fieldSets; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java index a66820a9bfe..566342403d4 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/document/SDField.java @@ -12,7 +12,7 @@ import com.yahoo.language.Linguistics; import com.yahoo.language.process.Embedder; import com.yahoo.language.simple.SimpleLinguistics; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.fieldoperation.FieldOperation; import com.yahoo.searchdefinition.fieldoperation.FieldOperationContainer; import com.yahoo.tensor.TensorType; @@ -672,11 +672,11 @@ public class SDField extends Field implements TypedKey, FieldOperationContainer, * Whether this field should be stemmed in this search definition */ @Override - public Stemming getStemming(Search search) { + public Stemming getStemming(Schema schema) { if (stemming != null) return stemming; else - return search.getStemming(); + return schema.getStemming(); } @Override 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 index 213928b3edb..ac4d51221ef 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFields.java @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.searchdefinition.document.ImmutableImportedComplexSDField; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.documentmodel.SummaryField; @@ -20,21 +20,21 @@ import java.util.stream.Stream; */ public class AddAttributeTransformToSummaryOfImportedFields extends Processor { - public AddAttributeTransformToSummaryOfImportedFields(Search search, + public AddAttributeTransformToSummaryOfImportedFields(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - search.allImportedFields() - .forEach(field -> setTransform(field)); + schema.allImportedFields() + .forEach(field -> setTransform(field)); } private Stream<SummaryField> getSummaryFieldsForImportedField(ImmutableSDField importedField) { - return search.getSummaryFields(importedField).values().stream(); + return schema.getSummaryFields(importedField).values().stream(); } private void setTransform(ImmutableSDField field) { 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 152399337fd..d7e68dc7dab 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 @@ -6,7 +6,7 @@ import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.DataType; import com.yahoo.document.Field; import com.yahoo.document.PositionDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.SDDocumentType; @@ -15,14 +15,14 @@ import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.model.container.search.QueryProfiles; /** - * This processor creates a {@link com.yahoo.searchdefinition.document.SDDocumentType} for each {@link Search} object which holds all the data that search + * This processor creates a {@link com.yahoo.searchdefinition.document.SDDocumentType} for each {@link Schema} object which holds all the data that search * associates with a document described in a search definition file. This includes all extra fields, summary fields and * implicit fields. All non-indexed and non-summary fields are discarded. */ public class AddExtraFieldsToDocument extends Processor { - AddExtraFieldsToDocument(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + AddExtraFieldsToDocument(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } //TODO This is a tempoarry hack to avoid producing illegal code for fields not wanted anyway. @@ -32,21 +32,21 @@ public class AddExtraFieldsToDocument extends Processor { @Override public void process(boolean validate, boolean documentsOnly) { - SDDocumentType document = search.getDocument(); + SDDocumentType document = schema.getDocument(); if (document != null) { - for (Field field : search.extraFieldList()) { - addSdField(search, document, (SDField)field, validate); + for (Field field : schema.extraFieldList()) { + addSdField(schema, document, (SDField)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 : search.getSummary("default").getSummaryFields()) { + for (SummaryField field : schema.getSummary("default").getSummaryFields()) { if (dirtyLegalFieldNameCheck(field.getName())) { - addSummaryField(search, document, field, validate); + addSummaryField(schema, document, field, validate); } } } } - private void addSdField(Search search, SDDocumentType document, SDField field, boolean validate) { + private void addSdField(Schema schema, SDDocumentType document, SDField field, boolean validate) { if (! field.hasIndex() && field.getAttributes().isEmpty()) { return; } @@ -57,19 +57,19 @@ public class AddExtraFieldsToDocument extends Processor { if (atr.getCollectionType().equals(Attribute.CollectionType.ARRAY)) { type = DataType.getArray(type); } - addField(search, document, new SDField(document, atr.getName(), type), validate); + addField(schema, document, new SDField(document, atr.getName(), type), validate); } else if (!atr.getName().equals(field.getName())) { - addField(search, document, new SDField(document, atr.getName(), atr.getDataType()), validate); + addField(schema, document, new SDField(document, atr.getName(), atr.getDataType()), validate); } } - addField(search, document, field, validate); + addField(schema, document, field, validate); } @SuppressWarnings("deprecation") - private void addSummaryField(Search search, SDDocumentType document, SummaryField field, boolean validate) { + private void addSummaryField(Schema schema, SDDocumentType document, SummaryField field, boolean validate) { Field docField = document.getField(field.getName()); if (docField == null) { - ImmutableSDField existingField = search.getField(field.getName()); + ImmutableSDField existingField = schema.getField(field.getName()); if (existingField == null) { SDField newField = new SDField(document, field.getName(), field.getDataType(), true); newField.setIsExtraField(true); @@ -79,14 +79,14 @@ public class AddExtraFieldsToDocument extends Processor { } } else if (!docField.getDataType().equals(field.getDataType())) { if (validate) - throw newProcessException(search, field, "Summary field has conflicting type."); + throw newProcessException(schema, field, "Summary field has conflicting type."); } } - private void addField(Search search, SDDocumentType document, Field field, boolean validate) { + private void addField(Schema schema, SDDocumentType document, Field field, boolean validate) { if (document.getField(field.getName()) != null) { if (validate) - throw newProcessException(search, field, "Field shadows another."); + throw newProcessException(schema, field, "Field shadows another."); } document.addField(field); } 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 fd103f3901c..176fcf2130f 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 @@ -6,7 +6,7 @@ import com.yahoo.document.ArrayDataType; import com.yahoo.document.DataType; import com.yahoo.document.PositionDataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.documentmodel.DocumentSummary; @@ -21,13 +21,13 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class AdjustPositionSummaryFields extends Processor { - public AdjustPositionSummaryFields(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public AdjustPositionSummaryFields(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (DocumentSummary summary : search.getSummaries().values()) { + for (DocumentSummary summary : schema.getSummaries().values()) { scanSummary(summary); } } @@ -37,7 +37,7 @@ public class AdjustPositionSummaryFields extends Processor { 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 = search.getField(originalSource); + ImmutableSDField sourceField = schema.getField(originalSource); if (sourceField != null) { String zCurve = null; if (sourceField.getDataType().equals(summaryField.getDataType())) { @@ -77,7 +77,7 @@ public class AdjustPositionSummaryFields extends Processor { } private void ensureSummaryField(DocumentSummary summary, String fieldName, DataType dataType, Source source, SummaryTransform transform) { - SummaryField oldField = search.getSummaryField(fieldName); + SummaryField oldField = schema.getSummaryField(fieldName); if (oldField == null) { SummaryField newField = new SummaryField(fieldName, dataType, transform); newField.addSource(source); @@ -97,9 +97,9 @@ public class AdjustPositionSummaryFields extends Processor { } private boolean hasPositionAttribute(String name) { - Attribute attribute = search.getAttribute(name); + Attribute attribute = schema.getAttribute(name); if (attribute == null) { - ImmutableSDField field = search.getField(name); + ImmutableSDField field = schema.getField(name); if (field != null && field.isImportedField()) { attribute = field.getAttribute(); } @@ -121,7 +121,7 @@ public class AdjustPositionSummaryFields extends Processor { } private void fail(SummaryField summaryField, String msg) { - throw newProcessException(search.getName(), summaryField.getName(), msg); + throw newProcessException(schema.getName(), summaryField.getName(), msg); } } 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 e7cc562b42d..42e14a2c1ee 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 @@ -3,10 +3,10 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; /** @@ -16,13 +16,13 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class AttributeProperties extends Processor { - public AttributeProperties(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public AttributeProperties(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (ImmutableSDField field : search.allConcreteFields()) { + for (ImmutableSDField field : schema.allConcreteFields()) { String fieldName = field.getName(); // For each attribute, check if the attribute has been created @@ -33,7 +33,7 @@ public class AttributeProperties extends Processor { } // Check other fields or statements that may have created this attribute. boolean created = false; - for (SDField f : search.allConcreteFields()) { + for (SDField f : schema.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 27e9d5a070f..d3fa3282f4f 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 @@ -4,10 +4,10 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.DataType; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.document.NumericDataType; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; /** @@ -18,13 +18,13 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class AttributesImplicitWord extends Processor { - public AttributesImplicitWord(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public AttributesImplicitWord(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (ImmutableSDField field : search.allConcreteFields()) { + for (ImmutableSDField field : schema.allConcreteFields()) { processFieldRecursive(field); } } 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 8c62cdfaec6..575a037be91 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 @@ -5,7 +5,7 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.DataType; import com.yahoo.searchdefinition.document.ImmutableSDField; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -17,14 +17,14 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class Bolding extends Processor { - public Bolding(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public Bolding(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - for (ImmutableSDField field : search.allConcreteFields()) { + for (ImmutableSDField field : schema.allConcreteFields()) { for (SummaryField summary : field.getSummaryFields().values()) { if (summary.getTransform().isBolded() && !((summary.getDataType() == DataType.STRING) || (summary.getDataType() == DataType.URI))) diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/BoolAttributeValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/BoolAttributeValidator.java index f4bf4432aa0..6676e20c341 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/BoolAttributeValidator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/BoolAttributeValidator.java @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -16,20 +16,20 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class BoolAttributeValidator extends Processor { - public BoolAttributeValidator(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public BoolAttributeValidator(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (var field : search.allConcreteFields()) { + for (var field : schema.allConcreteFields()) { var attribute = field.getAttribute(); if (attribute == null) { continue; } if (attribute.getType().equals(Attribute.Type.BOOL) && !attribute.getCollectionType().equals(Attribute.CollectionType.SINGLE)) { - fail(search, field, "Only single value bool attribute fields are supported"); + fail(schema, field, "Only single value bool attribute fields are supported"); } } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/BuiltInFieldSets.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/BuiltInFieldSets.java index fc23042649b..ce93c1a5c3f 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/BuiltInFieldSets.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/BuiltInFieldSets.java @@ -5,7 +5,7 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.DocumentType; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.Field; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -19,8 +19,8 @@ public class BuiltInFieldSets extends Processor { public static final String SEARCH_FIELDSET_NAME = "[search]"; // Public due to oddities in position handling. public static final String INTERNAL_FIELDSET_NAME = "[internal]"; // This one populated from misc places - public BuiltInFieldSets(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public BuiltInFieldSets(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -29,21 +29,21 @@ public class BuiltInFieldSets extends Processor { addSearchFieldSet(); // "Hook" the field sets on search onto the document types, since we will include them // on the document configs - search.getDocument().setFieldSets(search.fieldSets()); + schema.getDocument().setFieldSets(schema.fieldSets()); } private void addSearchFieldSet() { - for (SDField searchField : search.extraFieldList()) { - search.fieldSets().addBuiltInFieldSetItem(SEARCH_FIELDSET_NAME, searchField.getName()); + for (SDField searchField : schema.extraFieldList()) { + schema.fieldSets().addBuiltInFieldSetItem(SEARCH_FIELDSET_NAME, searchField.getName()); } } private void addDocumentFieldSet() { - for (Field docField : search.getDocument().fieldSet()) { + for (Field docField : schema.getDocument().fieldSet()) { if (docField instanceof SDField && ((SDField) docField).isExtraField()) { continue; // skip } - search.fieldSets().addBuiltInFieldSetItem(DocumentType.DOCUMENT, docField.getName()); + schema.fieldSets().addBuiltInFieldSetItem(DocumentType.DOCUMENT, docField.getName()); } } 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 7b0ea68db5a..699abb1e792 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 @@ -6,7 +6,7 @@ import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.ArrayDataType; import com.yahoo.document.DataType; import com.yahoo.document.PositionDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.documentmodel.SummaryField; @@ -33,18 +33,18 @@ import java.util.logging.Level; */ public class CreatePositionZCurve extends Processor { - public CreatePositionZCurve(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public CreatePositionZCurve(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { DataType fieldType = field.getDataType(); if ( ! isSupportedPositionType(fieldType)) continue; if (validate && field.doesIndexing()) { - fail(search, field, "Indexing of data type '" + fieldType.getName() + "' is not supported, " + + fail(schema, field, "Indexing of data type '" + fieldType.getName() + "' is not supported, " + "replace 'index' statement with 'attribute'."); } @@ -57,8 +57,8 @@ public class CreatePositionZCurve extends Processor { String zName = PositionDataType.getZCurveFieldName(fieldName); SDField zCurveField = createZCurveField(field, zName, validate); - search.addExtraField(zCurveField); - search.fieldSets().addBuiltInFieldSetItem(BuiltInFieldSets.INTERNAL_FIELDSET_NAME, zCurveField.getName()); + schema.addExtraField(zCurveField); + schema.fieldSets().addBuiltInFieldSetItem(BuiltInFieldSets.INTERNAL_FIELDSET_NAME, zCurveField.getName()); // configure summary Collection<String> summaryTo = removeSummaryTo(field); @@ -88,8 +88,8 @@ public class CreatePositionZCurve extends Processor { } private SDField createZCurveField(SDField inputField, String fieldName, boolean validate) { - if (validate && search.getConcreteField(fieldName) != null || search.getAttribute(fieldName) != null) { - throw newProcessException(search, null, "Incompatible position attribute '" + fieldName + + if (validate && schema.getConcreteField(fieldName) != null || schema.getAttribute(fieldName) != null) { + throw newProcessException(schema, null, "Incompatible position attribute '" + fieldName + "' already created."); } boolean isArray = inputField.getDataType() instanceof ArrayDataType; @@ -109,7 +109,7 @@ public class CreatePositionZCurve extends Processor { private void ensureCompatibleSummary(SDField field, String sourceName, String summaryName, DataType summaryType, SummaryTransform summaryTransform, Collection<String> summaryTo, boolean validate) { - SummaryField summary = search.getSummaryField(summaryName); + SummaryField summary = schema.getSummaryField(summaryName); if (summary == null) { summary = new SummaryField(summaryName, summaryType, summaryTransform); summary.addDestination("default"); @@ -117,7 +117,7 @@ public class CreatePositionZCurve extends Processor { field.addSummaryField(summary); } else if (!summary.getDataType().equals(summaryType)) { if (validate) - fail(search, field, "Incompatible summary field '" + summaryName + "' type "+summary.getDataType()+" already created."); + fail(schema, field, "Incompatible summary field '" + summaryName + "' type " + summary.getDataType() + " already created."); } else if (summary.getTransform() == SummaryTransform.NONE) { summary.setTransform(summaryTransform); summary.addDestination("default"); diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DictionaryProcessor.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/DictionaryProcessor.java index d8331746968..dc620e38e96 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DictionaryProcessor.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/DictionaryProcessor.java @@ -5,11 +5,10 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.NumericDataType; import com.yahoo.document.PrimitiveDataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.Case; import com.yahoo.searchdefinition.document.Dictionary; -import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -20,12 +19,12 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; * @author baldersheim */ public class DictionaryProcessor extends Processor { - public DictionaryProcessor(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public DictionaryProcessor(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { Attribute attribute = field.getAttribute(); if (attribute == null) continue; attribute.setCase(field.getMatching().getCase()); @@ -35,20 +34,20 @@ public class DictionaryProcessor extends Processor { if (attribute.isFastSearch()) { attribute.setDictionary(dictionary); } else { - fail(search, field, "You must specify 'attribute:fast-search' to allow dictionary control"); + fail(schema, field, "You must specify 'attribute:fast-search' to allow dictionary control"); } } else if (attribute.getDataType().getPrimitiveType() == PrimitiveDataType.STRING) { attribute.setDictionary(dictionary); if (dictionary.getType() == Dictionary.Type.HASH) { if (dictionary.getMatch() != Case.CASED) { - fail(search, field, "hash dictionary require cased match"); + fail(schema, field, "hash dictionary require cased match"); } } if (! dictionary.getMatch().equals(attribute.getCase())) { - fail(search, field, "Dictionary casing '" + dictionary.getMatch() + "' does not match field match casing '" + attribute.getCase() + "'"); + fail(schema, field, "Dictionary casing '" + dictionary.getMatch() + "' does not match field match casing '" + attribute.getCase() + "'"); } } else { - fail(search, field, "You can only specify 'dictionary:' for numeric or string fields"); + fail(schema, field, "You can only specify 'dictionary:' for numeric or string fields"); } } } 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 74bc476f96b..6ffe00458a8 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 @@ -8,9 +8,9 @@ import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.DataType; import com.yahoo.document.MapDataType; import com.yahoo.document.PrimitiveDataType; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.document.WeightedSetDataType; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; /** @@ -20,8 +20,8 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class DisallowComplexMapAndWsetKeyTypes extends Processor { - public DisallowComplexMapAndWsetKeyTypes(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public DisallowComplexMapAndWsetKeyTypes(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -30,7 +30,7 @@ public class DisallowComplexMapAndWsetKeyTypes extends Processor { // TODO also traverse struct types to search for bad map or wset types. // Do this after document manager is fixed, do not start using the static stuff on SDDocumentTypes any more. - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { checkFieldType(field, field.getDataType()); } } @@ -42,12 +42,12 @@ public class DisallowComplexMapAndWsetKeyTypes extends Processor { } else if (dataType instanceof WeightedSetDataType) { DataType nestedType = ((WeightedSetDataType) dataType).getNestedType(); if ( ! (nestedType instanceof PrimitiveDataType)) { - fail(search, field, "Weighted set must have a primitive key type."); + fail(schema, field, "Weighted set must have a primitive key type."); } } else if (dataType instanceof MapDataType) { DataType keyType = ((MapDataType) dataType).getKeyType(); if ( ! (keyType instanceof PrimitiveDataType)) { - fail(search, field, "Map key type must be a primitive type."); + fail(schema, field, "Map key type must be a primitive type."); } checkFieldType(field, ((MapDataType) dataType).getValueType()); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DiversitySettingsValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/DiversitySettingsValidator.java index 282ca6b3645..40de25dbc76 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/DiversitySettingsValidator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/DiversitySettingsValidator.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -13,8 +13,8 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class DiversitySettingsValidator extends Processor { - public DiversitySettingsValidator(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public DiversitySettingsValidator(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -22,7 +22,7 @@ public class DiversitySettingsValidator extends Processor { if ( ! validate) return; if (documentsOnly) return; - for (RankProfile rankProfile : rankProfileRegistry.rankProfilesOf(search.getName())) { + for (RankProfile rankProfile : rankProfileRegistry.rankProfilesOf(schema.getName())) { if (rankProfile.getMatchPhaseSettings() != null && rankProfile.getMatchPhaseSettings().getDiversity() != null) { validate(rankProfile, rankProfile.getMatchPhaseSettings().getDiversity()); } @@ -30,8 +30,8 @@ public class DiversitySettingsValidator extends Processor { } private void validate(RankProfile rankProfile, RankProfile.DiversitySettings settings) { String attributeName = settings.getAttribute(); - new AttributeValidator(search.getName(), rankProfile.getName(), - search.getAttribute(attributeName), attributeName).validate(); + new AttributeValidator(schema.getName(), rankProfile.getName(), + schema.getAttribute(attributeName), attributeName).validate(); } private static class AttributeValidator extends MatchPhaseSettingsValidator.AttributeValidator { 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 deb37adfa94..a516667c524 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 @@ -5,7 +5,7 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.CollectionDataType; import com.yahoo.document.DataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Stemming; @@ -27,30 +27,30 @@ public class ExactMatch extends Processor { public static final String DEFAULT_EXACT_TERMINATOR = "@@"; - ExactMatch(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + ExactMatch(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { - processField(field, search); + for (SDField field : schema.allConcreteFields()) { + processField(field, schema); } } - private void processField(SDField field, Search search) { + private void processField(SDField field, Schema schema) { Matching.Type matching = field.getMatching().getType(); if (matching.equals(Matching.Type.EXACT) || matching.equals(Matching.Type.WORD)) { - implementExactMatch(field, search); + implementExactMatch(field, schema); } else if (field.getMatching().getExactMatchTerminator() != null) { - warn(search, field, "exact-terminator requires 'exact' matching to have any effect."); + warn(schema, field, "exact-terminator requires 'exact' matching to have any effect."); } for (var structField : field.getStructFields()) { - processField(structField, search); + processField(structField, schema); } } - private void implementExactMatch(SDField field, Search search) { + private void implementExactMatch(SDField field, Schema schema) { field.setStemming(Stemming.NONE); field.getNormalizing().inferLowercase(); @@ -62,7 +62,7 @@ public class ExactMatch extends Processor { && ! field.getMatching().getExactMatchTerminator().equals("")) { exactTerminator = field.getMatching().getExactMatchTerminator(); } else { - info(search, field, + info(schema, field, "With 'exact' matching, an exact-terminator is needed," + " using default value '" + exactTerminator +"' as terminator"); } @@ -75,7 +75,7 @@ public class ExactMatch extends Processor { } ScriptExpression script = field.getIndexingScript(); if (new ExpressionSearcher<>(IndexExpression.class).containedIn(script)) { - field.setIndexingScript((ScriptExpression)new MyProvider(search).convert(field.getIndexingScript())); + field.setIndexingScript((ScriptExpression)new MyProvider(schema).convert(field.getIndexingScript())); } } @@ -85,8 +85,8 @@ public class ExactMatch extends Processor { private static class MyProvider extends TypedTransformProvider { - MyProvider(Search search) { - super(ExactExpression.class, search); + MyProvider(Schema schema) { + super(ExactExpression.class, schema); } @Override diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/FastAccessValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/FastAccessValidator.java index a6b61e28bfc..5605f66cd69 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/FastAccessValidator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/FastAccessValidator.java @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -16,25 +16,25 @@ import java.util.stream.Collectors; */ public class FastAccessValidator extends Processor { - public FastAccessValidator(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public FastAccessValidator(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - String invalidAttributes = search.allFields() - .flatMap(field -> field.getAttributes().values().stream()) - .filter(FastAccessValidator::isIncompatibleAttribute) - .map(Attribute::getName) - .collect(Collectors.joining(", ")); + String invalidAttributes = schema.allFields() + .flatMap(field -> field.getAttributes().values().stream()) + .filter(FastAccessValidator::isIncompatibleAttribute) + .map(Attribute::getName) + .collect(Collectors.joining(", ")); if ( ! invalidAttributes.isEmpty()) { throw new IllegalArgumentException( String.format( "For search '%s': The following attributes have a type that is incompatible with fast-access: %s. " + "Predicate, tensor and reference attributes are incompatible with fast-access.", - search.getName(), + schema.getName(), invalidAttributes)); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/FieldSetSettings.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/FieldSetSettings.java index 291b84fa67b..0598bb70afd 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/FieldSetSettings.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/FieldSetSettings.java @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.searchdefinition.document.FieldSet; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.Matching; @@ -22,42 +22,42 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; // (this requires adding normalizing and stemming settings to FieldSet). public class FieldSetSettings extends Processor { - public FieldSetSettings(Search search, + public FieldSetSettings(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (FieldSet fieldSet : search.fieldSets().userFieldSets().values()) { + for (FieldSet fieldSet : schema.fieldSets().userFieldSets().values()) { if (validate) - checkFieldNames(search, fieldSet); - checkMatching(search, fieldSet); - checkNormalization(search, fieldSet); - checkStemming(search, fieldSet); + checkFieldNames(schema, fieldSet); + checkMatching(schema, fieldSet); + checkNormalization(schema, fieldSet); + checkStemming(schema, fieldSet); } } - private void checkFieldNames(Search search, FieldSet fieldSet) { + private void checkFieldNames(Schema schema, FieldSet fieldSet) { for (String field : fieldSet.getFieldNames()) { - if (search.getField(field) == null) - throw new IllegalArgumentException("For search '" + search.getName() + - "': Field '"+ field + "' in " + fieldSet + " does not exist."); + if (schema.getField(field) == null) + throw new IllegalArgumentException("For search '" + schema.getName() + + "': Field '" + field + "' in " + fieldSet + " does not exist."); } } - private void checkMatching(Search search, FieldSet fieldSet) { + private void checkMatching(Schema schema, FieldSet fieldSet) { Matching matching = fieldSet.getMatching(); for (String fieldName : fieldSet.getFieldNames()) { - ImmutableSDField field = search.getField(fieldName); + ImmutableSDField field = schema.getField(fieldName); Matching fieldMatching = field.getMatching(); if (matching == null) { matching = fieldMatching; } else { if ( ! matching.equals(fieldMatching)) { - warn(search, field.asField(), + warn(schema, field.asField(), "The matching settings for the fields in " + fieldSet + " are inconsistent " + "(explicitly or because of field type). This may lead to recall and ranking issues."); return; @@ -67,16 +67,16 @@ public class FieldSetSettings extends Processor { fieldSet.setMatching(matching); // Assign the uniquely determined matching to the field set } - private void checkNormalization(Search search, FieldSet fieldSet) { + private void checkNormalization(Schema schema, FieldSet fieldSet) { NormalizeLevel.Level normalizing = null; for (String fieldName : fieldSet.getFieldNames()) { - ImmutableSDField field = search.getField(fieldName); + ImmutableSDField field = schema.getField(fieldName); NormalizeLevel.Level fieldNorm = field.getNormalizing().getLevel(); if (normalizing == null) { normalizing = fieldNorm; } else { if ( ! normalizing.equals(fieldNorm)) { - warn(search, field.asField(), + warn(schema, field.asField(), "The normalization settings for the fields in " + fieldSet + " are inconsistent " + "(explicitly or because of field type). This may lead to recall and ranking issues."); return; @@ -85,16 +85,16 @@ public class FieldSetSettings extends Processor { } } - private void checkStemming(Search search, FieldSet fieldSet) { + private void checkStemming(Schema schema, FieldSet fieldSet) { Stemming stemming = null; for (String fieldName : fieldSet.getFieldNames()) { - ImmutableSDField field = search.getField(fieldName); + ImmutableSDField field = schema.getField(fieldName); Stemming fieldStemming = field.getStemming(); if (stemming == null) { stemming = fieldStemming; } else { if ( ! stemming.equals(fieldStemming)) { - warn(search, field.asField(), + warn(schema, field.asField(), "The stemming settings for the fields in the fieldset '"+fieldSet.getName()+ "' are inconsistent (explicitly or because of field type). " + "This may lead to recall and ranking issues."); 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 201aaf46470..d89f83c333f 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 @@ -3,10 +3,10 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.RankType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.RankProfile; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; import java.util.Iterator; @@ -21,23 +21,23 @@ import java.util.logging.Level; */ public class FilterFieldNames extends Processor { - public FilterFieldNames(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public FilterFieldNames(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if (documentsOnly) return; - for (SDField f : search.allConcreteFields()) { + for (SDField f : schema.allConcreteFields()) { if (f.getRanking().isFilter()) { filterField(f.getName()); } } - for (RankProfile profile : rankProfileRegistry.rankProfilesOf(search)) { + for (RankProfile profile : rankProfileRegistry.rankProfilesOf(schema)) { Set<String> filterFields = new LinkedHashSet<>(); - findFilterFields(search, profile, filterFields); + findFilterFields(schema, profile, filterFields); for (Iterator<String> itr = filterFields.iterator(); itr.hasNext(); ) { String fieldName = itr.next(); profile.filterFields().add(fieldName); @@ -47,18 +47,18 @@ public class FilterFieldNames extends Processor { } private void filterField(String f) { - for (RankProfile rp : rankProfileRegistry.rankProfilesOf(search)) { + for (RankProfile rp : rankProfileRegistry.rankProfilesOf(schema)) { rp.filterFields().add(f); } } - private void findFilterFields(Search search, RankProfile profile, Set<String> filterFields) { + private void findFilterFields(Schema schema, RankProfile profile, Set<String> filterFields) { for (Iterator<RankProfile.RankSetting> itr = profile.declaredRankSettingIterator(); itr.hasNext(); ) { RankProfile.RankSetting setting = itr.next(); if (setting.getType().equals(RankProfile.RankSetting.Type.PREFERBITVECTOR) && ((Boolean)setting.getValue())) { String fieldName = setting.getFieldName(); - if (search.getConcreteField(fieldName) != null) { + if (schema.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 edf9f744150..6b09234c469 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 @@ -5,10 +5,10 @@ import java.util.logging.Level; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.document.PositionDataType; 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.documentmodel.SummaryTransform; @@ -23,24 +23,24 @@ import static com.yahoo.searchdefinition.document.ComplexAttributeFieldUtils.isC */ public class ImplicitSummaries extends Processor { - public ImplicitSummaries(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public ImplicitSummaries(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - DocumentSummary defaultSummary = search.getSummary("default"); + DocumentSummary defaultSummary = schema.getSummary("default"); if (defaultSummary == null) { - defaultSummary = new DocumentSummary("default", search); + defaultSummary = new DocumentSummary("default", schema); defaultSummary.setFromDisk(true); - search.addSummary(defaultSummary); + schema.addSummary(defaultSummary); } - for (SDField field : search.allConcreteFields()) { - collectSummaries(field, search, validate); + for (SDField field : schema.allConcreteFields()) { + collectSummaries(field, schema, validate); } - for (DocumentSummary documentSummary : search.getSummaries().values()) { + for (DocumentSummary documentSummary : schema.getSummaries().values()) { documentSummary.purgeImplicits(); } } @@ -49,7 +49,7 @@ public class ImplicitSummaries extends Processor { sdField.addSummaryFieldSources(summaryField); } - private void collectSummaries(SDField field ,Search search, boolean validate) { + private void collectSummaries(SDField field , Schema schema, boolean validate) { SummaryField addedSummaryField=null; // Implicit @@ -65,7 +65,7 @@ public class ImplicitSummaries extends Processor { } if (fieldSummaryField != null) { for (String dest : fieldSummaryField.getDestinations()) { - DocumentSummary summary = search.getSummary(dest); + DocumentSummary summary = schema.getSummary(dest); if (summary != null) { summary.add(fieldSummaryField); } @@ -79,7 +79,7 @@ public class ImplicitSummaries extends Processor { addedSummaryField.setTransform(SummaryTransform.ATTRIBUTE); } if (attribute.isPrefetch()) { - addPrefetchAttribute(attribute, field, search); + addPrefetchAttribute(attribute, field, schema); } } } @@ -92,7 +92,7 @@ public class ImplicitSummaries extends Processor { if (field.doesSummarying()) { for (Attribute attribute : field.getAttributes().values()) { if ( ! attribute.isPosition()) continue; - DocumentSummary attributePrefetchSummary = getOrCreateAttributePrefetchSummary(search); + DocumentSummary attributePrefetchSummary = getOrCreateAttributePrefetchSummary(schema); attributePrefetchSummary.add(field.getSummaryField(PositionDataType.getDistanceSummaryFieldName(fieldName))); attributePrefetchSummary.add(field.getSummaryField(PositionDataType.getPositionSummaryFieldName(fieldName))); } @@ -106,35 +106,35 @@ public class ImplicitSummaries extends Processor { summaryField.setTransform(SummaryTransform.ATTRIBUTE); } - if (isValid(summaryField, search, validate)) { - addToDestinations(summaryField, search); + if (isValid(summaryField, schema, validate)) { + addToDestinations(summaryField, schema); } } } - private DocumentSummary getOrCreateAttributePrefetchSummary(Search search) { - DocumentSummary summary = search.getSummary("attributeprefetch"); + private DocumentSummary getOrCreateAttributePrefetchSummary(Schema schema) { + DocumentSummary summary = schema.getSummary("attributeprefetch"); if (summary == null) { - summary = new DocumentSummary("attributeprefetch", search); - search.addSummary(summary); + summary = new DocumentSummary("attributeprefetch", schema); + schema.addSummary(summary); } return summary; } - private void addPrefetchAttribute(Attribute attribute,SDField field,Search search) { + private void addPrefetchAttribute(Attribute attribute, SDField field, Schema schema) { if (attribute.getPrefetchValue() == null) { // Prefetch by default - unless any summary makes this dynamic // Check if there is an implicit dynamic definition SummaryField fieldSummaryField = field.getSummaryField(attribute.getName()); if (fieldSummaryField != null && fieldSummaryField.getTransform().isDynamic()) return; // Check if an explicit class makes it dynamic (first is enough, as all must be the same, checked later) - SummaryField explicitSummaryField = search.getExplicitSummaryField(attribute.getName()); + SummaryField explicitSummaryField = schema.getExplicitSummaryField(attribute.getName()); if (explicitSummaryField != null && explicitSummaryField.getTransform().isDynamic()) return; } - DocumentSummary summary = getOrCreateAttributePrefetchSummary(search); + DocumentSummary summary = getOrCreateAttributePrefetchSummary(schema); SummaryField attributeSummaryField = new SummaryField(attribute.getName(), attribute.getDataType()); attributeSummaryField.addSource(attribute.getName()); attributeSummaryField.addDestination("attributeprefetch"); @@ -143,26 +143,26 @@ public class ImplicitSummaries extends Processor { } // Returns whether this is valid. Warns if invalid and ignorable. Throws if not ignorable. - private boolean isValid(SummaryField summaryField, Search search, boolean validate) { + private boolean isValid(SummaryField summaryField, Schema schema, boolean validate) { if (summaryField.getTransform() == SummaryTransform.DISTANCE || summaryField.getTransform() == SummaryTransform.POSITIONS) { int sourceCount = summaryField.getSourceCount(); if (validate && sourceCount != 1) { - throw newProcessException(search.getName(), summaryField.getName(), + throw newProcessException(schema.getName(), summaryField.getName(), "Expected 1 source field, got " + sourceCount + "."); } String sourceName = summaryField.getSingleSource(); - if (validate && search.getAttribute(sourceName) == null) { - throw newProcessException(search.getName(), summaryField.getName(), + if (validate && schema.getAttribute(sourceName) == null) { + throw newProcessException(schema.getName(), summaryField.getName(), "Summary source attribute '" + sourceName + "' not found."); } return true; } String fieldName = summaryField.getSourceField(); - SDField sourceField = search.getConcreteField(fieldName); + SDField sourceField = schema.getConcreteField(fieldName); if (validate && sourceField == null) { - throw newProcessException(search, summaryField, "Source field '" + fieldName + "' does not exist."); + throw newProcessException(schema, summaryField, "Source field '" + fieldName + "' does not exist."); } if (! sourceField.doesSummarying() && ! summaryField.getTransform().equals(SummaryTransform.ATTRIBUTE) && @@ -199,21 +199,21 @@ public class ImplicitSummaries extends Processor { return true; } - private void addToDestinations(SummaryField summaryField,Search search) { + private void addToDestinations(SummaryField summaryField, Schema schema) { if (summaryField.getDestinations().size() == 0) { - addToDestination("default", summaryField, search); + addToDestination("default", summaryField, schema); } else { for (String destinationName : summaryField.getDestinations()) - addToDestination(destinationName, summaryField, search); + addToDestination(destinationName, summaryField, schema); } } - private void addToDestination(String destinationName, SummaryField summaryField, Search search) { - DocumentSummary destination = search.getSummary(destinationName); + private void addToDestination(String destinationName, SummaryField summaryField, Schema schema) { + DocumentSummary destination = schema.getSummary(destinationName); if (destination == null) { - destination = new DocumentSummary(destinationName, search); - search.addSummary(destination); + destination = new DocumentSummary(destinationName, schema); + schema.addSummary(destination); destination.add(summaryField); } else { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFields.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFields.java index 0e13f38e207..7875bd6f4d5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFields.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFields.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.DataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.documentmodel.SummaryTransform; @@ -16,13 +16,13 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class ImplicitSummaryFields extends Processor { - public ImplicitSummaryFields(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public ImplicitSummaryFields(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (DocumentSummary docsum : search.getSummaries().values()) { + for (DocumentSummary docsum : schema.getSummaries().values()) { if (docsum.getInherited() != null) continue; // Implicit fields are added to inheriting summaries through their parent addField(docsum, new SummaryField("rankfeatures", DataType.STRING, SummaryTransform.RANKFEATURES), validate); addField(docsum, new SummaryField("summaryfeatures", DataType.STRING, SummaryTransform.SUMMARYFEATURES), validate); 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 c737df5d44f..ed04303a3ba 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 @@ -7,7 +7,7 @@ import com.yahoo.document.PositionDataType; import com.yahoo.searchdefinition.DocumentReference; import com.yahoo.searchdefinition.DocumentReferences; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.ImportedComplexField; @@ -35,15 +35,15 @@ public class ImportedFieldsResolver extends Processor { private final Map<String, ImportedField> importedFields = new LinkedHashMap<>(); private final Optional<DocumentReferences> references; - public ImportedFieldsResolver(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); - references = search.getDocument().getDocumentReferences(); + public ImportedFieldsResolver(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); + references = schema.getDocument().getDocumentReferences(); } @Override public void process(boolean validate, boolean documentsOnly) { - search.temporaryImportedFields().get().fields().forEach((name, field) -> resolveImportedField(field, validate)); - search.setImportedFields(new ImportedFields(importedFields)); + schema.temporaryImportedFields().get().fields().forEach((name, field) -> resolveImportedField(field, validate)); + schema.setImportedFields(new ImportedFields(importedFields)); } private void resolveImportedField(TemporaryImportedField importedField, boolean validate) { @@ -166,8 +166,8 @@ public class ImportedFieldsResolver extends Processor { private ImmutableSDField getTargetField(TemporaryImportedField importedField, DocumentReference reference) { String targetFieldName = importedField.targetFieldName(); - Search targetSearch = reference.targetSearch(); - ImmutableSDField targetField = targetSearch.getField(targetFieldName); + Schema targetSchema = reference.targetSearch(); + ImmutableSDField targetField = targetSchema.getField(targetFieldName); if (targetField == null) { fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Not found"); } @@ -193,14 +193,14 @@ public class ImportedFieldsResolver extends Processor { } private void fail(TemporaryImportedField importedField, String msg) { - throw new IllegalArgumentException("For search '" + search.getName() + "', import field '" + importedField.fieldName() + "': " + msg); + throw new IllegalArgumentException("For search '" + schema.getName() + "', import field '" + importedField.fieldName() + "': " + msg); } private void fail(TemporaryImportedField importedField, String importedNestedFieldName, String msg) { if (importedField.fieldName().equals(importedNestedFieldName)) { fail(importedField, msg); } - throw new IllegalArgumentException("For search '" + search.getName() + "', import field '" + - importedField.fieldName() + "' (nested to '" + importedNestedFieldName + "'): " + msg); + throw new IllegalArgumentException("For search '" + schema.getName() + "', import field '" + + importedField.fieldName() + "' (nested to '" + importedNestedFieldName + "'): " + msg); } } 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 f0f52c49875..76e97ff0f2e 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 @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.model.container.search.QueryProfiles; /** @@ -18,17 +18,17 @@ public class IndexFieldNames extends Processor { private static final String FIELD_NAME_REGEXP = "[a-zA-Z]\\w*"; - public IndexFieldNames(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public IndexFieldNames(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if ( ! field.getName().matches(FIELD_NAME_REGEXP) && ! legalDottedPositionField(field)) { - fail(search, field, " Not a legal field name. Legal expression: " + FIELD_NAME_REGEXP); + fail(schema, field, " Not a legal field name. Legal expression: " + FIELD_NAME_REGEXP); } } } 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 6117f3097ab..e589bd8e91a 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 @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.indexinglanguage.ExpressionConverter; import com.yahoo.vespa.indexinglanguage.ExpressionVisitor; @@ -21,13 +21,13 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class IndexingInputs extends Processor { - public IndexingInputs(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public IndexingInputs(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { ScriptExpression script = field.getIndexingScript(); if (script == null) continue; @@ -35,7 +35,7 @@ public class IndexingInputs extends Processor { script = (ScriptExpression)new DefaultToCurrentField(fieldName).convert(script); script = (ScriptExpression)new EnsureInputExpression(fieldName).convert(script); if (validate) - new VerifyInputExpression(search, field).visit(script); + new VerifyInputExpression(schema, field).visit(script); field.setIndexingScript(script); } @@ -85,11 +85,11 @@ public class IndexingInputs extends Processor { private class VerifyInputExpression extends ExpressionVisitor { - private final Search search; + private final Schema schema; private final SDField field; - public VerifyInputExpression(Search search, SDField field) { - this.search = search; + public VerifyInputExpression(Schema schema, SDField field) { + this.schema = schema; this.field = field; } @@ -97,10 +97,10 @@ public class IndexingInputs extends Processor { protected void doVisit(Expression exp) { if ( ! (exp instanceof InputExpression)) return; String inputField = ((InputExpression)exp).getFieldName(); - if (search.getField(inputField).hasFullIndexingDocprocRights()) return; + if (schema.getField(inputField).hasFullIndexingDocprocRights()) return; - fail(search, field, "Indexing script refers to field '" + inputField + "' which does not exist " + - "in document type '" + search.getDocument().getName() + "', and is not a mutable attribute."); + fail(schema, field, "Indexing script refers to field '" + inputField + "' which does not exist " + + "in document type '" + schema.getDocument().getName() + "', and is not a mutable attribute."); } } } 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 c1ed856bb11..1479f9d8f5a 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 @@ -5,7 +5,7 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.DataType; import com.yahoo.document.Field; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.documentmodel.SummaryTransform; @@ -24,40 +24,40 @@ import java.util.*; */ public class IndexingOutputs extends Processor { - public IndexingOutputs(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public IndexingOutputs(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { ScriptExpression script = field.getIndexingScript(); if (script == null) continue; Set<String> summaryFields = new TreeSet<>(); - findSummaryTo(search, field, summaryFields, summaryFields); - MyConverter converter = new MyConverter(search, field, summaryFields, validate); + findSummaryTo(schema, field, summaryFields, summaryFields); + MyConverter converter = new MyConverter(schema, field, summaryFields, validate); field.setIndexingScript((ScriptExpression)converter.convert(script)); } } - public void findSummaryTo(Search search, SDField field, Set<String> dynamicSummary, Set<String> staticSummary) { - Map<String, SummaryField> summaryFields = search.getSummaryFields(field); + public void findSummaryTo(Schema schema, SDField field, Set<String> dynamicSummary, Set<String> staticSummary) { + Map<String, SummaryField> summaryFields = schema.getSummaryFields(field); if (summaryFields.isEmpty()) { fillSummaryToFromField(field, dynamicSummary, staticSummary); } else { - fillSummaryToFromSearch(search, field, summaryFields, dynamicSummary, staticSummary); + fillSummaryToFromSearch(schema, field, summaryFields, dynamicSummary, staticSummary); } } - private void fillSummaryToFromSearch(Search search, SDField field, Map<String, SummaryField> summaryFields, - Set<String> dynamicSummary, Set<String> staticSummary) { + private void fillSummaryToFromSearch(Schema schema, SDField field, Map<String, SummaryField> summaryFields, + Set<String> dynamicSummary, Set<String> staticSummary) { for (SummaryField summaryField : summaryFields.values()) { - fillSummaryToFromSummaryField(search, field, summaryField, dynamicSummary, staticSummary); + fillSummaryToFromSummaryField(schema, field, summaryField, dynamicSummary, staticSummary); } } - private void fillSummaryToFromSummaryField(Search search, SDField field, SummaryField summaryField, + private void fillSummaryToFromSummaryField(Schema schema, SDField field, SummaryField summaryField, Set<String> dynamicSummary, Set<String> staticSummary) { SummaryTransform summaryTransform = summaryField.getTransform(); String summaryName = summaryField.getName(); @@ -69,7 +69,7 @@ public class IndexingOutputs extends Processor { if (summaryTransform.isDynamic()) { DataType fieldType = field.getDataType(); if (fieldType != DataType.URI && fieldType != DataType.STRING) { - warn(search, field, "Dynamic summaries are only supported for fields of type " + + warn(schema, field, "Dynamic summaries are only supported for fields of type " + "string, ignoring summary field '" + summaryField.getName() + "' for sd field '" + field.getName() + "' of type " + fieldType.getName() + "."); @@ -94,13 +94,13 @@ public class IndexingOutputs extends Processor { private class MyConverter extends ExpressionConverter { - final Search search; + final Schema schema; final Field field; final Set<String> summaryFields; final boolean validate; - MyConverter(Search search, Field field, Set<String> summaryFields, boolean validate) { - this.search = search; + MyConverter(Schema schema, Field field, Set<String> summaryFields, boolean validate) { + this.schema = schema; this.field = field; this.summaryFields = summaryFields.isEmpty() ? Collections.singleton(field.getName()) : summaryFields; this.validate = validate; @@ -116,7 +116,7 @@ public class IndexingOutputs extends Processor { return true; // inject appropriate field name } if ( validate && ! fieldName.equals(field.getName())) { - fail(search, field, "Indexing expression '" + exp + "' attempts to write to a field other than '" + + fail(schema, field, "Indexing expression '" + exp + "' attempts to write to a field other than '" + field.getName() + "'."); } return false; 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 915c2040224..eb9b561da73 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 @@ -8,7 +8,7 @@ import com.yahoo.document.MapDataType; import com.yahoo.document.PositionDataType; import com.yahoo.document.WeightedSetDataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.documentmodel.SummaryField; @@ -33,16 +33,16 @@ import java.util.Set; */ public class IndexingValidation extends Processor { - IndexingValidation(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + IndexingValidation(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - VerificationContext context = new VerificationContext(new MyAdapter(search)); - for (SDField field : search.allConcreteFields()) { + VerificationContext context = new VerificationContext(new MyAdapter(schema)); + for (SDField field : schema.allConcreteFields()) { ScriptExpression script = field.getIndexingScript(); try { script.verify(context); @@ -51,7 +51,7 @@ public class IndexingValidation extends Processor { converter.convert(exp); // TODO: stop doing this explicitly when visiting a script does not branch } } catch (VerificationException e) { - fail(search, field, "For expression '" + e.getExpression() + "': " + e.getMessage()); + fail(schema, field, "For expression '" + e.getExpression() + "': " + e.getMessage()); } } } @@ -94,15 +94,15 @@ public class IndexingValidation extends Processor { private static class MyAdapter implements FieldTypeAdapter { - final Search search; + final Schema schema; - MyAdapter(Search search) { - this.search = search; + MyAdapter(Schema schema) { + this.schema = schema; } @Override public DataType getInputType(Expression exp, String fieldName) { - SDField field = search.getDocumentField(fieldName); + SDField field = schema.getDocumentField(fieldName); if (field == null) { throw new VerificationException(exp, "Input field '" + fieldName + "' not found."); } @@ -114,21 +114,21 @@ public class IndexingValidation extends Processor { String fieldDesc; DataType fieldType; if (exp instanceof AttributeExpression) { - Attribute attribute = search.getAttribute(fieldName); + Attribute attribute = schema.getAttribute(fieldName); if (attribute == null) { throw new VerificationException(exp, "Attribute '" + fieldName + "' not found."); } fieldDesc = "attribute"; fieldType = attribute.getDataType(); } else if (exp instanceof IndexExpression) { - SDField field = search.getConcreteField(fieldName); + SDField field = schema.getConcreteField(fieldName); if (field == null) { throw new VerificationException(exp, "Index field '" + fieldName + "' not found."); } fieldDesc = "index field"; fieldType = field.getDataType(); } else if (exp instanceof SummaryExpression) { - SummaryField field = search.getSummaryField(fieldName); + SummaryField field = schema.getSummaryField(fieldName); if (field == null) { throw new VerificationException(exp, "Summary field '" + fieldName + "' not found."); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingValues.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingValues.java index 36a74147f05..815e5a42df4 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingValues.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/IndexingValues.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.Field; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.indexinglanguage.ExpressionConverter; import com.yahoo.vespa.indexinglanguage.expressions.Expression; @@ -17,15 +17,15 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class IndexingValues extends Processor { - public IndexingValues(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public IndexingValues(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - for (Field field : search.getDocument().fieldSet()) { + for (Field field : schema.getDocument().fieldSet()) { SDField sdField = (SDField)field; if ( ! sdField.isExtraField()) { new RequireThatDocumentFieldsAreImmutable(field).convert(sdField.getIndexingScript()); @@ -50,7 +50,7 @@ public class IndexingValues extends Processor { @Override protected boolean shouldConvert(Expression exp) { if (exp instanceof OutputExpression && mutatedBy != null) { - throw newProcessException(search, field, + throw newProcessException(schema, field, "Indexing expression '" + mutatedBy + "' attempts to modify the value of the " + "document field '" + field.getName() + "'. Use a field outside the document " + "block instead."); 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 de108d4b711..ff6224d8d19 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 @@ -6,7 +6,7 @@ import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.NumericDataType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.indexinglanguage.ExpressionConverter; import com.yahoo.vespa.indexinglanguage.ExpressionVisitor; import com.yahoo.vespa.indexinglanguage.expressions.AttributeExpression; @@ -25,13 +25,13 @@ import java.util.Set; */ public class IntegerIndex2Attribute extends Processor { - public IntegerIndex2Attribute(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public IntegerIndex2Attribute(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if (field.doesIndexing() && field.getDataType().getPrimitiveType() instanceof NumericDataType) { if (field.getIndex(field.getName()) != null && ! (field.getIndex(field.getName()).getType().equals(Index.Type.VESPA))) continue; @@ -39,9 +39,9 @@ public class IntegerIndex2Attribute extends Processor { Set<String> attributeNames = new HashSet<>(); new MyVisitor(attributeNames).visit(script); field.setIndexingScript((ScriptExpression)new MyConverter(attributeNames).convert(script)); - warn(search, field, "Changed to attribute because numerical indexes (field has type " + + warn(schema, field, "Changed to attribute because numerical indexes (field has type " + field.getDataType().getName() + ") is not currently supported." + - " Index-only settings may fail. Ignore this warning for streaming search."); + " Index-only settings may fail. Ignore this warning for streaming search."); } } } 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 51ef1c312a8..afe004fd5f3 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 @@ -3,9 +3,9 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.RankProfile; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; import java.util.Iterator; @@ -25,21 +25,21 @@ import java.util.Iterator; */ public class LiteralBoost extends Processor { - public LiteralBoost(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public LiteralBoost(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } /** Adds extra search fields and indices to express literal boosts */ @Override public void process(boolean validate, boolean documentsOnly) { - checkRankModifierRankType(search); - addLiteralBoostsToFields(search); - reduceFieldLiteralBoosts(search); + checkRankModifierRankType(schema); + addLiteralBoostsToFields(schema); + reduceFieldLiteralBoosts(schema); } /** Checks if literal boost is given using rank: , and set the actual literal boost accordingly. */ - private void checkRankModifierRankType(Search search) { - for (SDField field : search.allConcreteFields()) { + private void checkRankModifierRankType(Schema schema) { + for (SDField field : schema.allConcreteFields()) { if (field.getLiteralBoost() > -1) continue; // Let explicit value take precedence if (field.getRanking().isLiteral()) field.setLiteralBoost(100); @@ -51,26 +51,26 @@ public class LiteralBoost extends Processor { * This is required because boost indices will only be generated by looking * at field boosts */ - private void addLiteralBoostsToFields(Search search) { - Iterator i = matchingRankSettingsIterator(search, RankProfile.RankSetting.Type.LITERALBOOST); + private void addLiteralBoostsToFields(Schema schema) { + Iterator i = matchingRankSettingsIterator(schema, RankProfile.RankSetting.Type.LITERALBOOST); while (i.hasNext()) { RankProfile.RankSetting setting = (RankProfile.RankSetting)i.next(); - SDField field = search.getConcreteField(setting.getFieldName()); + SDField field = schema.getConcreteField(setting.getFieldName()); if (field == null) continue; if (field.getLiteralBoost() < 0) field.setLiteralBoost(0); } } - private void reduceFieldLiteralBoosts(Search search) { - for (SDField field : search.allConcreteFields()) { + private void reduceFieldLiteralBoosts(Schema schema) { + for (SDField field : schema.allConcreteFields()) { if (field.getLiteralBoost() < 0) continue; - reduceFieldLiteralBoost(field,search); + reduceFieldLiteralBoost(field, schema); } } - private void reduceFieldLiteralBoost(SDField field,Search search) { - SDField literalField = addField(search, field, "literal", + private void reduceFieldLiteralBoost(SDField field, Schema schema) { + SDField literalField = addField(schema, field, "literal", "{ input " + field.getName() + " | tokenize | index " + field.getName() + "_literal; }", "literal-boost"); literalField.setWeight(field.getWeight() + field.getLiteralBoost()); 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 36371dd9295..48712b3bb35 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 @@ -3,10 +3,10 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; import java.util.ArrayList; @@ -20,22 +20,22 @@ import java.util.Map; */ public class MakeAliases extends Processor { - public MakeAliases(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public MakeAliases(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { List<String> usedAliases = new ArrayList<>(); - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { for (Map.Entry<String, String> e : field.getAliasToName().entrySet()) { String alias = e.getKey(); String name = e.getValue(); - String errMsg = "For search '" + search.getName() + "': alias '" + alias + "' "; - if (validate && search.existsIndex(alias)) { + String errMsg = "For search '" + schema.getName() + "': alias '" + alias + "' "; + if (validate && schema.existsIndex(alias)) { throw new IllegalArgumentException(errMsg + "is illegal since it is the name of an index."); } - if (validate && search.getAttribute(alias) != null) { + if (validate && schema.getAttribute(alias) != null) { throw new IllegalArgumentException(errMsg + "is illegal since it is the name of an attribute."); } if (validate && usedAliases.contains(alias)) { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MakeDefaultSummaryTheSuperSet.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MakeDefaultSummaryTheSuperSet.java index 3524f5666b3..a82c8d0c6be 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MakeDefaultSummaryTheSuperSet.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MakeDefaultSummaryTheSuperSet.java @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.documentmodel.SummaryTransform; @@ -29,14 +29,14 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class MakeDefaultSummaryTheSuperSet extends Processor { - public MakeDefaultSummaryTheSuperSet(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public MakeDefaultSummaryTheSuperSet(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - DocumentSummary defaultSummary=search.getSummary("default"); - for (SummaryField summaryField : search.getUniqueNamedSummaryFields().values() ) { + DocumentSummary defaultSummary= schema.getSummary("default"); + for (SummaryField summaryField : schema.getUniqueNamedSummaryFields().values() ) { if (defaultSummary.getSummaryField(summaryField.getName()) != null) continue; if (summaryField.getTransform() == SummaryTransform.ATTRIBUTE) continue; if (summaryField.getTransform() == SummaryTransform.ATTRIBUTECOMBINER) continue; 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 d9c62967649..c302ef63cfd 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 @@ -3,10 +3,10 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.Matching.Type; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.indexinglanguage.ExpressionVisitor; import com.yahoo.vespa.indexinglanguage.expressions.Expression; import com.yahoo.vespa.indexinglanguage.expressions.IndexExpression; @@ -22,11 +22,11 @@ import java.util.Map; */ public class MatchConsistency extends Processor { - public MatchConsistency(Search search, + public MatchConsistency(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -34,17 +34,17 @@ public class MatchConsistency extends Processor { if ( ! validate) return; Map<String, Matching.Type> types = new HashMap<>(); - for (SDField field : search.allConcreteFields()) { - new MyVisitor(search, field, types).visit(field.getIndexingScript()); + for (SDField field : schema.allConcreteFields()) { + new MyVisitor(schema, field, types).visit(field.getIndexingScript()); } } - private void checkMatching(Search search, SDField field, Map<String, Type> types, String indexTo) { + private void checkMatching(Schema schema, SDField field, Map<String, Type> types, String indexTo) { Type prevType = types.get(indexTo); if (prevType == null) { types.put(indexTo, field.getMatching().getType()); } else if ( ! field.getMatching().getType().equals(prevType)) { - warn(search, field, "The matching type for index '" + indexTo + "' (got " + field.getMatching().getType() + + warn(schema, field, "The matching type for index '" + indexTo + "' (got " + field.getMatching().getType() + ") is inconsistent with that given for the same index in a previous field (had " + prevType + ")."); } @@ -52,12 +52,12 @@ public class MatchConsistency extends Processor { private class MyVisitor extends ExpressionVisitor { - final Search search; + final Schema schema; final SDField field; final Map<String, Type> types; - MyVisitor(Search search, SDField field, Map<String, Type> types) { - this.search = search; + MyVisitor(Schema schema, SDField field, Map<String, Type> types) { + this.schema = schema; this.field = field; this.types = types; } @@ -65,7 +65,7 @@ public class MatchConsistency extends Processor { @Override protected void doVisit(Expression exp) { if (exp instanceof IndexExpression) { - checkMatching(search, field, types, ((IndexExpression)exp).getFieldName()); + checkMatching(schema, field, types, ((IndexExpression)exp).getFieldName()); } } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchPhaseSettingsValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchPhaseSettingsValidator.java index 8afc85f2e1f..b697c584ece 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchPhaseSettingsValidator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MatchPhaseSettingsValidator.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -15,8 +15,8 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class MatchPhaseSettingsValidator extends Processor { - public MatchPhaseSettingsValidator(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public MatchPhaseSettingsValidator(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -24,7 +24,7 @@ public class MatchPhaseSettingsValidator extends Processor { if ( ! validate) return; if (documentsOnly) return; - for (RankProfile rankProfile : rankProfileRegistry.rankProfilesOf(search)) { + for (RankProfile rankProfile : rankProfileRegistry.rankProfilesOf(schema)) { RankProfile.MatchPhaseSettings settings = rankProfile.getMatchPhaseSettings(); if (settings != null) { validateMatchPhaseSettings(rankProfile, settings); @@ -34,9 +34,9 @@ public class MatchPhaseSettingsValidator extends Processor { private void validateMatchPhaseSettings(RankProfile rankProfile, RankProfile.MatchPhaseSettings settings) { String attributeName = settings.getAttribute(); - new AttributeValidator(search.getName(), + new AttributeValidator(schema.getName(), rankProfile.getName(), - search.getAttribute(attributeName), attributeName).validate(); + schema.getAttribute(attributeName), attributeName).validate(); } public static class AttributeValidator { 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 77064038053..7e78b76eb7f 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 @@ -6,7 +6,7 @@ import com.yahoo.document.ArrayDataType; import com.yahoo.document.DataType; import com.yahoo.document.WeightedSetDataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ComplexAttributeFieldUtils; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.documentmodel.DocumentSummary; @@ -25,13 +25,13 @@ import static com.yahoo.searchdefinition.document.ComplexAttributeFieldUtils.isS */ public class MatchedElementsOnlyResolver extends Processor { - public MatchedElementsOnlyResolver(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public MatchedElementsOnlyResolver(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (var entry : search.getSummaries().entrySet()) { + for (var entry : schema.getSummaries().entrySet()) { var summary = entry.getValue(); for (var field : summary.getSummaryFields()) { if (field.getTransform().equals(SummaryTransform.MATCHED_ELEMENTS_FILTER)) { @@ -42,7 +42,7 @@ public class MatchedElementsOnlyResolver extends Processor { } private void processSummaryField(DocumentSummary summary, SummaryField field, boolean validate) { - var sourceField = search.getField(field.getSingleSource()); + var sourceField = schema.getField(field.getSingleSource()); if (sourceField != null) { if (isSupportedComplexField(sourceField)) { if (isComplexFieldWithOnlyStructFieldAttributes(sourceField)) { @@ -84,12 +84,12 @@ public class MatchedElementsOnlyResolver extends Processor { } private void fail(DocumentSummary summary, SummaryField field, String msg) { - throw new IllegalArgumentException(formatError(search, summary, field, msg)); + throw new IllegalArgumentException(formatError(schema, summary, field, msg)); } - private String formatError(Search search, DocumentSummary summary, SummaryField field, String msg) { - return "For search '" + search.getName() + "', document summary '" + summary.getName() - + "', summary field '" + field.getName() + "': " + msg; + private String formatError(Schema schema, DocumentSummary summary, SummaryField field, String msg) { + return "For search '" + schema.getName() + "', document summary '" + summary.getName() + + "', summary field '" + field.getName() + "': " + msg; } } 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 265715e8eb9..39220b8cf8f 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 @@ -3,8 +3,8 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.processing.multifieldresolver.IndexCommandResolver; import com.yahoo.searchdefinition.processing.multifieldresolver.RankTypeResolver; import com.yahoo.searchdefinition.processing.multifieldresolver.StemmingResolver; @@ -25,18 +25,18 @@ public class MultifieldIndexHarmonizer extends Processor { /** A map from index names to a List of fields going to that index */ private Map<String,List<SDField>> indexToFields=new java.util.HashMap<>(); - public MultifieldIndexHarmonizer(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public MultifieldIndexHarmonizer(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - populateIndexToFields(search); - resolveAllConflicts(search); + populateIndexToFields(schema); + resolveAllConflicts(schema); } - private void populateIndexToFields(Search search) { - for (SDField field : search.allConcreteFields() ) { + private void populateIndexToFields(Schema schema) { + for (SDField field : schema.allConcreteFields() ) { if ( ! field.doesIndexing()) continue; addIndexField(field.getName(), field); } @@ -51,12 +51,12 @@ public class MultifieldIndexHarmonizer extends Processor { fields.add(field); } - private void resolveAllConflicts(Search search) { + private void resolveAllConflicts(Schema schema) { for (Map.Entry<String, List<SDField>> entry : indexToFields.entrySet()) { String indexName = entry.getKey(); List<SDField> fields = entry.getValue(); if (fields.size() == 1) continue; // It takes two to make a conflict - resolveConflicts(indexName, fields, search); + resolveConflicts(indexName, fields, schema); } } @@ -65,12 +65,12 @@ public class MultifieldIndexHarmonizer extends Processor { * * @param indexName the name of the index in question * @param fields all the fields indexed to this index - * @param search the search definition having this + * @param schema the search definition having this */ - private void resolveConflicts(String indexName,List<SDField> fields,Search search) { - new StemmingResolver(indexName, fields, search, deployLogger).resolve(); - new IndexCommandResolver(indexName, fields, search, deployLogger).resolve(); - new RankTypeResolver(indexName, fields, search, deployLogger).resolve(); + private void resolveConflicts(String indexName, List<SDField> fields, Schema schema) { + new StemmingResolver(indexName, fields, schema, deployLogger).resolve(); + new IndexCommandResolver(indexName, fields, schema, deployLogger).resolve(); + new RankTypeResolver(indexName, fields, schema, deployLogger).resolve(); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MutableAttributes.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MutableAttributes.java index 35b17234a1d..198f89caddb 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/MutableAttributes.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/MutableAttributes.java @@ -3,24 +3,24 @@ 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.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.model.container.search.QueryProfiles; public class MutableAttributes extends Processor { - public MutableAttributes(Search search, DeployLogger deployLogger, + public MutableAttributes(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if ( ! field.isExtraField() && field.getAttributes().containsKey(field.getName())) { if (field.getAttributes().get(field.getName()).isMutable()) { - throw new IllegalArgumentException("Field '" + field.getName() + "' in '" + search.getDocument().getName() + + throw new IllegalArgumentException("Field '" + field.getName() + "' in '" + schema.getDocument().getName() + "' can not be marked mutable as it is inside the document clause."); } } 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 0995762da6e..b5f573ecf71 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 @@ -5,7 +5,7 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.CollectionDataType; import com.yahoo.document.DataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Stemming; @@ -22,21 +22,21 @@ public class NGramMatch extends Processor { public static final int DEFAULT_GRAM_SIZE = 2; - public NGramMatch(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public NGramMatch(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if (field.getMatching().getType().equals(Matching.Type.GRAM)) - implementGramMatch(search, field, validate); + implementGramMatch(schema, field, validate); else if (validate && field.getMatching().getGramSize() >= 0) throw new IllegalArgumentException("gram-size can only be set when the matching mode is 'gram'"); } } - private void implementGramMatch(Search search, SDField field, boolean validate) { + private void implementGramMatch(Schema schema, SDField field, boolean validate) { if (validate && field.doesAttributing() && ! field.doesIndexing()) throw new IllegalArgumentException("gram matching is not supported with attributes, use 'index' in indexing"); @@ -48,15 +48,15 @@ public class NGramMatch extends Processor { field.getNormalizing().inferCodepoint(); field.setStemming(Stemming.NONE); // not compatible with stemming and normalizing field.addQueryCommand("ngram " + n); - field.setIndexingScript((ScriptExpression)new MyProvider(search, n).convert(field.getIndexingScript())); + field.setIndexingScript((ScriptExpression)new MyProvider(schema, n).convert(field.getIndexingScript())); } private static class MyProvider extends TypedTransformProvider { final int ngram; - MyProvider(Search search, int ngram) { - super(NGramExpression.class, search); + MyProvider(Schema schema, int ngram) { + super(NGramExpression.class, schema); this.ngram = ngram; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/OnnxModelConfigGenerator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/OnnxModelConfigGenerator.java index a2eae585a25..c7c1db3b862 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/OnnxModelConfigGenerator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/OnnxModelConfigGenerator.java @@ -7,7 +7,7 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.OnnxModel; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.expressiontransforms.OnnxModelTransformer; import com.yahoo.searchlib.rankingexpression.rule.CompositeNode; import com.yahoo.searchlib.rankingexpression.rule.ConstantNode; @@ -36,14 +36,14 @@ import java.util.Map; */ public class OnnxModelConfigGenerator extends Processor { - public OnnxModelConfigGenerator(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public OnnxModelConfigGenerator(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if (documentsOnly) return; - for (RankProfile profile : rankProfileRegistry.rankProfilesOf(search)) { + for (RankProfile profile : rankProfileRegistry.rankProfilesOf(schema)) { if (profile.getFirstPhaseRanking() != null) { process(profile.getFirstPhaseRanking().getRoot()); } @@ -78,17 +78,17 @@ public class OnnxModelConfigGenerator extends Processor { String modelConfigName = OnnxModelTransformer.asValidIdentifier(path); // Only add the configuration if the model can actually be found. - if ( ! OnnxModelInfo.modelExists(path, search.applicationPackage())) { + if ( ! OnnxModelInfo.modelExists(path, schema.applicationPackage())) { path = ApplicationPackage.MODELS_DIR.append(path).toString(); - if ( ! OnnxModelInfo.modelExists(path, search.applicationPackage())) { + if ( ! OnnxModelInfo.modelExists(path, schema.applicationPackage())) { return; } } - OnnxModel onnxModel = search.onnxModels().get(modelConfigName); + OnnxModel onnxModel = schema.onnxModels().get(modelConfigName); if (onnxModel == null) { onnxModel = new OnnxModel(modelConfigName, path); - search.onnxModels().add(onnxModel); + schema.onnxModels().add(onnxModel); } } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/OnnxModelTypeResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/OnnxModelTypeResolver.java index aa3c5db4e83..4153cca4b5b 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/OnnxModelTypeResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/OnnxModelTypeResolver.java @@ -5,7 +5,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.OnnxModel; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.model.container.search.QueryProfiles; import com.yahoo.vespa.model.ml.OnnxModelInfo; @@ -21,15 +21,15 @@ import com.yahoo.vespa.model.ml.OnnxModelInfo; */ public class OnnxModelTypeResolver extends Processor { - public OnnxModelTypeResolver(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public OnnxModelTypeResolver(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if (documentsOnly) return; - for (OnnxModel onnxModel : search.onnxModels().asMap().values()) { - OnnxModelInfo onnxModelInfo = OnnxModelInfo.load(onnxModel.getFileName(), search.applicationPackage()); + for (OnnxModel onnxModel : schema.onnxModels().asMap().values()) { + OnnxModelInfo onnxModelInfo = OnnxModelInfo.load(onnxModel.getFileName(), schema.applicationPackage()); onnxModel.setModelInfo(onnxModelInfo); } } 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 82bcff265c0..3175862e900 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 @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.indexinglanguage.ExpressionOptimizer; import com.yahoo.vespa.indexinglanguage.expressions.ScriptExpression; @@ -14,22 +14,22 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class OptimizeIlscript extends Processor { - public OptimizeIlscript(Search search, + public OptimizeIlscript(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { ScriptExpression script = field.getIndexingScript(); if (script == null) continue; field.setIndexingScript((ScriptExpression)new ExpressionOptimizer().convert(script)); if ( ! field.getIndexingScript().toString().equals(script.toString())) { - info(search, field, "Rewrote ilscript from:\n" + script.toString() + + info(schema, field, "Rewrote ilscript from:\n" + script.toString() + "\nto\n" + field.getIndexingScript().toString()); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/PagedAttributeValidator.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/PagedAttributeValidator.java index 5e344f5a824..d108a620fd9 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/PagedAttributeValidator.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/PagedAttributeValidator.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.Field; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.tensor.TensorType; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -17,11 +17,11 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; public class PagedAttributeValidator extends Processor { - public PagedAttributeValidator(Search search, + public PagedAttributeValidator(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -29,7 +29,7 @@ public class PagedAttributeValidator extends Processor { if (!validate) { return; } - for (var field : search.allConcreteFields()) { + for (var field : schema.allConcreteFields()) { for (var attribute : field.getAttributes().values()) { if (attribute.isPaged()) { validatePagedSetting(field, attribute); @@ -42,7 +42,7 @@ public class PagedAttributeValidator extends Processor { var tensorType = attribute.tensorType(); if (!tensorType.isPresent() || !isDenseTensorType(tensorType.get())) { - fail(search, field, "The 'paged' attribute setting is only supported for dense tensor types"); + fail(schema, field, "The 'paged' attribute setting is only supported for dense tensor types"); } } 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 df357d6b704..73b75d6e23a 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 @@ -7,7 +7,7 @@ import com.yahoo.document.DataType; import com.yahoo.document.datatypes.IntegerFieldValue; import com.yahoo.document.datatypes.LongFieldValue; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.BooleanIndexDefinition; import com.yahoo.searchdefinition.document.SDField; @@ -34,30 +34,30 @@ import java.util.List; */ public class PredicateProcessor extends Processor { - public PredicateProcessor(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public PredicateProcessor(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if (field.getDataType() == DataType.PREDICATE) { if (validate && field.doesIndexing()) { - fail(search, field, "Use 'attribute' instead of 'index'. This will require a refeed if you have upgraded."); + fail(schema, field, "Use 'attribute' instead of 'index'. This will require a refeed if you have upgraded."); } if (field.doesAttributing()) { Attribute attribute = field.getAttributes().get(field.getName()); for (Index index : field.getIndices().values()) { BooleanIndexDefinition booleanDefinition = index.getBooleanIndexDefiniton(); if (validate && (booleanDefinition == null || ! booleanDefinition.hasArity())) { - fail(search, field, "Missing arity value in predicate field."); + fail(schema, field, "Missing arity value in predicate field."); } if (validate && (booleanDefinition.getArity() < 2)) { - fail(search, field, "Invalid arity value in predicate field, must be greater than 1."); + fail(schema, field, "Invalid arity value in predicate field, must be greater than 1."); } double threshold = booleanDefinition.getDensePostingListThreshold(); if (validate && (threshold <= 0 || threshold > 1)) { - fail(search, field, "Invalid dense-posting-list-threshold value in predicate field. " + + fail(schema, field, "Invalid dense-posting-list-threshold value in predicate field. " + "Value must be in range (0..1]."); } @@ -68,29 +68,29 @@ public class PredicateProcessor extends Processor { attribute.setDensePostingListThreshold(threshold); addPredicateOptimizationIlScript(field, booleanDefinition); } - DocumentSummary summary = search.getSummary("attributeprefetch"); + DocumentSummary summary = schema.getSummary("attributeprefetch"); if (summary != null) { summary.remove(attribute.getName()); } - for (SummaryField summaryField : search.getSummaryFields(field).values()) { + for (SummaryField summaryField : schema.getSummaryFields(field).values()) { summaryField.setTransform(SummaryTransform.NONE); } } } else if (validate && field.getDataType().getPrimitiveType() == DataType.PREDICATE) { - fail(search, field, "Collections of predicates are not allowed."); + fail(schema, field, "Collections of predicates are not allowed."); } else if (validate && field.getDataType() == DataType.RAW && field.doesIndexing()) { - fail(search, field, "Indexing of RAW fields is not supported."); + fail(schema, field, "Indexing of RAW fields is not supported."); } else if (validate) { // if field is not a predicate, disallow predicate-related index parameters for (Index index : field.getIndices().values()) { if (index.getBooleanIndexDefiniton() != null) { BooleanIndexDefinition def = index.getBooleanIndexDefiniton(); if (def.hasArity()) { - fail(search, field, "Arity parameter is used only for predicate type fields."); + fail(schema, field, "Arity parameter is used only for predicate type fields."); } else if (def.hasLowerBound() || def.hasUpperBound()) { - fail(search, field, "Parameters lower-bound and upper-bound are used only for predicate type fields."); + fail(schema, field, "Parameters lower-bound and upper-bound are used only for predicate type fields."); } else if (def.hasDensePostingListThreshold()) { - fail(search, field, "Parameter dense-posting-list-threshold is used only for predicate type fields."); + fail(schema, field, "Parameter dense-posting-list-threshold is used only for predicate type fields."); } } } @@ -104,7 +104,7 @@ public class PredicateProcessor extends Processor { script = new StatementExpression(makeSetPredicateVariablesScript(booleanIndexDefiniton), script); - ExpressionConverter converter = new PredicateOutputTransformer(search); + ExpressionConverter converter = new PredicateOutputTransformer(schema); field.setIndexingScript(new ScriptExpression((StatementExpression)converter.convert(script))); } @@ -125,8 +125,8 @@ public class PredicateProcessor extends Processor { private static class PredicateOutputTransformer extends TypedTransformProvider { - PredicateOutputTransformer(Search search) { - super(OptimizePredicateExpression.class, search); + PredicateOutputTransformer(Schema schema) { + super(OptimizePredicateExpression.class, schema); } @Override 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 ddb158a3d84..fb60dfd283d 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 @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.searchdefinition.processing.multifieldresolver.RankProfileTypeSettingsProcessor; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -94,19 +94,19 @@ public class Processing { } /** - * Runs all search processors on the given {@link Search} object. These will modify the search object, <b>possibly + * Runs all search processors on the given {@link Schema} object. These will modify the search object, <b>possibly * exchanging it with another</b>, as well as its document types. * - * @param search The search to process. + * @param schema The search to process. * @param deployLogger The log to log messages and warnings for application deployment to * @param rankProfileRegistry a {@link com.yahoo.searchdefinition.RankProfileRegistry} * @param queryProfiles The query profiles contained in the application this search is part of. */ - public void process(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, + public void process(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles, boolean validate, boolean documentsOnly) { Collection<ProcessorFactory> factories = processors(); factories.stream() - .map(factory -> factory.create(search, deployLogger, rankProfileRegistry, queryProfiles)) + .map(factory -> factory.create(schema, deployLogger, rankProfileRegistry, queryProfiles)) .forEach(processor -> processor.process(validate, documentsOnly)); } @@ -127,7 +127,7 @@ public class Processing { @FunctionalInterface public interface ProcessorFactory { - Processor create(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles); + Processor create(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles); } } 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 c4f15367831..2b18ee27f73 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 @@ -7,7 +7,7 @@ import com.yahoo.document.Field; import com.yahoo.searchdefinition.Index; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.RankType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Stemming; @@ -24,7 +24,7 @@ import java.util.logging.Level; */ public abstract class Processor { - protected final Search search; + protected final Schema schema; protected final DeployLogger deployLogger; protected final RankProfileRegistry rankProfileRegistry; protected final QueryProfiles queryProfiles; @@ -32,16 +32,16 @@ public abstract class Processor { /** * Base constructor * - * @param search the search to process + * @param schema the search to process * @param deployLogger Logger du use when logging deploy output. * @param rankProfileRegistry Registry with all rank profiles, used for lookup and insertion. * @param queryProfiles The query profiles contained in the application this search is part of. */ - public Processor(Search search, + public Processor(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - this.search = search; + this.schema = schema; this.deployLogger = deployLogger; this.rankProfileRegistry = rankProfileRegistry; this.queryProfiles = queryProfiles; @@ -62,19 +62,19 @@ public abstract class Processor { /** * Convenience method for adding a no-strings-attached implementation field for a regular field * - * @param search the search definition in question + * @param schema the search definition in question * @param field the field to add an implementation field for * @param suffix the suffix of the added implementation field (without the underscore) * @param indexing the indexing statement of the field * @param queryCommand the query command of the original field, or null if none * @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.getConcreteField(field.getName() + "_" + suffix); + protected SDField addField(Schema schema, SDField field, String suffix, String indexing, String queryCommand) { + SDField implementationField = schema.getConcreteField(field.getName() + "_" + suffix); if (implementationField != null) { deployLogger.logApplicationPackage(Level.WARNING, "Implementation field " + implementationField + " added twice"); } else { - implementationField = new SDField(search.getDocument(), field.getName() + "_" + suffix, DataType.STRING); + implementationField = new SDField(schema.getDocument(), field.getName() + "_" + suffix, DataType.STRING); } implementationField.setRankType(RankType.EMPTY); implementationField.setStemming(Stemming.NONE); @@ -83,12 +83,12 @@ public abstract class Processor { String indexName = field.getName(); String implementationIndexName = indexName + "_" + suffix; Index implementationIndex = new Index(implementationIndexName); - search.addIndex(implementationIndex); + schema.addIndex(implementationIndex); if (queryCommand != null) { field.addQueryCommand(queryCommand); } - search.addExtraField(implementationField); - search.fieldSets().addBuiltInFieldSetItem(BuiltInFieldSets.INTERNAL_FIELDSET_NAME, implementationField.getName()); + schema.addExtraField(implementationField); + schema.fieldSets().addBuiltInFieldSetItem(BuiltInFieldSets.INTERNAL_FIELDSET_NAME, implementationField.getName()); return implementationField; } @@ -97,11 +97,11 @@ public abstract class Processor { * definition. */ protected Iterator<RankProfile.RankSetting> matchingRankSettingsIterator( - Search search, RankProfile.RankSetting.Type type) + Schema schema, RankProfile.RankSetting.Type type) { List<RankProfile.RankSetting> someRankSettings = new java.util.ArrayList<>(); - for (RankProfile profile : rankProfileRegistry.rankProfilesOf(search)) { + for (RankProfile profile : rankProfileRegistry.rankProfilesOf(schema)) { for (Iterator j = profile.declaredRankSettingIterator(); j.hasNext(); ) { RankProfile.RankSetting setting = (RankProfile.RankSetting)j.next(); if (setting.getType().equals(type)) { @@ -120,12 +120,12 @@ public abstract class Processor { return new IllegalArgumentException(formatError(searchName, fieldName, msg)); } - protected RuntimeException newProcessException(Search search, Field field, String msg) { - return newProcessException(search.getName(), field.getName(), msg); + protected RuntimeException newProcessException(Schema schema, Field field, String msg) { + return newProcessException(schema.getName(), field.getName(), msg); } - public void fail(Search search, Field field, String msg) { - throw newProcessException(search, field, msg); + public void fail(Schema schema, Field field, String msg) { + throw newProcessException(schema, field, msg); } protected void warn(String searchName, String fieldName, String message) { @@ -133,8 +133,8 @@ public abstract class Processor { deployLogger.logApplicationPackage(Level.WARNING, fullMsg); } - protected void warn(Search search, Field field, String message) { - warn(search.getName(), field.getName(), message); + protected void warn(Schema schema, Field field, String message) { + warn(schema.getName(), field.getName(), message); } protected void info(String searchName, String fieldName, String message) { @@ -142,8 +142,8 @@ public abstract class Processor { deployLogger.logApplicationPackage(Level.INFO, fullMsg); } - protected void info(Search search, Field field, String message) { - info(search.getName(), field.getName(), message); + protected void info(Schema schema, Field field, String message) { + info(schema.getName(), field.getName(), message); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/RankingExpressionTypeResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/RankingExpressionTypeResolver.java index e6b58cb6c12..f5c3fa35e34 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/RankingExpressionTypeResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/RankingExpressionTypeResolver.java @@ -6,7 +6,7 @@ import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.MapEvaluationTypeContext; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchlib.rankingexpression.ExpressionFunction; import com.yahoo.searchlib.rankingexpression.RankingExpression; import com.yahoo.searchlib.rankingexpression.Reference; @@ -15,7 +15,6 @@ import com.yahoo.tensor.TensorType; import com.yahoo.tensor.evaluation.TypeContext; import com.yahoo.vespa.model.container.search.QueryProfiles; -import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -36,11 +35,11 @@ public class RankingExpressionTypeResolver extends Processor { private final QueryProfileRegistry queryProfiles; - public RankingExpressionTypeResolver(Search search, + public RankingExpressionTypeResolver(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); this.queryProfiles = queryProfiles.getRegistry(); } @@ -49,12 +48,12 @@ public class RankingExpressionTypeResolver extends Processor { if (documentsOnly) return; Set<Reference> warnedAbout = new HashSet<>(); - for (RankProfile profile : rankProfileRegistry.rankProfilesOf(search)) { + for (RankProfile profile : rankProfileRegistry.rankProfilesOf(schema)) { try { resolveTypesIn(profile, validate, warnedAbout); } catch (IllegalArgumentException e) { - throw new IllegalArgumentException("In " + (search != null ? search + ", " : "") + profile, e); + throw new IllegalArgumentException("In " + (schema != null ? schema + ", " : "") + profile, e); } } } 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 698e654f1cb..ed23b1ca606 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 @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.ReferenceDataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryTransform; @@ -20,11 +20,11 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class ReferenceFieldsProcessor extends Processor { - public ReferenceFieldsProcessor(Search search, + public ReferenceFieldsProcessor(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -34,7 +34,7 @@ public class ReferenceFieldsProcessor extends Processor { } private void clearSummaryAttributeAspectForExplicitSummaryFields() { - for (DocumentSummary docSum : search.getSummaries().values()) { + for (DocumentSummary docSum : schema.getSummaries().values()) { docSum.getSummaryFields().stream() .filter(summaryField -> summaryField.getDataType() instanceof ReferenceDataType) .forEach(summaryField -> summaryField.setTransform(SummaryTransform.NONE)); @@ -42,7 +42,7 @@ public class ReferenceFieldsProcessor extends Processor { } private void clearSummaryAttributeAspectForConcreteFields() { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if (field.getDataType() instanceof ReferenceDataType) { removeFromAttributePrefetchSummaryClass(field); clearSummaryTransformOnSummaryFields(field); @@ -51,14 +51,14 @@ public class ReferenceFieldsProcessor extends Processor { } private void removeFromAttributePrefetchSummaryClass(SDField field) { - DocumentSummary summary = search.getSummary("attributeprefetch"); + DocumentSummary summary = schema.getSummary("attributeprefetch"); if (summary != null) { summary.remove(field.getName()); } } private void clearSummaryTransformOnSummaryFields(SDField field) { - search.getSummaryFields(field).values().forEach(summaryField -> summaryField.setTransform(SummaryTransform.NONE)); + schema.getSummaryFields(field).values().forEach(summaryField -> summaryField.setTransform(SummaryTransform.NONE)); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReservedDocumentNames.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReservedDocumentNames.java index e017726370f..549f53d6d8d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReservedDocumentNames.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReservedDocumentNames.java @@ -3,8 +3,8 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDDocumentType; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; import java.util.HashSet; @@ -23,17 +23,17 @@ public class ReservedDocumentNames extends Processor { } } - public ReservedDocumentNames(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public ReservedDocumentNames(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - String docName = search.getDocument().getName(); + String docName = schema.getDocument().getName(); if (RESERVED_NAMES.contains(docName)) { - throw new IllegalArgumentException("For search '" + search.getName() + "': Document name '" + docName + + throw new IllegalArgumentException("For search '" + schema.getName() + "': Document name '" + docName + "' is reserved."); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReservedFunctionNames.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReservedFunctionNames.java index d997422c8f0..8194b9f9e06 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReservedFunctionNames.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ReservedFunctionNames.java @@ -5,7 +5,7 @@ import com.google.common.collect.ImmutableSet; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchlib.rankingexpression.parser.RankingExpressionParserConstants; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -22,8 +22,8 @@ public class ReservedFunctionNames extends Processor { private static Set<String> reservedNames = getReservedNames(); - public ReservedFunctionNames(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public ReservedFunctionNames(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SearchMustHaveDocument.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SearchMustHaveDocument.java index b9ecc2e234d..a48c410fe11 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/SearchMustHaveDocument.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/SearchMustHaveDocument.java @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.vespa.model.container.search.QueryProfiles; /** @@ -14,16 +14,16 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class SearchMustHaveDocument extends Processor { - public SearchMustHaveDocument(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public SearchMustHaveDocument(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - if (search.getDocument() == null) - throw new IllegalArgumentException("For search '" + search.getName() + + if (schema.getDocument() == null) + throw new IllegalArgumentException("For search '" + schema.getName() + "': A search specification must have an equally named document inside of it."); } 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 eaab175a46e..6631258813a 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 @@ -3,9 +3,9 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.RankType; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; /** @@ -15,13 +15,13 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class SetRankTypeEmptyOnFilters extends Processor { - public SetRankTypeEmptyOnFilters(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public SetRankTypeEmptyOnFilters(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.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 f81ff184417..33e9634323b 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 @@ -3,10 +3,10 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Sorting; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; /** @@ -16,23 +16,23 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class SortingSettings extends Processor { - public SortingSettings(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public SortingSettings(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { for (Attribute attribute : field.getAttributes().values()) { Sorting sorting = attribute.getSorting(); if (sorting.getFunction() != Sorting.Function.UCA) { if (sorting.getStrength()!=null && sorting.getStrength() != Sorting.Strength.PRIMARY) { - warn(search, field, "Sort strength only works for sort function 'uca'."); + warn(schema, field, "Sort strength only works for sort function 'uca'."); } if (sorting.getLocale() != null && ! "".equals(sorting.getLocale())) { - warn(search, field, "Sort locale only works for sort function 'uca'."); + warn(schema, field, "Sort locale only works for sort 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 ea034665ae1..8c6b07515aa 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 @@ -5,28 +5,28 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.CollectionDataType; import com.yahoo.document.NumericDataType; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; import com.yahoo.vespa.model.container.search.QueryProfiles; public class StringSettingsOnNonStringFields extends Processor { - public StringSettingsOnNonStringFields(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public StringSettingsOnNonStringFields(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if ( ! doCheck(field)) continue; if (field.getMatching().isTypeUserSet()) { - warn(search, field, "Matching type " + field.getMatching().getType() + + warn(schema, field, "Matching type " + field.getMatching().getType() + " is only allowed for string fields."); } if (field.getRanking().isLiteral()) { - warn(search, field, "Rank type literal only applies to string fields"); + warn(schema, field, "Rank type literal only applies to string fields"); } } } 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 613674c5c6f..80f9a15f1e5 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 @@ -5,9 +5,9 @@ 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.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.document.WeightedSetDataType; -import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; @@ -24,26 +24,26 @@ import static com.yahoo.searchdefinition.document.ComplexAttributeFieldUtils.isC */ public class SummaryConsistency extends Processor { - public SummaryConsistency(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public SummaryConsistency(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (DocumentSummary summary : search.getSummaries().values()) { + for (DocumentSummary summary : schema.getSummaries().values()) { if (summary.getName().equals("default")) continue; for (SummaryField summaryField : summary.getSummaryFields() ) { - assertConsistency(summaryField, search, validate); - makeAttributeTransformIfAppropriate(summaryField, search); - makeAttributeCombinerTransformIfAppropriate(summaryField, search); + assertConsistency(summaryField, schema, validate); + makeAttributeTransformIfAppropriate(summaryField, schema); + makeAttributeCombinerTransformIfAppropriate(summaryField, schema); } } } - private void assertConsistency(SummaryField summaryField, Search search, boolean validate) { + private void assertConsistency(SummaryField summaryField, Schema schema, boolean validate) { // Compare to default: - SummaryField existingDefault = search.getSummary("default").getSummaryField(summaryField.getName()); + SummaryField existingDefault = schema.getSummary("default").getSummaryField(summaryField.getName()); if (existingDefault != null) { if (validate) assertConsistentTypes(existingDefault, summaryField); @@ -51,27 +51,27 @@ public class SummaryConsistency extends Processor { } else { // If no default, compare to whichever definition of the field - SummaryField existing = search.getExplicitSummaryField(summaryField.getName()); + SummaryField existing = schema.getExplicitSummaryField(summaryField.getName()); if (existing == null) return; if (validate) assertConsistentTypes(existing, summaryField); - makeConsistentOrThrow(existing, summaryField, search); + makeConsistentOrThrow(existing, summaryField, schema); } } /** If the source is an attribute, make this use the attribute transform */ - private void makeAttributeTransformIfAppropriate(SummaryField summaryField,Search search) { + private void makeAttributeTransformIfAppropriate(SummaryField summaryField, Schema schema) { if (summaryField.getTransform() != SummaryTransform.NONE) return; - Attribute attribute = search.getAttribute(summaryField.getSingleSource()); + Attribute attribute = schema.getAttribute(summaryField.getSingleSource()); if (attribute == null) return; summaryField.setTransform(SummaryTransform.ATTRIBUTE); } /** If the source is a complex field with only struct field attributes then make this use the attribute combiner transform */ - private void makeAttributeCombinerTransformIfAppropriate(SummaryField summaryField,Search search) { + private void makeAttributeCombinerTransformIfAppropriate(SummaryField summaryField, Schema schema) { if (summaryField.getTransform() == SummaryTransform.NONE) { String source_field_name = summaryField.getSingleSource(); - ImmutableSDField source = search.getField(source_field_name); + ImmutableSDField source = schema.getField(source_field_name); if (source != null && isComplexFieldWithOnlyStructFieldAttributes(source)) { summaryField.setTransform(SummaryTransform.ATTRIBUTECOMBINER); } @@ -94,9 +94,9 @@ public class SummaryConsistency extends Processor { return summaryType.equals(existingType); } - private void makeConsistentOrThrow(SummaryField field1, SummaryField field2, Search search) { + private void makeConsistentOrThrow(SummaryField field1, SummaryField field2, Schema schema) { if (field2.getTransform() == SummaryTransform.ATTRIBUTE && field1.getTransform() == SummaryTransform.NONE) { - Attribute attribute = search.getAttribute(field1.getName()); + Attribute attribute = schema.getAttribute(field1.getName()); if (attribute != null) { field1.setTransform(SummaryTransform.ATTRIBUTE); } 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 4ae624d2c35..4bc553b1669 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 @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.searchdefinition.derived.SummaryClass; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.documentmodel.DocumentSummary; @@ -23,11 +23,11 @@ import static com.yahoo.searchdefinition.document.ComplexAttributeFieldUtils.isC */ public class SummaryDiskAccessValidator extends Processor { - public SummaryDiskAccessValidator(Search search, + public SummaryDiskAccessValidator(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @@ -36,12 +36,12 @@ public class SummaryDiskAccessValidator extends Processor { if ( ! validate) return; if (documentsOnly) return; - for (DocumentSummary summary : search.getSummaries().values()) { + for (DocumentSummary summary : schema.getSummaries().values()) { for (SummaryField summaryField : summary.getSummaryFields()) { for (SummaryField.Source source : summaryField.getSources()) { - ImmutableSDField field = search.getField(source.getName()); + ImmutableSDField field = schema.getField(source.getName()); if (field == null) - field = findFieldProducingSummaryField(source.getName(), search).orElse(null); + field = findFieldProducingSummaryField(source.getName(), schema).orElse(null); if (field == null && ! source.getName().equals(SummaryClass.DOCUMENT_ID_FIELD)) throw new IllegalArgumentException(summaryField + " in " + summary + " references " + source + ", but this field does not exist"); @@ -66,8 +66,8 @@ public class SummaryDiskAccessValidator extends Processor { return field.doesAttributing(); } - private Optional<ImmutableSDField> findFieldProducingSummaryField(String name, Search search) { - return search.allFields().filter(field -> field.getSummaryFields().get(name) != null).findAny(); + private Optional<ImmutableSDField> findFieldProducingSummaryField(String name, Schema schema) { + return schema.allFields().filter(field -> field.getSummaryFields().get(name) != null).findAny(); } } 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 a9bd57705f8..c350c6800ed 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 @@ -5,7 +5,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.*; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.documentmodel.SummaryTransform; @@ -21,15 +21,15 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class SummaryDynamicStructsArrays extends Processor { - public SummaryDynamicStructsArrays(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public SummaryDynamicStructsArrays(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { DataType type = field.getDataType(); if (type instanceof ArrayDataType || type instanceof WeightedSetDataType || type instanceof StructDataType) { for (SummaryField sField : field.getSummaryFields().values()) { 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 3ebfa629895..6d55a52f959 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 @@ -3,7 +3,7 @@ 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.Schema; import com.yahoo.searchdefinition.derived.SummaryClass; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; @@ -17,15 +17,15 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class SummaryFieldsMustHaveValidSource extends Processor { - SummaryFieldsMustHaveValidSource(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + SummaryFieldsMustHaveValidSource(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - for (DocumentSummary summary : search.getSummaries().values()) { + for (DocumentSummary summary : schema.getSummaries().values()) { for (SummaryField summaryField : summary.getSummaryFields()) { if (summaryField.getSources().isEmpty()) { if ((summaryField.getTransform() != SummaryTransform.RANKFEATURES) && @@ -56,7 +56,7 @@ public class SummaryFieldsMustHaveValidSource extends Processor { private void verifySource(String source, SummaryField summaryField, DocumentSummary summary) { if ( ! isValid(source, summaryField, summary) ) { - throw new IllegalArgumentException("For search '" + search.getName() + "', summary class '" + + throw new IllegalArgumentException("For search '" + schema.getName() + "', summary class '" + summary.getName() + "'," + " summary field '" + summaryField.getName() + "': there is no valid source '" + source + "'."); } @@ -71,11 +71,11 @@ public class SummaryFieldsMustHaveValidSource extends Processor { } private boolean isDocumentField(String name) { - return search.getField(name) != null; + return schema.getField(name) != null; } private boolean isSummaryField(String name) { - return search.getSummaryField(name) != null; + return schema.getSummaryField(name) != null; } } 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 b7febdd73b1..6a51cd649b6 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 @@ -7,7 +7,7 @@ import java.util.Map; import com.yahoo.collections.Pair; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.documentmodel.SummaryField.Source; @@ -21,8 +21,8 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class SummaryNamesFieldCollisions extends Processor { - public SummaryNamesFieldCollisions(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public SummaryNamesFieldCollisions(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -30,7 +30,7 @@ public class SummaryNamesFieldCollisions extends Processor { if ( ! validate) return; Map<String, Pair<String, String>> fieldToClassAndSource = new HashMap<>(); - for (DocumentSummary summary : search.getSummaries().values()) { + for (DocumentSummary summary : schema.getSummaries().values()) { if ("default".equals(summary.getName())) continue; for (SummaryField summaryField : summary.getSummaryFields() ) { if (summaryField.isImplicit()) continue; @@ -41,12 +41,12 @@ public class SummaryNamesFieldCollisions extends Processor { String prevSource = prevClassAndSource.getSecond(); if ( ! prevClass.equals(summary.getName())) { if ( ! prevSource.equals(source.getName())) { - throw new IllegalArgumentException("For search '"+ search.getName() + - "', summary class '" + summary.getName()+"'," + - " summary field '" + summaryField.getName() + "':" + - " Can not use source '" + source.getName() + + throw new IllegalArgumentException("For search '" + schema.getName() + + "', summary class '" + summary.getName() + "'," + + " summary field '" + summaryField.getName() + "':" + + " Can not use source '" + source.getName() + "' for this summary field, an equally named field in summary class '" + - prevClass + "' uses a different source: '"+prevSource+"'."); + prevClass + "' uses a different source: '" + prevSource + "'."); } } } else { 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 57deb82854a..8cebfc89458 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 @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.*; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.RankType; import com.yahoo.searchdefinition.document.SDField; @@ -17,16 +17,16 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class TagType extends Processor { - public TagType(Search search, + public TagType(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.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 32fefc6d489..a253076f320 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 @@ -5,7 +5,7 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.CollectionDataType; import com.yahoo.document.TensorDataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.HnswIndexParams; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.SDField; @@ -18,13 +18,13 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class TensorFieldProcessor extends Processor { - public TensorFieldProcessor(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public TensorFieldProcessor(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (var field : search.allConcreteFields()) { + for (var field : schema.allConcreteFields()) { if ( field.getDataType() instanceof TensorDataType ) { if (validate) { validateIndexingScripsForTensorField(field); @@ -43,8 +43,8 @@ public class TensorFieldProcessor extends Processor { private void validateIndexingScripsForTensorField(SDField field) { if (field.doesIndexing() && !isTensorTypeThatSupportsHnswIndex(field)) { - fail(search, field, "A tensor of type '" + tensorTypeToString(field) + "' does not support having an 'index'. " + - "Currently, only tensors with 1 indexed dimension supports that."); + fail(schema, field, "A tensor of type '" + tensorTypeToString(field) + "' does not support having an 'index'. " + + "Currently, only tensors with 1 indexed dimension supports that."); } } @@ -79,7 +79,7 @@ public class TensorFieldProcessor extends Processor { var attribute = field.getAttributes().get(field.getName()); if (attribute != null && attribute.isFastSearch()) { if (! isTensorTypeThatSupportsDirectStore(field)) { - fail(search, field, "An attribute of type 'tensor' cannot be 'fast-search'."); + fail(schema, field, "An attribute of type 'tensor' cannot be 'fast-search'."); } } } @@ -88,7 +88,7 @@ public class TensorFieldProcessor extends Processor { private void validateHnswIndexParametersRequiresIndexing(SDField field) { var index = field.getIndex(field.getName()); if (index != null && index.getHnswIndexParams().isPresent() && !field.doesIndexing()) { - fail(search, field, "A tensor that specifies hnsw index parameters must also specify 'index' in 'indexing'"); + fail(schema, field, "A tensor that specifies hnsw index parameters must also specify 'index' in 'indexing'"); } } @@ -98,7 +98,7 @@ public class TensorFieldProcessor extends Processor { } if (isTensorTypeThatSupportsHnswIndex(field)) { if (validate && !field.doesAttributing()) { - fail(search, field, "A tensor that has an index must also be an attribute."); + fail(schema, field, "A tensor that has an index must also be an attribute."); } var index = field.getIndex(field.getName()); // TODO: Calculate default params based on tensor dimension size @@ -112,7 +112,7 @@ public class TensorFieldProcessor extends Processor { private void validateDataTypeForCollectionField(SDField field) { if (((CollectionDataType)field.getDataType()).getNestedType() instanceof TensorDataType) - fail(search, field, "A field with collection type of tensor is not supported. Use simple type 'tensor' instead."); + fail(schema, field, "A field with collection type of tensor is not supported. Use simple type 'tensor' instead."); } } 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 c1c18a552ab..a8065ec4bb5 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 @@ -5,7 +5,7 @@ import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.document.CollectionDataType; import com.yahoo.document.DataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Stemming; @@ -29,13 +29,13 @@ import java.util.TreeSet; */ public class TextMatch extends Processor { - public TextMatch(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public TextMatch(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if (field.getMatching().getType() != Matching.Type.TEXT) continue; ScriptExpression script = field.getIndexingScript(); @@ -49,7 +49,7 @@ public class TextMatch extends Processor { Set<String> dynamicSummary = new TreeSet<>(); Set<String> staticSummary = new TreeSet<>(); - new IndexingOutputs(search, deployLogger, rankProfileRegistry, queryProfiles).findSummaryTo(search, + new IndexingOutputs(schema, deployLogger, rankProfileRegistry, queryProfiles).findSummaryTo(schema, field, dynamicSummary, staticSummary); @@ -57,16 +57,16 @@ public class TextMatch extends Processor { visitor.visit(script); if ( ! visitor.requiresTokenize) continue; - ExpressionConverter converter = new MyStringTokenizer(search, findAnnotatorConfig(search, field)); + ExpressionConverter converter = new MyStringTokenizer(schema, findAnnotatorConfig(schema, field)); field.setIndexingScript((ScriptExpression)converter.convert(script)); } } - private AnnotatorConfig findAnnotatorConfig(Search search, SDField field) { + private AnnotatorConfig findAnnotatorConfig(Schema schema, SDField field) { AnnotatorConfig ret = new AnnotatorConfig(); Stemming activeStemming = field.getStemming(); if (activeStemming == null) { - activeStemming = search.getStemming(); + activeStemming = schema.getStemming(); } ret.setStemMode(activeStemming.toStemMode()); ret.setRemoveAccents(field.getNormalizing().doRemoveAccents()); @@ -103,8 +103,8 @@ public class TextMatch extends Processor { final AnnotatorConfig annotatorCfg; - MyStringTokenizer(Search search, AnnotatorConfig annotatorCfg) { - super(TokenizeExpression.class, search); + MyStringTokenizer(Schema schema, AnnotatorConfig annotatorCfg) { + super(TokenizeExpression.class, schema); this.annotatorCfg = annotatorCfg; } 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 e309a459a67..d6fdb901ab7 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 @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.document.DataType; import com.yahoo.document.Field; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.vespa.indexinglanguage.ValueTransformProvider; import com.yahoo.vespa.indexinglanguage.expressions.*; @@ -13,12 +13,12 @@ import com.yahoo.vespa.indexinglanguage.expressions.*; */ public abstract class TypedTransformProvider extends ValueTransformProvider { - private final Search search; + private final Schema schema; private DataType fieldType; - TypedTransformProvider(Class<? extends Expression> transformClass, Search search) { + TypedTransformProvider(Class<? extends Expression> transformClass, Schema schema) { super(transformClass); - this.search = search; + this.schema = schema; } @Override @@ -26,19 +26,19 @@ public abstract class TypedTransformProvider extends ValueTransformProvider { if (exp instanceof OutputExpression) { String fieldName = ((OutputExpression)exp).getFieldName(); if (exp instanceof AttributeExpression) { - Attribute attribute = search.getAttribute(fieldName); + Attribute attribute = schema.getAttribute(fieldName); if (attribute == null) throw new IllegalArgumentException("Attribute '" + fieldName + "' not found."); fieldType = attribute.getDataType(); } else if (exp instanceof IndexExpression) { - Field field = search.getConcreteField(fieldName); + Field field = schema.getConcreteField(fieldName); if (field == null) throw new IllegalArgumentException("Index field '" + fieldName + "' not found."); fieldType = field.getDataType(); } else if (exp instanceof SummaryExpression) { - Field field = search.getSummaryField(fieldName); + Field field = schema.getSummaryField(fieldName); if (field == null) throw new IllegalArgumentException("Summary field '" + fieldName + "' not found."); fieldType = field.getDataType(); 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 224d7593631..84dc6d369fc 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 @@ -7,7 +7,7 @@ import com.yahoo.document.CollectionDataType; import com.yahoo.document.DataType; import com.yahoo.document.WeightedSetDataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Stemming; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -23,29 +23,29 @@ public class UriHack extends Processor { private static final List<String> URL_SUFFIX = Arrays.asList("scheme", "host", "port", "path", "query", "fragment", "hostname"); - UriHack(Search search, - DeployLogger deployLogger, - RankProfileRegistry rankProfileRegistry, - QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + UriHack(Schema schema, + DeployLogger deployLogger, + RankProfileRegistry rankProfileRegistry, + QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if (field.doesIndexing()) { DataType fieldType = field.getDataType(); if (fieldType instanceof CollectionDataType) { fieldType = ((CollectionDataType)fieldType).getNestedType(); } if (fieldType == DataType.URI) { - processField(search, field); + processField(schema, field); } } } } - private void processField(Search search, SDField uriField) { + private void processField(Schema schema, SDField uriField) { String uriName = uriField.getName(); uriField.setStemming(Stemming.NONE); DataType generatedType = DataType.STRING; @@ -69,8 +69,8 @@ public class UriHack extends Processor { if (uriField.getIndex(suffix) != null) { partField.addIndex(uriField.getIndex(suffix)); } - search.addExtraField(partField); - search.fieldSets().addBuiltInFieldSetItem(BuiltInFieldSets.INTERNAL_FIELDSET_NAME, partField.getName()); + schema.addExtraField(partField); + schema.fieldSets().addBuiltInFieldSetItem(BuiltInFieldSets.INTERNAL_FIELDSET_NAME, partField.getName()); } } 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 f059785057b..72f903f8365 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 @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.DataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -13,19 +13,19 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class UrlFieldValidator extends Processor { - public UrlFieldValidator(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public UrlFieldValidator(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - for (ImmutableSDField field : search.allConcreteFields()) { + for (ImmutableSDField field : schema.allConcreteFields()) { if ( ! field.getDataType().equals(DataType.URI)) continue; if (field.doesAttributing()) - throw new IllegalArgumentException("Error in " + field + " in " + search + ": " + + throw new IllegalArgumentException("Error in " + field + " in " + schema + ": " + "uri type fields cannot be attributes"); } 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 923726b7696..0d4bfd09677 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 @@ -5,7 +5,7 @@ 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.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; @@ -23,22 +23,22 @@ import java.util.Map; */ public class ValidateFieldTypes extends Processor { - public ValidateFieldTypes(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public ValidateFieldTypes(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if (!validate) return; - String searchName = search.getName(); + String searchName = schema.getName(); Map<String, DataType> seenFields = new HashMap<>(); verifySearchAndDocFields(searchName, seenFields); verifySummaryFields(searchName, seenFields); } final protected void verifySearchAndDocFields(String searchName, Map<String, DataType> seenFields) { - search.allFields().forEach(field -> { + schema.allFields().forEach(field -> { 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); @@ -47,7 +47,7 @@ public class ValidateFieldTypes extends Processor { } final protected void verifySummaryFields(String searchName, Map<String, DataType> seenFields) { - for (DocumentSummary summary : search.getSummaries().values()) { + for (DocumentSummary summary : schema.getSummaries().values()) { for (SummaryField field : summary.getSummaryFields()) { checkFieldType(searchName, "summary field", field.getName(), field.getDataType(), seenFields); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesDocumentsOnly.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesDocumentsOnly.java index 334e2f8c340..e8b218a80ad 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesDocumentsOnly.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesDocumentsOnly.java @@ -4,22 +4,22 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.document.DataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.model.container.search.QueryProfiles; import java.util.HashMap; import java.util.Map; public class ValidateFieldTypesDocumentsOnly extends ValidateFieldTypes { - public ValidateFieldTypesDocumentsOnly(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public ValidateFieldTypesDocumentsOnly(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override public void process(boolean validate, boolean documentsOnly) { if ( ! validate) return; - String searchName = search.getName(); + String searchName = schema.getName(); Map<String, DataType> seenFields = new HashMap<>(); verifySearchAndDocFields(searchName, 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 2a14616e5e7..268a9f27b3c 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 @@ -3,11 +3,10 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.Ranking; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.model.container.search.QueryProfiles; /** @@ -17,8 +16,8 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class ValidateFieldWithIndexSettingsCreatesIndex extends Processor { - public ValidateFieldWithIndexSettingsCreatesIndex(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public ValidateFieldWithIndexSettingsCreatesIndex(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -27,15 +26,15 @@ public class ValidateFieldWithIndexSettingsCreatesIndex extends Processor { Matching defaultMatching = new Matching(); Ranking defaultRanking = new Ranking(); - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { if (field.doesIndexing()) continue; if (field.doesAttributing()) continue; if ( ! field.getRanking().equals(defaultRanking)) - fail(search, field, + fail(schema, field, "Fields which are not creating an index or attribute can not contain rank settings."); if ( ! field.getMatching().equals(defaultMatching)) - fail(search, field, + fail(schema, field, "Fields which are not creating an index or attribute can not contain match settings."); } } 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 0d8045705b7..c4989604457 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 @@ -6,7 +6,7 @@ import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Stemming; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.model.container.search.QueryProfiles; /** @@ -21,12 +21,12 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; */ public class WordMatch extends Processor { - public WordMatch(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public WordMatch(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } public void process(boolean validate, boolean documentsOnly) { - for (SDField field : search.allConcreteFields()) { + for (SDField field : schema.allConcreteFields()) { processFieldRecursive(field); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/IndexCommandResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/IndexCommandResolver.java index c9ee6425f97..56926436545 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/IndexCommandResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/IndexCommandResolver.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing.multifieldresolver; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import java.util.ArrayList; import java.util.Arrays; @@ -28,8 +28,8 @@ public class IndexCommandResolver extends MultiFieldResolver { harmonizedCommands.addAll(Arrays.asList(harmonize)); } - public IndexCommandResolver(String indexName, List<SDField> fields, Search search, DeployLogger logger) { - super(indexName, fields, search, logger); + public IndexCommandResolver(String indexName, List<SDField> fields, Schema schema, DeployLogger logger) { + super(indexName, fields, schema, logger); } /** diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/MultiFieldResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/MultiFieldResolver.java index c27fe7d875d..80bb4faeaa5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/MultiFieldResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/MultiFieldResolver.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing.multifieldresolver; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import java.util.List; /** @@ -13,14 +13,14 @@ public abstract class MultiFieldResolver { protected String indexName; protected List<SDField> fields; - protected Search search; + protected Schema schema; protected DeployLogger deployLogger; - public MultiFieldResolver(String indexName, List<SDField> fields, Search search, DeployLogger logger) { + public MultiFieldResolver(String indexName, List<SDField> fields, Schema schema, DeployLogger logger) { this.indexName = indexName; this.fields = fields; - this.search = search; + this.schema = schema; this.deployLogger = logger; } 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 34f60116aa8..260d76c8ca3 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 @@ -9,7 +9,7 @@ import com.yahoo.search.query.profile.types.TensorFieldType; import com.yahoo.searchdefinition.FeatureNames; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.ImportedField; @@ -29,8 +29,8 @@ import java.util.Optional; */ public class RankProfileTypeSettingsProcessor extends Processor { - public RankProfileTypeSettingsProcessor(Search search, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { - super(search, deployLogger, rankProfileRegistry, queryProfiles); + public RankProfileTypeSettingsProcessor(Schema schema, DeployLogger deployLogger, RankProfileRegistry rankProfileRegistry, QueryProfiles queryProfiles) { + super(schema, deployLogger, rankProfileRegistry, queryProfiles); } @Override @@ -43,8 +43,8 @@ public class RankProfileTypeSettingsProcessor extends Processor { } private void processAttributeFields() { - if (search == null) return; // we're processing global profiles - for (ImmutableSDField field : search.allConcreteFields()) { + if (schema == null) return; // we're processing global profiles + for (ImmutableSDField field : schema.allConcreteFields()) { Attribute attribute = field.getAttributes().get(field.getName()); if (attribute != null && attribute.tensorType().isPresent()) { addAttributeTypeToRankProfiles(attribute.getName(), attribute.tensorType().get().toString()); @@ -53,8 +53,8 @@ public class RankProfileTypeSettingsProcessor extends Processor { } private void processImportedFields() { - if (search == null) return; // we're processing global profiles - Optional<ImportedFields> importedFields = search.importedFields(); + if (schema == null) return; // we're processing global profiles + Optional<ImportedFields> importedFields = schema.importedFields(); if (importedFields.isPresent()) { importedFields.get().fields().forEach((fieldName, field) -> processImportedField(field)); } @@ -69,7 +69,7 @@ public class RankProfileTypeSettingsProcessor extends Processor { } private void addAttributeTypeToRankProfiles(String attributeName, String attributeType) { - for (RankProfile profile : rankProfileRegistry.rankProfilesOf(search)) { + for (RankProfile profile : rankProfileRegistry.rankProfilesOf(schema)) { profile.addAttributeType(attributeName, attributeType); } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankTypeResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankTypeResolver.java index 89acda469b7..231a97f30ec 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankTypeResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankTypeResolver.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing.multifieldresolver; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.document.RankType; import com.yahoo.searchdefinition.document.SDField; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import java.util.List; import java.util.logging.Level; @@ -18,8 +18,8 @@ import java.util.logging.Level; */ public class RankTypeResolver extends MultiFieldResolver { - public RankTypeResolver(String indexName, List<SDField> fields, Search search, DeployLogger logger) { - super(indexName, fields, search, logger); + public RankTypeResolver(String indexName, List<SDField> fields, Schema schema, DeployLogger logger) { + super(indexName, fields, schema, logger); } public void resolve() { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/StemmingResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/StemmingResolver.java index 72942d651d0..1bcf646c8ec 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/StemmingResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/StemmingResolver.java @@ -2,7 +2,7 @@ package com.yahoo.searchdefinition.processing.multifieldresolver; import com.yahoo.config.application.api.DeployLogger; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.Stemming; @@ -15,8 +15,8 @@ import java.util.logging.Level; */ public class StemmingResolver extends MultiFieldResolver { - public StemmingResolver(String indexName, List<SDField> fields, Search search, DeployLogger logger) { - super(indexName, fields, search, logger); + public StemmingResolver(String indexName, List<SDField> fields, Schema schema, DeployLogger logger) { + super(indexName, fields, schema, logger); } @Override @@ -29,13 +29,13 @@ public class StemmingResolver extends MultiFieldResolver { SDField stemmingField = null; for (SDField field : fields) { if (stemming == null && stemmingField==null) { - stemming = field.getStemming(search); + stemming = field.getStemming(schema); stemmingField = field; - } else if (stemming != field.getStemming(search)) { - deployLogger.logApplicationPackage(Level.WARNING, "Field '" + field.getName() + "' has " + field.getStemming(search) + - ", whereas field '" + stemmingField.getName() + "' has " + stemming + - ". All fields indexing to the index '" + indexName + "' must have the same stemming." + - " This should be corrected as it will make indexing fail in a few cases."); + } else if (stemming != field.getStemming(schema)) { + deployLogger.logApplicationPackage(Level.WARNING, "Field '" + field.getName() + "' has " + field.getStemming(schema) + + ", whereas field '" + stemmingField.getName() + "' has " + stemming + + ". All fields indexing to the index '" + indexName + "' must have the same stemming." + + " This should be corrected as it will make indexing fail in a few cases."); } } } diff --git a/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java b/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java index 67e26a899bd..e0f0178cee3 100644 --- a/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java +++ b/config-model/src/main/java/com/yahoo/vespa/documentmodel/DocumentSummary.java @@ -2,7 +2,7 @@ package com.yahoo.vespa.documentmodel; import com.yahoo.config.application.api.DeployLogger; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import java.util.ArrayList; import java.util.Collection; @@ -21,10 +21,10 @@ public class DocumentSummary extends FieldView { private boolean omitSummaryFeatures = false; private String inherited; - private final Search owner; + private final Schema owner; /** Creates a DocumentSummary with the given name. */ - public DocumentSummary(String name, Search owner) { + public DocumentSummary(String name, Schema owner) { super(name); this.owner = owner; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexAttributeFieldsValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexAttributeFieldsValidator.java index cb9472568e5..43bf8133c74 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexAttributeFieldsValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexAttributeFieldsValidator.java @@ -4,7 +4,7 @@ package com.yahoo.vespa.model.application.validation; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.document.DataType; import com.yahoo.document.PositionDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ComplexAttributeFieldUtils; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.model.VespaModel; @@ -39,18 +39,18 @@ public class ComplexAttributeFieldsValidator extends Validator { } } - private static void validateComplexFields(String clusterName, Search search) { - String unsupportedFields = search.allFields() - .filter(field -> isUnsupportedComplexField(field)) - .map(ComplexAttributeFieldsValidator::toString) - .collect(Collectors.joining(", ")); + private static void validateComplexFields(String clusterName, Schema schema) { + String unsupportedFields = schema.allFields() + .filter(field -> isUnsupportedComplexField(field)) + .map(ComplexAttributeFieldsValidator::toString) + .collect(Collectors.joining(", ")); if (!unsupportedFields.isEmpty()) { throw new IllegalArgumentException( String.format("For cluster '%s', search '%s': The following complex fields do not support using struct field attributes: %s. " + "Only supported for the following complex field types: array or map of struct with primitive types, map of primitive types. " + "The supported primitive types are: byte, int, long, float, double and string", - clusterName, search.getName(), unsupportedFields)); + clusterName, schema.getName(), unsupportedFields)); } } 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 c8558b70b6e..25085683ca6 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 @@ -2,10 +2,10 @@ package com.yahoo.vespa.model.application.validation; import com.yahoo.config.model.deploy.DeployState; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.derived.DerivedConfiguration; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.search.AbstractSearchCluster; @@ -28,16 +28,16 @@ public class NoPrefixForIndexes extends Validator { IndexedSearchCluster sc = (IndexedSearchCluster) cluster; for (DocumentDatabase docDb : sc.getDocumentDbs()) { DerivedConfiguration sdConfig = docDb.getDerivedConfiguration(); - Search search = sdConfig.getSearch(); - for (ImmutableSDField field : search.allConcreteFields()) { + Schema schema = sdConfig.getSearch(); + for (ImmutableSDField field : schema.allConcreteFields()) { if (field.doesIndexing()) { //if (!field.getIndexTo().isEmpty() && !field.getIndexTo().contains(field.getName())) continue; if (field.getMatching().getAlgorithm().equals(Matching.Algorithm.PREFIX)) { - failField(search, field); + failField(schema, field); } for (Map.Entry<String, Index> e : field.getIndices().entrySet()) { if (e.getValue().isPrefix()) { - failField(search, field); + failField(schema, field); } } } @@ -47,8 +47,8 @@ public class NoPrefixForIndexes extends Validator { } } - private void failField(Search search, ImmutableSDField field) { - throw new IllegalArgumentException("For search '" + search.getName() + "', field '" + field.getName() + + private void failField(Schema schema, ImmutableSDField field) { + throw new IllegalArgumentException("For search '" + schema.getName() + "', field '" + field.getName() + "': match/index:prefix is not supported for indexes."); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeMessageBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeMessageBuilder.java index ba776bb13a1..ce8347b66c1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeMessageBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/search/IndexingScriptChangeMessageBuilder.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.application.validation.change.search; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.document.NormalizeLevel; @@ -18,16 +18,16 @@ import com.yahoo.vespa.documentmodel.SummaryTransform; */ public class IndexingScriptChangeMessageBuilder { - private final Search currentSearch; + private final Schema currentSchema; private final ImmutableSDField currentField; - private final Search nextSearch; + private final Schema nextSchema; private final ImmutableSDField nextField; - public IndexingScriptChangeMessageBuilder(Search currentSearch, ImmutableSDField currentField, - Search nextSearch, ImmutableSDField nextField) { - this.currentSearch = currentSearch; + public IndexingScriptChangeMessageBuilder(Schema currentSchema, ImmutableSDField currentField, + Schema nextSchema, ImmutableSDField nextField) { + this.currentSchema = currentSchema; this.currentField = currentField; - this.nextSearch = nextSearch; + this.nextSchema = nextSchema; this.nextField = nextField; } @@ -55,8 +55,8 @@ public class IndexingScriptChangeMessageBuilder { } private void checkStemming(ChangeMessageBuilder builder) { - Stemming currentStemming = currentField.getStemming(currentSearch); - Stemming nextStemming = nextField.getStemming(nextSearch); + Stemming currentStemming = currentField.getStemming(currentSchema); + Stemming nextStemming = nextField.getStemming(nextSchema); if (!currentStemming.equals(nextStemming)) { builder.addChange("stemming", currentStemming.getName(), nextStemming.getName()); } 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 699a63cdd9f..e64a3d44bba 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 @@ -3,7 +3,7 @@ package com.yahoo.vespa.model.application.validation.change.search; import com.yahoo.config.application.api.ValidationId; import com.yahoo.config.provision.ClusterSpec; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.vespa.indexinglanguage.ExpressionConverter; import com.yahoo.vespa.indexinglanguage.expressions.Expression; @@ -25,20 +25,20 @@ import java.util.Optional; public class IndexingScriptChangeValidator { private final ClusterSpec.Id id; - private final Search currentSearch; - private final Search nextSearch; + private final Schema currentSchema; + private final Schema nextSchema; - public IndexingScriptChangeValidator(ClusterSpec.Id id, Search currentSearch, Search nextSearch) { + public IndexingScriptChangeValidator(ClusterSpec.Id id, Schema currentSchema, Schema nextSchema) { this.id = id; - this.currentSearch = currentSearch; - this.nextSearch = nextSearch; + this.currentSchema = currentSchema; + this.nextSchema = nextSchema; } public List<VespaConfigChangeAction> validate() { List<VespaConfigChangeAction> result = new ArrayList<>(); - for (ImmutableSDField nextField : new LinkedHashSet<>(nextSearch.allConcreteFields())) { + for (ImmutableSDField nextField : new LinkedHashSet<>(nextSchema.allConcreteFields())) { String fieldName = nextField.getName(); - ImmutableSDField currentField = currentSearch.getConcreteField(fieldName); + ImmutableSDField currentField = currentSchema.getConcreteField(fieldName); if (currentField != null) { validateScripts(currentField, nextField).ifPresent(r -> result.add(r)); } @@ -57,7 +57,7 @@ public class IndexingScriptChangeValidator { ScriptExpression nextScript = nextField.getIndexingScript(); if ( ! equalScripts(currentScript, nextScript)) { ChangeMessageBuilder messageBuilder = new ChangeMessageBuilder(nextField.getName()); - new IndexingScriptChangeMessageBuilder(currentSearch, currentField, nextSearch, nextField).populate(messageBuilder); + new IndexingScriptChangeMessageBuilder(currentSchema, currentField, nextSchema, nextField).populate(messageBuilder); messageBuilder.addChange("indexing script", currentScript.toString(), nextScript.toString()); return Optional.of(VespaReindexAction.of(id, ValidationId.indexingChange, messageBuilder.build())); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java index 28682e92f37..a68993be543 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java @@ -5,7 +5,8 @@ import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig; import com.yahoo.search.config.IndexInfoConfig; -import com.yahoo.searchdefinition.DocumentOnlySearch; +import com.yahoo.searchdefinition.DocumentOnlySchema; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.DerivedConfiguration; import com.yahoo.vespa.config.search.AttributesConfig; import com.yahoo.vespa.config.search.DispatchConfig; @@ -195,10 +196,10 @@ public class IndexedSearchCluster extends SearchCluster @Override protected void deriveAllSchemas(List<SchemaSpec> localSearches, DeployState deployState) { for (SchemaSpec spec : localSearches) { - com.yahoo.searchdefinition.Search search = spec.getSearchDefinition().getSearch(); - if ( ! (search instanceof DocumentOnlySearch)) { - DocumentDatabase db = new DocumentDatabase(this, search.getName(), - new DerivedConfiguration(search, + Schema schema = spec.getSearchDefinition().getSearch(); + if ( ! (schema instanceof DocumentOnlySchema)) { + DocumentDatabase db = new DocumentDatabase(this, schema.getName(), + new DerivedConfiguration(schema, deployState.getDeployLogger(), deployState.getProperties(), deployState.rankProfileRegistry(), diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/NamedSchema.java b/config-model/src/main/java/com/yahoo/vespa/model/search/NamedSchema.java index 06f8198151f..334493b4a92 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/NamedSchema.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/NamedSchema.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.search; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import java.util.Collection; @@ -11,22 +11,22 @@ import java.util.Collection; // TODO: This class is quite pointless public class NamedSchema { - private final Search search; + private final Schema schema; private final String name; public static final String fileNameSuffix = ".sd"; - public Search getSearch() { - return search; + public Schema getSearch() { + return schema; } public String getName() { return name; } - public NamedSchema(String name, Search search) { + public NamedSchema(String name, Schema schema) { this.name = name; - this.search = search; + this.schema = schema; } //Find search definition from a collection with the name specified diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java index 8dc711f50f6..a9f9102c11a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.model.search; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.AttributeFields; import com.yahoo.searchdefinition.derived.DerivedConfiguration; import com.yahoo.vespa.config.search.AttributesConfig; @@ -89,11 +90,11 @@ public class StreamingSearchCluster extends SearchCluster implements throw new IllegalStateException("Logical indexes are not supported: Got " + local.size() + " search definitions, expected 1"); } } - private void deriveSingleSearchDefinition(com.yahoo.searchdefinition.Search localSearch, DeployState deployState) { - if (!localSearch.getName().equals(docTypeName)) { - throw new IllegalStateException("Mismatch between document type name (" + docTypeName + ") and name of search definition (" + localSearch.getName() + ")"); + private void deriveSingleSearchDefinition(Schema localSchema, DeployState deployState) { + if (!localSchema.getName().equals(docTypeName)) { + throw new IllegalStateException("Mismatch between document type name (" + docTypeName + ") and name of search definition (" + localSchema.getName() + ")"); } - this.sdConfig = new DerivedConfiguration(localSearch, deployState.getDeployLogger(), + this.sdConfig = new DerivedConfiguration(localSchema, deployState.getDeployLogger(), deployState.getProperties(), deployState.rankProfileRegistry(), deployState.getQueryProfiles().getRegistry(), diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj index f2b94991145..bfab2138b92 100644 --- a/config-model/src/main/javacc/SDParser.jj +++ b/config-model/src/main/javacc/SDParser.jj @@ -41,8 +41,8 @@ import com.yahoo.searchdefinition.DefaultRankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.RankProfile.MatchPhaseSettings; import com.yahoo.searchdefinition.RankProfile.DiversitySettings; -import com.yahoo.searchdefinition.Search; -import com.yahoo.searchdefinition.DocumentOnlySearch; +import com.yahoo.searchdefinition.Schema; +import com.yahoo.searchdefinition.DocumentOnlySchema; import com.yahoo.searchdefinition.UnrankedRankProfile; import com.yahoo.searchdefinition.fieldoperation.*; import com.yahoo.searchlib.rankingexpression.FeatureList; @@ -70,11 +70,11 @@ import java.util.LinkedHashMap; import java.util.logging.Level; /** - * A search definition parser + * The schema parser * * @author bratseth */ - @SuppressWarnings("deprecation") +@SuppressWarnings("deprecation") public class SDParser { private DocumentTypeManager docMan = null; @@ -88,7 +88,7 @@ public class SDParser { /** * Creates a parser * - * @param documentsOnly true to only parse the document aspect of a search definition (e.g skip rank profiles) + * @param documentsOnly true to only parse the document aspect of a schema (e.g skip rank profiles) */ public SDParser(SimpleCharStream stream, FileRegistry fileRegistry, @@ -413,20 +413,20 @@ SPECIAL_TOKEN : // -------------------------------------------------------------------------------- /** - * The rule consumes any search definition and returns the corresponding object. This is the only production that should + * The rule consumes any schema and returns the corresponding object. This is the only production that should * ever consume leading newlines. * - * @param dir The directory containing the file being parsed. - * @return The search definition object. + * @param dir the directory containing the file being parsed + * @return the schema object */ -Search search(DocumentTypeManager docMan, String dir) : +Schema schema(DocumentTypeManager docMan, String dir) : { this.docMan = docMan; - Search search; + Schema schema; } { - (<NL>)* (search = rootSchema(dir) | search = rootDocument(dir)) - { return search; } + (<NL>)* (schema = rootSchema(dir) | schema = rootDocument(dir)) + { return schema; } } /** @@ -436,44 +436,44 @@ Search search(DocumentTypeManager docMan, String dir) : * @param dir the directory containing the file being parsed. * @return the schema definition object. */ -Search rootSchema(String dir) : +Schema rootSchema(String dir) : { String name; String inherited = null; - Search search; + Schema schema; } { ( ( <SCHEMA> | <SEARCH> ) name = identifier() (<INHERITS> inherited = identifier() )? { - search = new Search(name, Optional.ofNullable(inherited), application, fileRegistry, deployLogger, properties); - rankProfileRegistry.add(new DefaultRankProfile(search, rankProfileRegistry, search.rankingConstants())); - rankProfileRegistry.add(new UnrankedRankProfile(search, rankProfileRegistry, search.rankingConstants()));} - lbrace() (rootSchemaItem(search) (<NL>)*)* <RBRACE> (<NL>)* <EOF>) - { return search; } + schema = new Schema(name, Optional.ofNullable(inherited), application, fileRegistry, deployLogger, properties); + rankProfileRegistry.add(new DefaultRankProfile(schema, rankProfileRegistry, schema.rankingConstants())); + rankProfileRegistry.add(new UnrankedRankProfile(schema, rankProfileRegistry, schema.rankingConstants()));} + lbrace() (rootSchemaItem(schema) (<NL>)*)* <RBRACE> (<NL>)* <EOF>) + { return schema; } } /** * Consumes an element of a schema block. This and rootSearch() are the only rules that should ever consume * trailing newline tokens. * - * @param search The search object to modify. + * @param schema the schema object to modify. * @return Null. */ -Object rootSchemaItem(Search search) : { } -{ - ( document(search) - | rawAsBase64(search) - | documentSummary(search) - | field(null, search) - | index(search, null) - | rankingConstant(search) - | rankProfile(search) - | searchStemming(search) - | useDocument(search) - | structOutside(search) - | annotationOutside(search) - | fieldSet(search) - | importField(search) - | onnxModel(search) ) +Object rootSchemaItem(Schema schema) : { } +{ + ( document(schema) + | rawAsBase64(schema) + | documentSummary(schema) + | field(null, schema) + | index(schema, null) + | rankingConstant(schema) + | rankProfile(schema) + | searchStemming(schema) + | useDocument(schema) + | structOutside(schema) + | annotationOutside(schema) + | fieldSet(schema) + | importField(schema) + | onnxModel(schema) ) { return null; } } @@ -483,99 +483,99 @@ Object rootSchemaItem(Search search) : { } * @param dir the directory containing the file being parsed. * @return the schema definition object. */ -Search rootDocument(String dir) : +Schema rootDocument(String dir) : { - Search search = new DocumentOnlySearch(application, fileRegistry, deployLogger, properties); + Schema schema = new DocumentOnlySchema(application, fileRegistry, deployLogger, properties); } { - ( (rootDocumentItem(search) (<NL>)*)*<EOF> ) - { return search; } + ( (rootDocumentItem(schema) (<NL>)*)*<EOF> ) + { return schema; } } /** * Consumes a single item from within a root document node. * - * @param search The search object to modify. + * @param schema the schema object to modify. * @return Null. */ -Object rootDocumentItem(Search search) : { } +Object rootDocumentItem(Schema schema) : { } { - ( namedDocument(search) ) + ( namedDocument(schema) ) { return null; } } /** * Consumes a use-document statement. This currently does nothing. * - * @param search the search object to modify. + * @param schema the schema object to modify. */ -void useDocument(Search search) : { } +void useDocument(Schema schema) : { } { <USEDOCUMENT> <COLON> identifier() } /** - * Consumes a document element. The name defaults to the search's name, but may be set. + * Consumes a document element. The name defaults to the schema's name, but may be set. * - * @param search the search object to add content to. + * @param schema the schema object to add content to. */ -void document(Search search) : +void document(Schema schema) : { - String name=search.getName(); + String name = schema.getName(); SDDocumentType document; } { - ( <DOCUMENT> (name = identifier())? (<NL>)* { document = new SDDocumentType(name, search); } + ( <DOCUMENT> (name = identifier())? (<NL>)* { document = new SDDocumentType(name, schema); } [ inheritsDocument(document) (<NL>)* ] - <LBRACE> (<NL>)* (documentBody(document, search) (<NL>)*)* <RBRACE> ) + <LBRACE> (<NL>)* (documentBody(document, schema) (<NL>)*)* <RBRACE> ) { - search.addDocument(document); + schema.addDocument(document); } } /** * Consumes a document element, explicitly named * - * @param search the search object to add content to. + * @param schema the schema object to add content to */ -void namedDocument(Search search) : +void namedDocument(Schema schema) : { String name; SDDocumentType document; } { - ( <DOCUMENT> name = identifier() (<NL>)* { document = new SDDocumentType(name, search); } + ( <DOCUMENT> name = identifier() (<NL>)* { document = new SDDocumentType(name, schema); } [ inheritsDocument(document) (<NL>)* ] - <LBRACE> (<NL>)* (documentBody(document, search) (<NL>)*)* <RBRACE> ) + <LBRACE> (<NL>)* (documentBody(document, schema) (<NL>)*)* <RBRACE> ) { - search.addDocument(document); + schema.addDocument(document); } } /** * Consumes a document body block * - * @param document The document type to modify. - * @param search The search object to add content to. + * @param document the document type to modify. + * @param schema the schema object to add content to * @return Null. */ -Object documentBody(SDDocumentType document, Search search) : +Object documentBody(SDDocumentType document, Schema schema) : { } { - ( annotation(search, document) + ( annotation(schema, document) | compression(document, null) | headercfg(document) | bodycfg(document) - | structInside(document, search) - | field(document, search) ) + | structInside(document, schema) + | field(document, schema) ) { return null; } } -void rawAsBase64(Search search) : +void rawAsBase64(Schema schema) : {} { - <RAW_AS_BASE64_IN_SUMMARY> { search.enableRawAsBase64(); } + <RAW_AS_BASE64_IN_SUMMARY> { schema.enableRawAsBase64(); } } /** @@ -654,10 +654,10 @@ void inheritsDocument(SDDocumentType document) : /** * Consumes a field block from within a document element. * - * @param document The document type to modify. - * @param search The search object to add content to. + * @param document the document type to modify + * @param schema the schema object to add content to */ -void field(SDDocumentType document, Search search) : +void field(SDDocumentType document, Schema schema) : { String name; SDField field; @@ -666,22 +666,22 @@ void field(SDDocumentType document, Search search) : { <FIELD> name = identifier() <TYPE> type = dataType() { - if (name != null && com.yahoo.searchdefinition.Search.isReservedName(name.toLowerCase())) { + if (name != null && Schema.isReservedName(name.toLowerCase())) { throw new IllegalArgumentException("Reserved name '" + name + "' can not be used as a field name."); } field = new TemporarySDField(name, type, document); } - lbrace() (fieldBody(field, search, document) (<NL>)*)* <RBRACE> + lbrace() (fieldBody(field, schema, document) (<NL>)*)* <RBRACE> { if (document != null) { document.addField(field); } else { - search.addExtraField(field); + schema.addExtraField(field); } } } -void fieldSet(Search search) : +void fieldSet(Schema schema) : { String setName; String field; @@ -693,8 +693,8 @@ void fieldSet(Search search) : { <FIELDSET> setName = identifier() lbrace() (( - ( <FIELDS><COLON> field = identifier() { search.fieldSets().addUserFieldSetItem(setName, field); } - ( <COMMA> field = identifier() { search.fieldSets().addUserFieldSetItem(setName, field); } )* ) + ( <FIELDS><COLON> field = identifier() { schema.fieldSets().addUserFieldSetItem(setName, field); } + ( <COMMA> field = identifier() { schema.fieldSets().addUserFieldSetItem(setName, field); } )* ) | ( <QUERYCOMMAND> <COLON> (queryCommand = identifierWithDash() | queryCommand = quotedString())) { queryCommands.add(queryCommand); } | @@ -705,21 +705,21 @@ void fieldSet(Search search) : // Apply settings after parsing since all user field items must be set first for (Object command : queryCommands) - search.fieldSets().userFieldSets().get(setName).queryCommands().add((String)command); + schema.fieldSets().userFieldSets().get(setName).queryCommands().add((String)command); for (Object setting : matchSettings) { ((SDField)setting).applyOperations(); - search.fieldSets().userFieldSets().get(setName).setMatching(((SDField)setting).getMatching()); + schema.fieldSets().userFieldSets().get(setName).setMatching(((SDField)setting).getMatching()); } } } /** - * This rule consumes a annotation block from within either a document element or a search element. + * This rule consumes a annotation block from within either a document element or a schema element. - * @param search the search object to add content to. + * @param schema the schema object to add content to */ -void annotationOutside(Search search) : +void annotationOutside(Schema schema) : { String name; SDAnnotationType type; @@ -730,19 +730,19 @@ void annotationOutside(Search search) : type = new SDAnnotationType(name.trim()); } [ inheritsAnnotation(type) (<NL>)* ] - lbrace() (type = annotationBody(search, type)) <RBRACE> + lbrace() (type = annotationBody(schema, type)) <RBRACE> { - if (search.getDocument()==null) throw new IllegalArgumentException("Can't add annotation '"+name+"' to a document type, define a document type first or declare the annotation inside of one."); - search.addAnnotation(type); + if (schema.getDocument()==null) throw new IllegalArgumentException("Can't add annotation '"+name+"' to a document type, define a document type first or declare the annotation inside of one."); + schema.addAnnotation(type); } } /** * This rule consumes a annotation block from within either a document element. * - * @param document The document object to add content to. + * @param document the document object to add content to */ -void annotation(Search search, SDDocumentType document) : +void annotation(Schema schema, SDDocumentType document) : { String name; SDAnnotationType type; @@ -753,7 +753,7 @@ void annotation(Search search, SDDocumentType document) : type = new SDAnnotationType(name.trim()); } [ inheritsAnnotation(type) (<NL>)* ] - lbrace() (type = annotationBody(search, type)) <RBRACE> + lbrace() (type = annotationBody(schema, type)) <RBRACE> { document.addAnnotation(type); } @@ -763,13 +763,13 @@ void annotation(Search search, SDDocumentType document) : /** * This rule consumes a single element of an annotation body block. * - * @param search The search object to add content to. - * @param type The type being built. + * @param schema the seaschemarch object to add content to + * @param type the type being built * @return a modified or new AnnotationType instance */ -SDAnnotationType annotationBody(Search search, SDAnnotationType type) : +SDAnnotationType annotationBody(Schema schema, SDAnnotationType type) : { - SDDocumentType struct = new SDDocumentType("annotation." + type.getName(), search); + SDDocumentType struct = new SDDocumentType("annotation." + type.getName(), schema); } { (structFieldDefinition(struct) (<NL>)*)* @@ -794,15 +794,15 @@ void inheritsAnnotation(SDAnnotationType annotation) : /** * This rule consumes a struct block from within a document element. * - * @param search The search object to add content to. + * @param schema the schema object to add content to */ -void structInside(SDDocumentType document, Search search) : +void structInside(SDDocumentType document, Schema schema) : { SDDocumentType struct; } { ( - struct = structDefinition(search, document) + struct = structDefinition(schema, document) ) { document.addType(struct); @@ -812,27 +812,27 @@ void structInside(SDDocumentType document, Search search) : /** * This rule consumes a struct block from within a document element. * - * @param search The search object to add content to. + * @param schema the schema object to add content to */ -void structOutside(Search search) : +void structOutside(Schema schema) : { SDDocumentType struct; } { ( - struct = structDefinition(search, search.getDocument()) + struct = structDefinition(schema, schema.getDocument()) ) { - search.addType(struct); + schema.addType(struct); } } /** * This rule consumes a struct block from within a document element. * - * @param search The search object to add content to. + * @param schema the schema object to add content to */ -SDDocumentType structDefinition(Search search, SDDocumentType repo) : +SDDocumentType structDefinition(Schema schema, SDDocumentType repo) : { String name; SDDocumentType struct; @@ -840,7 +840,7 @@ SDDocumentType structDefinition(Search search, SDDocumentType repo) : { <STRUCT> name = identifier() { - struct = new SDDocumentType(name, search); + struct = new SDDocumentType(name, schema); } lbrace() (structFieldDefinition(struct) (<NL>)*)* <RBRACE> { @@ -863,7 +863,7 @@ SDDocumentType structDefinition(Search search, SDDocumentType repo) : /** * This rule consumes a data type block from within a field element. * - * @return The consumed data type. + * @return the consumed data type */ DataType dataType() : { @@ -960,7 +960,7 @@ void structFieldDefinition(SDDocumentType struct) : } { <FIELD> name = identifier() <TYPE> type = dataType() { - if (name != null && com.yahoo.searchdefinition.Search.isReservedName(name.toLowerCase())) { + if (name != null && Schema.isReservedName(name.toLowerCase())) { throw new IllegalArgumentException("Reserved name '" + name + "' can not be used as a field name."); } field = new TemporarySDField(name, type, struct); @@ -974,36 +974,36 @@ void structFieldDefinition(SDDocumentType struct) : * This rule consumes a struct subfield from a document field body. This is not to be confused with a document * struct's fields, but rather this is a subfield of a document field of type struct. * - * @param field The field to modify. - * @param search The search object to add content to. - * @param document The document type to modify. + * @param field the field to modify + * @param schema the schema object to add content to + * @param document the document type to modify */ -void structField(FieldOperationContainer field, Search search,SDDocumentType document) : +void structField(FieldOperationContainer field, Schema schema, SDDocumentType document) : { String name; SDField structField; } { <STRUCTFIELD> name = identifier() { - if (name != null && com.yahoo.searchdefinition.Search.isReservedName(name.toLowerCase())) { + if (name != null && Schema.isReservedName(name.toLowerCase())) { throw new IllegalArgumentException("Reserved name '" + name + "' can not be used as a field name."); } FieldOperationContainer structFieldOp = new StructFieldOperation(name); field.addOperation((StructFieldOperation) structFieldOp); } - lbrace() (structFieldBody(structFieldOp, search, document) (<NL>)*)* <RBRACE> + lbrace() (structFieldBody(structFieldOp, schema, document) (<NL>)*)* <RBRACE> } /** * This rule consumes a single element of a field body block. * - * @param field The field being built. - * @param search The search object to add content to. - * @param document The owning document, or null if this is a search field. - * @return Null. + * @param field the field being built + * @param schema the schema object to add content to + * @param document the owning document, or null if this is a search field + * @return Null */ -String fieldBody(SDField field, Search search, SDDocumentType document) : { } +String fieldBody(SDField field, Schema schema, SDDocumentType document) : { } { ( alias(field) | attribute(field) | @@ -1014,7 +1014,7 @@ String fieldBody(SDField field, Search search, SDDocumentType document) : { } header(field) | id(field, document) | summaryInField(field) | - index(search, field) | + index(schema, field) | indexing(field) | indexingRewrite(field) | match(field) | @@ -1023,7 +1023,7 @@ String fieldBody(SDField field, Search search, SDDocumentType document) : { } rank(field) | rankType(field) | sorting(field, field.getName()) | - structField(field, search, document) | + structField(field, schema, document) | summaryTo(field) | weight(field) | weightedset(field) ) @@ -1032,21 +1032,21 @@ String fieldBody(SDField field, Search search, SDDocumentType document) : { } /** * This rule consumes a single element of a struct subfield body block. - * Only elements that are supported in streaming search and indexed search (with complex attributes) are allowed. + * Only elements that are supported in streaming schema and indexed schema (with complex attributes) are allowed. * - * @param field The field being built. - * @param search The search object to add content to. - * @param document The owning document, or null if this is a search field. - * @return Null. + * @param field the field being built + * @param schema the schema object to add content to + * @param document the owning document, or null if this is a schema field + * @return Null */ -String structFieldBody(FieldOperationContainer field, Search search, SDDocumentType document) : { } +String structFieldBody(FieldOperationContainer field, Schema schema, SDDocumentType document) : { } { ( summaryInField(field) | indexing(field) | attribute(field) | match(field) | queryCommand(field) | - structField(field, search, document) | + structField(field, schema, document) | summaryTo(field) ) { return null; } } @@ -1497,17 +1497,17 @@ void fieldStemming(FieldOperationContainer field) : } /** - * This rule consumes a stemming statement for a search element. + * This rule consumes a stemming statement for a schema element. * - * @param search The search to modify. + * @param schema the schema to modify */ -void searchStemming(Search search) : +void searchStemming(Schema schema) : { String setting; } { <STEMMING> <COLON> setting = identifierWithDash() - { search.setStemming(Stemming.get(setting)); } + { schema.setStemming(Stemming.get(setting)); } } /** @@ -1767,20 +1767,20 @@ void indexingRewrite(FieldOperationContainer field) : { } } /** - * Consumes a document-summary block from within a search block. + * Consumes a document-summary block from within a schema block. * - * @param search The search object to add content to. - * @return Null. + * @param schema the schema object to add content to + * @return Null */ -Object documentSummary(Search search) : +Object documentSummary(Schema schema) : { String name; DocumentSummary summary; } { ( <DOCUMENTSUMMARY> - name = identifierWithDash() { search.addSummary(summary = new DocumentSummary(name, search)); } - [inheritsDocumentSummary(summary, search)] + name = identifierWithDash() { schema.addSummary(summary = new DocumentSummary(name, schema)); } + [inheritsDocumentSummary(summary, schema)] lbrace() ( <FROMDISK> { summary.setFromDisk(true); } | @@ -1796,10 +1796,10 @@ Object documentSummary(Search search) : /** * This rule consumes an inherits statement of a document summary. * - * @param documentSummary The document summary to modify. - * @param search The search object documentSummary is being added to. + * @param documentSummary the document summary to modify + * @param schema the schema object documentSummary is being added to */ -void inheritsDocumentSummary(DocumentSummary documentSummary, Search search) : +void inheritsDocumentSummary(DocumentSummary documentSummary, Schema schema) : { String name; } @@ -1825,11 +1825,11 @@ Object documentSummaryItem(DocumentSummary summary) : { } /** * Consumes an index block for a field element. * - * @param search The search object to add content to. - * @param field The field to modify. - * @return Null. + * @param schema the schema object to add content to + * @param field the field to modify + * @return Null */ -Object index(Search search, FieldOperationContainer field) : +Object index(Schema schema, FieldOperationContainer field) : { IndexOperation op = new IndexOperation(); String indexName = (field != null) ? field.getName() : null; @@ -1849,7 +1849,7 @@ Object index(Search search, FieldOperationContainer field) : Index index = new Index(indexName); op.applyToIndex(index); - search.addIndex(index); + schema.addIndex(index); } else { field.addOperation(op); } @@ -1909,11 +1909,11 @@ void hnswIndexBody(HnswIndexParams.Builder params) : } /** - * Consumes a onnx-model block of a search element. + * Consumes a onnx-model block of a schema element. * - * @param search The search object to add content to. + * @param schema the schema object to add content to. */ -void onnxModel(Search search) : +void onnxModel(Schema schema) : { String name; OnnxModel onnxModel; @@ -1926,7 +1926,7 @@ void onnxModel(Search search) : lbrace() (onnxModelItem(onnxModel) (<NL>)*)+ <RBRACE> ) { if (documentsOnly) return; - search.onnxModels().add(onnxModel); + schema.onnxModels().add(onnxModel); } } @@ -1963,11 +1963,11 @@ Object onnxModelItem(OnnxModel onnxModel) : } /** - * Consumes a constant block of a search element. + * Consumes a constant block of a schema element. * - * @param search The search object to add content to. + * @param schema the schema object to add content to */ -void rankingConstant(Search search) : +void rankingConstant(Schema schema) : { String name; RankingConstant constant; @@ -1980,7 +1980,7 @@ void rankingConstant(Search search) : lbrace() (rankingConstantItem(constant) (<NL>)*)+ <RBRACE> ) { if (documentsOnly) return; - search.rankingConstants().add(constant); + schema.rankingConstants().add(constant); } } @@ -2023,11 +2023,11 @@ String uriPath() : { } } /** - * Consumes a rank-profile block of a search element. + * Consumes a rank-profile block of a schema element. * - * @param search The search object to add content to. + * @param schema the schema object to add content to */ -void rankProfile(Search search) : +void rankProfile(Schema schema) : { String name; RankProfile profile; @@ -2036,12 +2036,12 @@ void rankProfile(Search search) : ( ( <MODEL> | <RANKPROFILE> ) name = identifierWithDash() { if (documentsOnly) { - profile = new DocumentsOnlyRankProfile(name, search, rankProfileRegistry, search.rankingConstants()); + profile = new DocumentsOnlyRankProfile(name, schema, rankProfileRegistry, schema.rankingConstants()); } else if ("default".equals(name)) { - profile = rankProfileRegistry.get(search, "default"); + profile = rankProfileRegistry.get(schema, "default"); } else { - profile = new RankProfile(name, search, rankProfileRegistry, search.rankingConstants()); + profile = new RankProfile(name, schema, rankProfileRegistry, schema.rankingConstants()); } } [inheritsRankProfile(profile)] @@ -2371,7 +2371,7 @@ void minHitsPerThread(RankProfile profile) : /** * This rule consumes a num-search-partitions statement for a rank profile. * - * @param profile The rank profile to modify. + * @param profile the rank profile to modify */ void numSearchPartitions(RankProfile profile) : { @@ -2384,7 +2384,7 @@ void numSearchPartitions(RankProfile profile) : /** * This rule consumes a num-threads-per-search statement for a rank profile. * - * @param profile The rank profile to modify. + * @param profile the rank profile to modify */ void termwiseLimit(RankProfile profile) : { @@ -2397,7 +2397,7 @@ void termwiseLimit(RankProfile profile) : * This rule consumes a rank-properties block of a rank profile. There is a little trick within this rule to allow the * final rank property to skip the terminating newline token. * - * @param profile The rank profile to modify. + * @param profile the rank profile to modify */ void rankProperties(RankProfile profile) : { } { @@ -2408,7 +2408,7 @@ void rankProperties(RankProfile profile) : { } /** * This rule consumes a single rank property pair for a rank profile. * - * @param profile The rank profile to modify. + * @param profile the rank profile to modify */ void rankProperty(RankProfile profile) : { @@ -2633,7 +2633,7 @@ TensorType tensorType(String errorMessage) : } } -void importField(Search search) : +void importField(Schema schema) : { String fieldRefSpec; String aliasFieldName; @@ -2649,9 +2649,9 @@ void importField(Search search) : int indexOfDot = fieldRefSpec.indexOf('.'); String documentReferenceFieldName = fieldRefSpec.substring(0, indexOfDot); String foreignFieldName = fieldRefSpec.substring(indexOfDot + 1); - TemporaryImportedFields importedFields = search.temporaryImportedFields().get(); + TemporaryImportedFields importedFields = schema.temporaryImportedFields().get(); if (importedFields.hasField(aliasFieldName)) { - throw new IllegalArgumentException("For search '" + search.getName() + "', import field as '" + aliasFieldName + "': Field already imported"); + throw new IllegalArgumentException("For schema '" + schema.getName() + "', import field as '" + aliasFieldName + "': Field already imported"); } importedFields.add(new TemporaryImportedField(aliasFieldName, documentReferenceFieldName, foreignFieldName)); } diff --git a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java index adb6e423a39..0ccbec529ed 100644 --- a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java @@ -13,8 +13,8 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.document.DataType; import com.yahoo.io.IOUtils; import com.yahoo.path.Path; -import com.yahoo.searchdefinition.DocumentOnlySearch; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.DocumentOnlySchema; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.config.ConfigDefinition; import com.yahoo.vespa.config.ConfigDefinitionKey; import com.yahoo.vespa.model.VespaModel; @@ -58,7 +58,7 @@ public class ApplicationDeployTest { List<NamedSchema> schemas = tester.getSchemas(); assertEquals(schemas.size(), 5); for (NamedSchema searchDefinition : schemas) { - Search s = searchDefinition.getSearch(); + Schema s = searchDefinition.getSearch(); switch (s.getName()) { case "music": case "laptop": @@ -66,7 +66,7 @@ public class ApplicationDeployTest { case "sock": break; case "product": - assertTrue(s instanceof DocumentOnlySearch); + assertTrue(s instanceof DocumentOnlySchema); assertEquals(DataType.STRING, s.getDocument().getField("title").getDataType()); break; default: diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/ArraysTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/ArraysTestCase.java index 801459693de..bcd9d462528 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/ArraysTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/ArraysTestCase.java @@ -22,12 +22,12 @@ public class ArraysTestCase extends SchemaTestCase { @Test public void testArrayImporting() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/arrays.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/arrays.sd"); - SDField tags = (SDField)search.getDocument().getField("tags"); + SDField tags = (SDField) schema.getDocument().getField("tags"); assertEquals(DataType.STRING, ((CollectionDataType)tags.getDataType()).getNestedType()); - SDField ratings = (SDField)search.getDocument().getField("ratings"); + SDField ratings = (SDField) schema.getDocument().getField("ratings"); assertTrue(ratings.getDataType() instanceof ArrayDataType); assertEquals(DataType.INT, ((ArrayDataType)ratings.getDataType()).getNestedType()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/ArraysWeightedSetsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/ArraysWeightedSetsTestCase.java index 45ec5176bc7..d824460a36a 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/ArraysWeightedSetsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/ArraysWeightedSetsTestCase.java @@ -19,21 +19,21 @@ import static org.junit.Assert.assertTrue; public class ArraysWeightedSetsTestCase extends SchemaTestCase { @Test public void testArrayWeightedSetsImporting() throws java.io.IOException, com.yahoo.searchdefinition.parser.ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/arraysweightedsets.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/arraysweightedsets.sd"); - SDField tags = (SDField) search.getDocument().getField("tags"); + SDField tags = (SDField) schema.getDocument().getField("tags"); assertTrue(tags.getDataType() instanceof ArrayDataType); assertEquals(DataType.STRING, ((CollectionDataType)tags.getDataType()).getNestedType()); - SDField ratings = (SDField) search.getDocument().getField("ratings"); + SDField ratings = (SDField) schema.getDocument().getField("ratings"); assertTrue(ratings.getDataType() instanceof ArrayDataType); assertEquals(DataType.INT, ((CollectionDataType)ratings.getDataType()).getNestedType()); - SDField flags = (SDField) search.getDocument().getField("flags"); + SDField flags = (SDField) schema.getDocument().getField("flags"); assertTrue(flags.getDataType() instanceof WeightedSetDataType); assertEquals(DataType.STRING, ((CollectionDataType)flags.getDataType()).getNestedType()); - SDField banners = (SDField) search.getDocument().getField("banners"); + SDField banners = (SDField) schema.getDocument().getField("banners"); assertTrue(banners.getDataType() instanceof WeightedSetDataType); assertEquals(DataType.INT, ((CollectionDataType)banners.getDataType()).getNestedType()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/AttributeSettingsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/AttributeSettingsTestCase.java index 869cc2678b2..0b5bb8fe486 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/AttributeSettingsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/AttributeSettingsTestCase.java @@ -32,9 +32,9 @@ public class AttributeSettingsTestCase extends SchemaTestCase { @Test public void testAttributeSettings() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/attributesettings.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/attributesettings.sd"); - SDField f1=(SDField) search.getDocument().getField("f1"); + SDField f1=(SDField) schema.getDocument().getField("f1"); assertEquals(1, f1.getAttributes().size()); Attribute a1 = f1.getAttributes().get(f1.getName()); assertThat(a1.getType(), is(Attribute.Type.LONG)); @@ -45,7 +45,7 @@ public class AttributeSettingsTestCase extends SchemaTestCase { assertFalse(a1.isRemoveIfZero()); assertFalse(a1.isCreateIfNonExistent()); - SDField f2=(SDField) search.getDocument().getField("f2"); + SDField f2=(SDField) schema.getDocument().getField("f2"); assertEquals(1, f2.getAttributes().size()); Attribute a2 = f2.getAttributes().get(f2.getName()); assertThat(a2.getType(), is(Attribute.Type.LONG)); @@ -56,7 +56,7 @@ public class AttributeSettingsTestCase extends SchemaTestCase { assertFalse(a2.isRemoveIfZero()); assertFalse(a2.isCreateIfNonExistent()); assertThat(f2.getAliasToName().get("f2alias"), is("f2")); - SDField f3=(SDField) search.getDocument().getField("f3"); + SDField f3=(SDField) schema.getDocument().getField("f3"); assertEquals(1, f3.getAttributes().size()); assertThat(f3.getAliasToName().get("f3alias"), is("f3")); @@ -69,17 +69,17 @@ public class AttributeSettingsTestCase extends SchemaTestCase { assertFalse(a3.isRemoveIfZero()); assertFalse(a3.isCreateIfNonExistent()); - assertWeightedSet(search,"f4",true,true); - assertWeightedSet(search,"f5",true,true); - assertWeightedSet(search,"f6",true,true); - assertWeightedSet(search,"f7",true,false); - assertWeightedSet(search,"f8",true,false); - assertWeightedSet(search,"f9",false,true); - assertWeightedSet(search,"f10",false,true); + assertWeightedSet(schema, "f4", true, true); + assertWeightedSet(schema, "f5", true, true); + assertWeightedSet(schema, "f6", true, true); + assertWeightedSet(schema, "f7", true, false); + assertWeightedSet(schema, "f8", true, false); + assertWeightedSet(schema, "f9", false, true); + assertWeightedSet(schema, "f10", false, true); } - private void assertWeightedSet(Search search, String name, boolean createIfNonExistent, boolean removeIfZero) { - SDField f4 = (SDField) search.getDocument().getField(name); + private void assertWeightedSet(Schema schema, String name, boolean createIfNonExistent, boolean removeIfZero) { + SDField f4 = (SDField) schema.getDocument().getField(name); assertEquals(1, f4.getAttributes().size()); Attribute a4 = f4.getAttributes().get(f4.getName()); assertThat(a4.getType(), is(Attribute.Type.STRING)); @@ -93,14 +93,14 @@ public class AttributeSettingsTestCase extends SchemaTestCase { @Test public void requireThatFastAccessCanBeSet() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/attributesettings.sd"); - SDField field = (SDField) search.getDocument().getField("fast_access"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/attributesettings.sd"); + SDField field = (SDField) schema.getDocument().getField("fast_access"); assertEquals(1, field.getAttributes().size()); Attribute attr = field.getAttributes().get(field.getName()); assertTrue(attr.isFastAccess()); } - private Search getSearch(String sd) throws ParseException { + private Schema getSearch(String sd) throws ParseException { SearchBuilder builder = new SearchBuilder(); builder.importString(sd); builder.build(); @@ -108,8 +108,8 @@ public class AttributeSettingsTestCase extends SchemaTestCase { } private Attribute getAttributeF(String sd) throws ParseException { - Search search = getSearch(sd); - SDField field = (SDField) search.getDocument().getField("f"); + Schema schema = getSearch(sd); + SDField field = (SDField) schema.getDocument().getField("f"); return field.getAttributes().get(field.getName()); } @@ -183,7 +183,7 @@ public class AttributeSettingsTestCase extends SchemaTestCase { assertTrue(attr.isMutable()); } - private Search getSearchWithMutables() throws ParseException { + private Schema getSearchWithMutables() throws ParseException { return getSearch( "search test {\n" + " document test { \n" + 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 050d5299c7d..faeb033a427 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/CommentTestCase.java @@ -18,8 +18,8 @@ public class CommentTestCase extends SchemaTestCase { @Test public void testComments() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/comment.sd"); - SDField field = search.getConcreteField("a"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/comment.sd"); + SDField field = schema.getConcreteField("a"); assertEquals("{ input a | tokenize normalize stem:\"BEST\" | summary a | index a; }", field.getIndexingScript().toString()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/DiversityTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/DiversityTestCase.java index 6c4eb4748c8..e6191772904 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/DiversityTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/DiversityTestCase.java @@ -43,7 +43,7 @@ public class DiversityTestCase { " }\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile.MatchPhaseSettings matchPhase = rankProfileRegistry.get(s, "parent").getMatchPhaseSettings(); RankProfile.DiversitySettings diversity = matchPhase.getDiversity(); assertEquals("b", diversity.getAttribute()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/DocumentGraphValidatorTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/DocumentGraphValidatorTest.java index 4fae4d92cb0..f57c63b440f 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/DocumentGraphValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/DocumentGraphValidatorTest.java @@ -30,21 +30,21 @@ public class DocumentGraphValidatorTest { @Test public void simple_ref_dag_is_allowed() { - Search advertiserSearch = createSearchWithName("advertiser"); - Search campaignSearch = createSearchWithName("campaign"); - Search adSearch = createSearchWithName("ad"); - createDocumentReference(adSearch, advertiserSearch, "advertiser_ref"); - createDocumentReference(adSearch, campaignSearch, "campaign_ref"); + Schema advertiserSchema = createSearchWithName("advertiser"); + Schema campaignSchema = createSearchWithName("campaign"); + Schema adSchema = createSearchWithName("ad"); + createDocumentReference(adSchema, advertiserSchema, "advertiser_ref"); + createDocumentReference(adSchema, campaignSchema, "campaign_ref"); DocumentGraphValidator validator = new DocumentGraphValidator(); - validator.validateDocumentGraph(documentListOf(advertiserSearch, campaignSearch, adSearch)); + validator.validateDocumentGraph(documentListOf(advertiserSchema, campaignSchema, adSchema)); } @Test public void simple_inheritance_dag_is_allowed() { - Search grandfather = createSearchWithName("grandfather"); - Search father = createSearchWithName("father", grandfather); - Search son = createSearchWithName("son", father); + Schema grandfather = createSearchWithName("grandfather"); + Schema father = createSearchWithName("father", grandfather); + Schema son = createSearchWithName("son", father); DocumentGraphValidator validator = new DocumentGraphValidator(); validator.validateDocumentGraph(documentListOf(son, father, grandfather)); @@ -52,16 +52,16 @@ public class DocumentGraphValidatorTest { @Test public void complex_dag_is_allowed() { - Search grandfather = createSearchWithName("grandfather"); - Search father = createSearchWithName("father", grandfather); - Search mother = createSearchWithName("mother", grandfather); + Schema grandfather = createSearchWithName("grandfather"); + Schema father = createSearchWithName("father", grandfather); + Schema mother = createSearchWithName("mother", grandfather); createDocumentReference(father, mother, "wife_ref"); - Search son = createSearchWithName("son", father, mother); - Search daughter = createSearchWithName("daughter", father, mother); + Schema son = createSearchWithName("son", father, mother); + Schema daughter = createSearchWithName("daughter", father, mother); createDocumentReference(daughter, son, "brother_ref"); - Search randomGuy1 = createSearchWithName("randomguy1"); - Search randomGuy2 = createSearchWithName("randomguy2"); + Schema randomGuy1 = createSearchWithName("randomguy1"); + Schema randomGuy2 = createSearchWithName("randomguy2"); createDocumentReference(randomGuy1, mother, "secret_ref"); DocumentGraphValidator validator = new DocumentGraphValidator(); @@ -70,54 +70,54 @@ public class DocumentGraphValidatorTest { @Test public void ref_cycle_is_forbidden() { - Search search1 = createSearchWithName("doc1"); - Search search2 = createSearchWithName("doc2"); - Search search3 = createSearchWithName("doc3"); - createDocumentReference(search1, search2, "ref_2"); - createDocumentReference(search2, search3, "ref_3"); - createDocumentReference(search3, search1, "ref_1"); + Schema schema1 = createSearchWithName("doc1"); + Schema schema2 = createSearchWithName("doc2"); + Schema schema3 = createSearchWithName("doc3"); + createDocumentReference(schema1, schema2, "ref_2"); + createDocumentReference(schema2, schema3, "ref_3"); + createDocumentReference(schema3, schema1, "ref_1"); DocumentGraphValidator validator = new DocumentGraphValidator(); exceptionRule.expect(DocumentGraphValidator.DocumentGraphException.class); exceptionRule.expectMessage("Document dependency cycle detected: doc1->doc2->doc3->doc1."); - validator.validateDocumentGraph(documentListOf(search1, search2, search3)); + validator.validateDocumentGraph(documentListOf(schema1, schema2, schema3)); } @Test public void inherit_cycle_is_forbidden() { - Search search1 = createSearchWithName("doc1"); - Search search2 = createSearchWithName("doc2", search1); - Search search3 = createSearchWithName("doc3", search2); - search1.getDocument().inherit(search3.getDocument()); + Schema schema1 = createSearchWithName("doc1"); + Schema schema2 = createSearchWithName("doc2", schema1); + Schema schema3 = createSearchWithName("doc3", schema2); + schema1.getDocument().inherit(schema3.getDocument()); DocumentGraphValidator validator = new DocumentGraphValidator(); exceptionRule.expect(DocumentGraphValidator.DocumentGraphException.class); exceptionRule.expectMessage("Document dependency cycle detected: doc1->doc3->doc2->doc1."); - validator.validateDocumentGraph(documentListOf(search1, search2, search3)); + validator.validateDocumentGraph(documentListOf(schema1, schema2, schema3)); } @Test public void combined_inherit_and_ref_cycle_is_forbidden() { - Search search1 = createSearchWithName("doc1"); - Search search2 = createSearchWithName("doc2", search1); - Search search3 = createSearchWithName("doc3", search2); - createDocumentReference(search1, search3, "ref_1"); + Schema schema1 = createSearchWithName("doc1"); + Schema schema2 = createSearchWithName("doc2", schema1); + Schema schema3 = createSearchWithName("doc3", schema2); + createDocumentReference(schema1, schema3, "ref_1"); DocumentGraphValidator validator = new DocumentGraphValidator(); exceptionRule.expect(DocumentGraphValidator.DocumentGraphException.class); exceptionRule.expectMessage("Document dependency cycle detected: doc1->doc3->doc2->doc1."); - validator.validateDocumentGraph(documentListOf(search1, search2, search3)); + validator.validateDocumentGraph(documentListOf(schema1, schema2, schema3)); } @Test public void self_reference_is_forbidden() { - Search adSearch = createSearchWithName("ad"); - createDocumentReference(adSearch, adSearch, "ad_ref"); + Schema adSchema = createSearchWithName("ad"); + createDocumentReference(adSchema, adSchema, "ad_ref"); DocumentGraphValidator validator = new DocumentGraphValidator(); exceptionRule.expect(DocumentGraphValidator.DocumentGraphException.class); exceptionRule.expectMessage("Document dependency cycle detected: ad->ad."); - validator.validateDocumentGraph(documentListOf(adSearch)); + validator.validateDocumentGraph(documentListOf(adSchema)); } /** @@ -127,8 +127,8 @@ public class DocumentGraphValidatorTest { @Test public void self_inheritance_forbidden() { try { - Search adSearch = createSearchWithName("ad"); - SDDocumentType document = adSearch.getDocument(); + Schema adSchema = createSearchWithName("ad"); + SDDocumentType document = adSchema.getDocument(); document.inherit(document); fail("Expected exception"); } @@ -137,22 +137,22 @@ public class DocumentGraphValidatorTest { } } - private static List<SDDocumentType> documentListOf(Search... searches) { - return Arrays.stream(searches).map(Search::getDocument).collect(toList()); + private static List<SDDocumentType> documentListOf(Schema... schemas) { + return Arrays.stream(schemas).map(Schema::getDocument).collect(toList()); } - private static Search createSearchWithName(String name, Search... parents) { - Search campaignSearch = new Search(name); + private static Schema createSearchWithName(String name, Schema... parents) { + Schema campaignSchema = new Schema(name); SDDocumentType document = new SDDocumentType(name); - campaignSearch.addDocument(document); + campaignSchema.addDocument(document); document.setDocumentReferences(new DocumentReferences(Collections.emptyMap())); Arrays.stream(parents) - .map(Search::getDocument) + .map(Schema::getDocument) .forEach(document::inherit); - return campaignSearch; + return campaignSchema; } - private static void createDocumentReference(Search from, Search to, String refFieldName) { + private static void createDocumentReference(Schema from, Schema to, String refFieldName) { SDField refField = new TemporarySDField(refFieldName, ReferenceDataType.createWithInferredId(TemporaryStructuredDataType.create(to.getName()))); SDDocumentType fromDocument = from.getDocument(); fromDocument.addField(refField); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/DocumentReferenceResolverTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/DocumentReferenceResolverTest.java index 28c96f39556..260b7a98fe7 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/DocumentReferenceResolverTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/DocumentReferenceResolverTest.java @@ -31,28 +31,28 @@ public class DocumentReferenceResolverTest { @Test public void reference_from_one_document_to_another_is_resolved() { // Create bar document with no fields - Search barSearch = new Search(BAR); - SDDocumentType barDocument = new SDDocumentType(BAR, barSearch); - barSearch.addDocument(barDocument); + Schema barSchema = new Schema(BAR); + SDDocumentType barDocument = new SDDocumentType(BAR, barSchema); + barSchema.addDocument(barDocument); // Create foo document with document reference to bar and add another field SDField fooRefToBarField = new SDField ("bar_ref", ReferenceDataType.createWithInferredId(barDocument.getDocumentType())); AttributeUtils.addAttributeAspect(fooRefToBarField); SDField irrelevantField = new SDField("irrelevant_stuff", DataType.INT); - Search fooSearch = new Search(FOO); - SDDocumentType fooDocument = new SDDocumentType("foo", fooSearch); + Schema fooSchema = new Schema(FOO); + SDDocumentType fooDocument = new SDDocumentType("foo", fooSchema); fooDocument.addField(fooRefToBarField); fooDocument.addField(irrelevantField); - fooSearch.addDocument(fooDocument); + fooSchema.addDocument(fooDocument); - DocumentReferenceResolver resolver = new DocumentReferenceResolver(asList(fooSearch, barSearch)); + DocumentReferenceResolver resolver = new DocumentReferenceResolver(asList(fooSchema, barSchema)); resolver.resolveReferences(fooDocument); assertTrue(fooDocument.getDocumentReferences().isPresent()); Map<String, DocumentReference> fooReferenceMap = fooDocument.getDocumentReferences().get().referenceMap(); assertEquals(1, fooReferenceMap.size()); - assertSame(barSearch, fooReferenceMap.get("bar_ref").targetSearch()); + assertSame(barSchema, fooReferenceMap.get("bar_ref").targetSearch()); assertSame(fooRefToBarField, fooReferenceMap.get("bar_ref").referenceField()); } @@ -62,12 +62,12 @@ public class DocumentReferenceResolverTest { SDField fooRefToBarField = new SDField( "bar_ref", ReferenceDataType.createWithInferredId(TemporaryStructuredDataType.create("bar"))); AttributeUtils.addAttributeAspect(fooRefToBarField); - Search fooSearch = new Search(FOO); - SDDocumentType fooDocument = new SDDocumentType("foo", fooSearch); + Schema fooSchema = new Schema(FOO); + SDDocumentType fooDocument = new SDDocumentType("foo", fooSchema); fooDocument.addField(fooRefToBarField); - fooSearch.addDocument(fooDocument); + fooSchema.addDocument(fooDocument); - DocumentReferenceResolver resolver = new DocumentReferenceResolver(singletonList(fooSearch)); + DocumentReferenceResolver resolver = new DocumentReferenceResolver(singletonList(fooSchema)); exceptionRule.expect(IllegalArgumentException.class); exceptionRule.expectMessage( @@ -78,19 +78,19 @@ public class DocumentReferenceResolverTest { @Test public void throws_exception_if_reference_is_not_an_attribute() { // Create bar document with no fields - Search barSearch = new Search(BAR); - SDDocumentType barDocument = new SDDocumentType("bar", barSearch); - barSearch.addDocument(barDocument); + Schema barSchema = new Schema(BAR); + SDDocumentType barDocument = new SDDocumentType("bar", barSchema); + barSchema.addDocument(barDocument); // Create foo document with document reference to bar SDField fooRefToBarField = new SDField ("bar_ref", ReferenceDataType.createWithInferredId(barDocument.getDocumentType())); - Search fooSearch = new Search(FOO); - SDDocumentType fooDocument = new SDDocumentType("foo", fooSearch); + Schema fooSchema = new Schema(FOO); + SDDocumentType fooDocument = new SDDocumentType("foo", fooSchema); fooDocument.addField(fooRefToBarField); - fooSearch.addDocument(fooDocument); + fooSchema.addDocument(fooDocument); - DocumentReferenceResolver resolver = new DocumentReferenceResolver(asList(fooSearch, barSearch)); + DocumentReferenceResolver resolver = new DocumentReferenceResolver(asList(fooSchema, barSchema)); exceptionRule.expect(IllegalArgumentException.class); exceptionRule.expectMessage( "The field 'bar_ref' is an invalid document reference. The field must be an attribute."); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/ImportedFieldsEnumeratorTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/ImportedFieldsEnumeratorTest.java index f12129155b1..5f507a1d5d6 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/ImportedFieldsEnumeratorTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/ImportedFieldsEnumeratorTest.java @@ -19,35 +19,35 @@ public class ImportedFieldsEnumeratorTest { @Test public void imported_fields_are_enumerated_and_copied_from_correct_search_instance() { String PARENT = "parent"; - Search parentSearch = new Search(PARENT); - SDDocumentType parentDocument = new SDDocumentType(PARENT, parentSearch); + Schema parentSchema = new Schema(PARENT); + SDDocumentType parentDocument = new SDDocumentType(PARENT, parentSchema); var parentField = new SDField("their_field", DataType.INT); AttributeUtils.addAttributeAspect(parentField); parentDocument.addField(parentField); - parentSearch.addDocument(parentDocument); + parentSchema.addDocument(parentDocument); String FOO = "foo"; - Search fooSearch = new Search(FOO); + Schema fooSchema = new Schema(FOO); SDField fooRefToParent = new SDField( "foo_ref", ReferenceDataType.createWithInferredId(parentDocument.getDocumentType())); AttributeUtils.addAttributeAspect(fooRefToParent); - var fooImports = fooSearch.temporaryImportedFields().get(); + var fooImports = fooSchema.temporaryImportedFields().get(); fooImports.add(new TemporaryImportedField("my_first_import", "foo_ref", "their_field")); fooImports.add(new TemporaryImportedField("my_second_import", "foo_ref", "their_field")); - SDDocumentType fooDocument = new SDDocumentType(FOO, fooSearch); - fooSearch.addDocument(fooDocument); + SDDocumentType fooDocument = new SDDocumentType(FOO, fooSchema); + fooSchema.addDocument(fooDocument); String BAR = "bar"; - Search barSearch = new Search(BAR); + Schema barSchema = new Schema(BAR); SDField barRefToParent = new SDField( "bar_ref", ReferenceDataType.createWithInferredId(parentDocument.getDocumentType())); AttributeUtils.addAttributeAspect(barRefToParent); - var barImports = barSearch.temporaryImportedFields().get(); + var barImports = barSchema.temporaryImportedFields().get(); barImports.add(new TemporaryImportedField("my_cool_import", "my_ref", "their_field")); - SDDocumentType barDocument = new SDDocumentType(BAR, barSearch); - barSearch.addDocument(barDocument); + SDDocumentType barDocument = new SDDocumentType(BAR, barSchema); + barSchema.addDocument(barDocument); - var enumerator = new ImportedFieldsEnumerator(List.of(parentSearch, fooSearch, barSearch)); + var enumerator = new ImportedFieldsEnumerator(List.of(parentSchema, fooSchema, barSchema)); enumerator.enumerateImportedFields(parentDocument); assertImportedFieldsAre(parentDocument, List.of()); // No imported fields in parent diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectRankingExpressionFileRefTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectRankingExpressionFileRefTestCase.java index 5dccd0afd76..f7687640202 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectRankingExpressionFileRefTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/IncorrectRankingExpressionFileRefTestCase.java @@ -21,10 +21,10 @@ public class IncorrectRankingExpressionFileRefTestCase extends SchemaTestCase { public void testIncorrectRef() throws IOException, ParseException { try { RankProfileRegistry registry = new RankProfileRegistry(); - Search search = SearchBuilder.buildFromFile("src/test/examples/incorrectrankingexpressionfileref.sd", + Schema schema = SearchBuilder.buildFromFile("src/test/examples/incorrectrankingexpressionfileref.sd", registry, new QueryProfileRegistry()); - new DerivedConfiguration(search, registry); // cause rank profile parsing + new DerivedConfiguration(schema, registry); // cause rank profile parsing fail("parsing should have failed"); } catch (IllegalArgumentException e) { String message = Exceptions.toMessageString(e); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/IndexSettingsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/IndexSettingsTestCase.java index 12b9a7a9937..7dec8df6e8c 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/IndexSettingsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/IndexSettingsTestCase.java @@ -21,19 +21,19 @@ public class IndexSettingsTestCase extends SchemaTestCase { @Test public void testStemmingSettings() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/indexsettings.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/indexsettings.sd"); - SDField usingDefault=(SDField) search.getDocument().getField("usingdefault"); - assertEquals(Stemming.SHORTEST,usingDefault.getStemming(search)); + SDField usingDefault=(SDField) schema.getDocument().getField("usingdefault"); + assertEquals(Stemming.SHORTEST,usingDefault.getStemming(schema)); - SDField notStemmed=(SDField) search.getDocument().getField("notstemmed"); - assertEquals(Stemming.NONE,notStemmed.getStemming(search)); + SDField notStemmed=(SDField) schema.getDocument().getField("notstemmed"); + assertEquals(Stemming.NONE,notStemmed.getStemming(schema)); - SDField allStemmed=(SDField) search.getDocument().getField("allstemmed"); - assertEquals(Stemming.SHORTEST,allStemmed.getStemming(search)); + SDField allStemmed=(SDField) schema.getDocument().getField("allstemmed"); + assertEquals(Stemming.SHORTEST,allStemmed.getStemming(schema)); - SDField multiStemmed=(SDField) search.getDocument().getField("multiplestems"); - assertEquals(Stemming.MULTIPLE, multiStemmed.getStemming(search)); + SDField multiStemmed=(SDField) schema.getDocument().getField("multiplestems"); + assertEquals(Stemming.MULTIPLE, multiStemmed.getStemming(schema)); } @Test @@ -52,10 +52,10 @@ public class IndexSettingsTestCase extends SchemaTestCase { " }", "}" )); - Search search = builder.getSearch(); - Index contentIndex = search.getIndex("content"); + Schema schema = builder.getSearch(); + Index contentIndex = schema.getIndex("content"); assertTrue(contentIndex.useInterleavedFeatures()); - Index extraIndex = search.getIndex("extra"); + Index extraIndex = schema.getIndex("extra"); assertTrue(extraIndex.useInterleavedFeatures()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/OutsideTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/OutsideTestCase.java index 4f24f8a50d5..c5e593c706f 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/OutsideTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/OutsideTestCase.java @@ -17,9 +17,9 @@ public class OutsideTestCase extends SchemaTestCase { @Test public void testOutsideIndex() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/outsidedoc.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/outsidedoc.sd"); - Index defaultIndex=search.getIndex("default"); + Index defaultIndex= schema.getIndex("default"); assertTrue(defaultIndex.isPrefix()); assertEquals("default.default",defaultIndex.aliasIterator().next()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileRegistryTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileRegistryTest.java index 21ab7a75f46..d2486395340 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileRegistryTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileRegistryTest.java @@ -33,24 +33,24 @@ public class RankProfileRegistryTest { @Test(expected = IllegalArgumentException.class) public void testRankProfileDuplicateNameIsIllegal() { - Search search = new Search("foo"); - RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(search); - RankProfile barRankProfile = new RankProfile("bar", search, rankProfileRegistry, search.rankingConstants()); + Schema schema = new Schema("foo"); + RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(schema); + RankProfile barRankProfile = new RankProfile("bar", schema, rankProfileRegistry, schema.rankingConstants()); rankProfileRegistry.add(barRankProfile); rankProfileRegistry.add(barRankProfile); } @Test public void testRankProfileDuplicateNameLegalForOverridableRankProfiles() { - Search search = new Search("foo"); - RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(search); + Schema schema = new Schema("foo"); + RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(schema); for (String rankProfileName : RankProfileRegistry.overridableRankProfileNames) { - assertNull(rankProfileRegistry.get(search, rankProfileName).getFunctions().get("foo")); - RankProfile rankProfileWithAddedFunction = new RankProfile(rankProfileName, search, rankProfileRegistry, search.rankingConstants()); + assertNull(rankProfileRegistry.get(schema, rankProfileName).getFunctions().get("foo")); + RankProfile rankProfileWithAddedFunction = new RankProfile(rankProfileName, schema, rankProfileRegistry, schema.rankingConstants()); rankProfileWithAddedFunction.addFunction(new ExpressionFunction("foo", RankingExpression.from("1+2")), true); rankProfileRegistry.add(rankProfileWithAddedFunction); - assertNotNull(rankProfileRegistry.get(search, rankProfileName).getFunctions().get("foo")); + assertNotNull(rankProfileRegistry.get(schema, rankProfileName).getFunctions().get("foo")); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java index de43dc94c71..25581d2173c 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankProfileTestCase.java @@ -43,14 +43,14 @@ public class RankProfileTestCase extends SchemaTestCase { @Test public void testRankProfileInheritance() { - Search search = new Search("test"); - RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(search); + Schema schema = new Schema("test"); + RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(schema); SDDocumentType document = new SDDocumentType("test"); SDField a = document.addField("a", DataType.STRING); a.setRankType(RankType.IDENTITY); document.addField("b", DataType.STRING); - search.addDocument(document); - RankProfile child = new RankProfile("child", search, rankProfileRegistry, search.rankingConstants()); + schema.addDocument(document); + RankProfile child = new RankProfile("child", schema, rankProfileRegistry, schema.rankingConstants()); child.setInherited("default"); rankProfileRegistry.add(child); @@ -249,10 +249,10 @@ public class RankProfileTestCase extends SchemaTestCase { SearchBuilder builder = new SearchBuilder(rankProfileRegistry); builder.importString(sd); builder.build(); - Search search = builder.getSearch(); - AttributeFields attributeFields = new AttributeFields(search); - verifyRankProfile(rankProfileRegistry.get(search, "parent"), attributeFields, deployProperties, termwiseLimit); - verifyRankProfile(rankProfileRegistry.get(search, "child"), attributeFields, deployProperties, termwiseLimit); + Schema schema = builder.getSearch(); + AttributeFields attributeFields = new AttributeFields(schema); + verifyRankProfile(rankProfileRegistry.get(schema, "parent"), attributeFields, deployProperties, termwiseLimit); + verifyRankProfile(rankProfileRegistry.get(schema, "child"), attributeFields, deployProperties, termwiseLimit); } private void verifyRankProfile(RankProfile rankProfile, AttributeFields attributeFields, ModelContext.Properties deployProperties, @@ -291,13 +291,13 @@ public class RankProfileTestCase extends SchemaTestCase { " rank-profile p2 {}", "}")); builder.build(); - Search search = builder.getSearch(); + Schema schema = builder.getSearch(); assertEquals(4, registry.all().size()); - assertAttributeTypeSettings(registry.get(search, "default"), search); - assertAttributeTypeSettings(registry.get(search, "unranked"), search); - assertAttributeTypeSettings(registry.get(search, "p1"), search); - assertAttributeTypeSettings(registry.get(search, "p2"), search); + assertAttributeTypeSettings(registry.get(schema, "default"), schema); + assertAttributeTypeSettings(registry.get(schema, "unranked"), schema); + assertAttributeTypeSettings(registry.get(schema, "p1"), schema); + assertAttributeTypeSettings(registry.get(schema, "p2"), schema); } @Test @@ -318,12 +318,12 @@ public class RankProfileTestCase extends SchemaTestCase { } } - private static RawRankProfile createRawRankProfile(RankProfile profile, Search search) { - return new RawRankProfile(profile, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(search), new TestProperties()); + private static RawRankProfile createRawRankProfile(RankProfile profile, Schema schema) { + return new RawRankProfile(profile, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(schema), new TestProperties()); } - private static void assertAttributeTypeSettings(RankProfile profile, Search search) { - RawRankProfile rawProfile = createRawRankProfile(profile, search); + private static void assertAttributeTypeSettings(RankProfile profile, Schema schema) { + RawRankProfile rawProfile = createRawRankProfile(profile, schema); assertEquals("tensor(x[10])", findProperty(rawProfile.configProperties(), "vespa.type.attribute.a").get()); assertEquals("tensor(y{})", findProperty(rawProfile.configProperties(), "vespa.type.attribute.b").get()); assertEquals("tensor(x[5])", findProperty(rawProfile.configProperties(), "vespa.type.attribute.c").get()); @@ -340,13 +340,13 @@ public class RankProfileTestCase extends SchemaTestCase { " rank-profile p2 {}", "}")); builder.build(true); - Search search = builder.getSearch(); + Schema schema = builder.getSearch(); assertEquals(4, registry.all().size()); - assertQueryFeatureTypeSettings(registry.get(search, "default"), search); - assertQueryFeatureTypeSettings(registry.get(search, "unranked"), search); - assertQueryFeatureTypeSettings(registry.get(search, "p1"), search); - assertQueryFeatureTypeSettings(registry.get(search, "p2"), search); + assertQueryFeatureTypeSettings(registry.get(schema, "default"), schema); + assertQueryFeatureTypeSettings(registry.get(schema, "unranked"), schema); + assertQueryFeatureTypeSettings(registry.get(schema, "p1"), schema); + assertQueryFeatureTypeSettings(registry.get(schema, "p2"), schema); } private static QueryProfileRegistry setupQueryProfileTypes() { @@ -365,8 +365,8 @@ public class RankProfileTestCase extends SchemaTestCase { return registry; } - private static void assertQueryFeatureTypeSettings(RankProfile profile, Search search) { - RawRankProfile rawProfile =createRawRankProfile(profile, search); + private static void assertQueryFeatureTypeSettings(RankProfile profile, Schema schema) { + RawRankProfile rawProfile =createRawRankProfile(profile, schema); assertEquals("tensor(x[10])", findProperty(rawProfile.configProperties(), "vespa.type.query.tensor1").get()); assertEquals("tensor(y{})", findProperty(rawProfile.configProperties(), "vespa.type.query.tensor2").get()); assertFalse(findProperty(rawProfile.configProperties(), "vespa.type.query.tensor3").isPresent()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java index 987e92c8c68..5bc4aa9c386 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankPropertiesTestCase.java @@ -49,12 +49,12 @@ public class RankPropertiesTestCase extends SchemaTestCase { " }", "}")); builder.build(); - Search search = builder.getSearch(); - AttributeFields attributeFields = new AttributeFields(search); + Schema schema = builder.getSearch(); + AttributeFields attributeFields = new AttributeFields(schema); { // Check declared model - RankProfile parent = rankProfileRegistry.get(search, "parent"); + RankProfile parent = rankProfileRegistry.get(schema, "parent"); assertEquals("query(a) = 1500", parent.getRankProperties().get(0).toString()); // Check derived model @@ -64,11 +64,11 @@ public class RankPropertiesTestCase extends SchemaTestCase { { // Check declared model - RankProfile parent = rankProfileRegistry.get(search, "child"); + RankProfile parent = rankProfileRegistry.get(schema, "child"); assertEquals("query(a) = 2000", parent.getRankProperties().get(0).toString()); // Check derived model - RawRankProfile rawChild = new RawRankProfile(rankProfileRegistry.get(search, "child"), + RawRankProfile rawChild = new RawRankProfile(rankProfileRegistry.get(schema, "child"), new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), @@ -126,8 +126,8 @@ public class RankPropertiesTestCase extends SchemaTestCase { " }", "}")); builder.build(); - Search search = builder.getSearch(); - RankProfile a = rankProfileRegistry.get(search, "a"); + Schema schema = builder.getSearch(); + RankProfile a = rankProfileRegistry.get(schema, "a"); List<RankProfile.ExecuteOperation> operations = a.getExecuteOperations(); assertEquals(3, operations.size()); assertEquals(RankProfile.ExecuteOperation.Phase.onmatch, operations.get(0).phase); @@ -140,7 +140,7 @@ public class RankPropertiesTestCase extends SchemaTestCase { assertEquals("synthetic_attribute_c", operations.get(2).attribute); assertEquals("--", operations.get(2).operation); - AttributeFields attributeFields = new AttributeFields(search); + AttributeFields attributeFields = new AttributeFields(schema); RawRankProfile raw = new RawRankProfile(a, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), attributeFields, new TestProperties()); assertEquals(7, raw.configProperties().size()); assertEquals("(vespa.execute.onmatch.attribute, synthetic_attribute_a)", raw.configProperties().get(0).toString()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingConstantTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingConstantTest.java index eb71e73be60..8bfd9c898e4 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingConstantTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingConstantTest.java @@ -43,9 +43,9 @@ public class RankingConstantTest { "}" )); searchBuilder.build(); - Search search = searchBuilder.getSearch(); + Schema schema = searchBuilder.getSearch(); - Iterator<RankingConstant> constantIterator = search.rankingConstants().asMap().values().iterator(); + Iterator<RankingConstant> constantIterator = schema.rankingConstants().asMap().values().iterator(); RankingConstant constant = constantIterator.next(); assertEquals(TENSOR_NAME, constant.getName()); assertEquals(TENSOR_FILE, constant.getFileName()); @@ -101,8 +101,8 @@ public class RankingConstantTest { "}" )); searchBuilder.build(); - Search search = searchBuilder.getSearch(); - RankingConstant constant = search.rankingConstants().asMap().values().iterator().next(); + Schema schema = searchBuilder.getSearch(); + RankingConstant constant = schema.rankingConstants().asMap().values().iterator().next(); assertEquals("simplename", constant.getFileName()); } @@ -120,8 +120,8 @@ public class RankingConstantTest { "}" )); searchBuilder.build(); - Search search = searchBuilder.getSearch(); - RankingConstant constant = search.rankingConstants().asMap().values().iterator().next(); + Schema schema = searchBuilder.getSearch(); + RankingConstant constant = schema.rankingConstants().asMap().values().iterator().next(); assertEquals(RankingConstant.PathType.URI, constant.getPathType()); assertEquals("http://somewhere.far.away/in/another-galaxy", constant.getUri()); } @@ -140,8 +140,8 @@ public class RankingConstantTest { "}" )); searchBuilder.build(); - Search search = searchBuilder.getSearch(); - RankingConstant constant = search.rankingConstants().asMap().values().iterator().next(); + Schema schema = searchBuilder.getSearch(); + RankingConstant constant = schema.rankingConstants().asMap().values().iterator().next(); assertEquals(RankingConstant.PathType.URI, constant.getPathType()); assertEquals("https://somewhere.far.away:4443/in/another-galaxy", constant.getUri()); } @@ -160,8 +160,8 @@ public class RankingConstantTest { "}" )); searchBuilder.build(); - Search search = searchBuilder.getSearch(); - RankingConstant constant = search.rankingConstants().asMap().values().iterator().next(); + Schema schema = searchBuilder.getSearch(); + RankingConstant constant = schema.rankingConstants().asMap().values().iterator().next(); assertEquals(RankingConstant.PathType.URI, constant.getPathType()); assertEquals("http://somewhere.far.away:4080/in/another-galaxy", constant.getUri()); } @@ -180,8 +180,8 @@ public class RankingConstantTest { "}" )); searchBuilder.build(); - Search search = searchBuilder.getSearch(); - RankingConstant constant = search.rankingConstants().asMap().values().iterator().next(); + Schema schema = searchBuilder.getSearch(); + RankingConstant constant = schema.rankingConstants().asMap().values().iterator().next(); assertEquals(RankingConstant.PathType.URI, constant.getPathType()); assertEquals("http:somewhere.far.away/in/another-galaxy", constant.getUri()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java index 9af026e164d..2904f9ed299 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionConstantsTestCase.java @@ -67,7 +67,7 @@ public class RankingExpressionConstantsTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile parent = rankProfileRegistry.get(s, "parent").compile(queryProfileRegistry, new ImportedMlModels()); assertEquals("0.0", parent.getFirstPhaseRanking().getRoot().toString()); @@ -111,7 +111,7 @@ public class RankingExpressionConstantsTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); try { rankProfileRegistry.get(s, "test").compile(new QueryProfileRegistry(), new ImportedMlModels()); fail("Should have caused an exception"); @@ -142,7 +142,7 @@ public class RankingExpressionConstantsTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile profile = rankProfileRegistry.get(s, "test"); assertEquals("safeLog(popShareSlowDecaySignal,-9.21034037)", profile.getFunctions().get("POP_SLOW_SCORE").function().getBody().getRoot().toString()); } @@ -170,7 +170,7 @@ public class RankingExpressionConstantsTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile profile = rankProfileRegistry.get(s, "test"); assertEquals("safeLog(popShareSlowDecaySignal,myValue)", profile.getFunctions().get("POP_SLOW_SCORE").function().getBody().getRoot().toString()); assertEquals("safeLog(popShareSlowDecaySignal,-9.21034037)", @@ -194,7 +194,7 @@ public class RankingExpressionConstantsTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile profile = rankProfileRegistry.get(s, "test"); assertEquals("k1 + (k2 + k3) / 100000000.0", profile.compile(new QueryProfileRegistry(), new ImportedMlModels()).getFunctions().get("rank_default").function().getBody().getRoot().toString()); @@ -220,7 +220,7 @@ public class RankingExpressionConstantsTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile profile = rankProfileRegistry.get(s, "test"); assertEquals("0.5 + 50 * (attribute(rating_yelp) - 3)", profile.compile(new QueryProfileRegistry(), new ImportedMlModels()).getFunctions().get("rank_default").function().getBody().getRoot().toString()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java index fdc08130375..52b8481f330 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionInliningTestCase.java @@ -66,7 +66,7 @@ public class RankingExpressionInliningTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile parent = rankProfileRegistry.get(s, "parent").compile(new QueryProfileRegistry(), new ImportedMlModels()); assertEquals("7.0 * (3 + attribute(a) + attribute(b) * (attribute(a) * 3 + if (7.0 < attribute(a), 1, 2) == 0))", @@ -126,7 +126,7 @@ public class RankingExpressionInliningTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile parent = rankProfileRegistry.get(s, "parent").compile(new QueryProfileRegistry(), new ImportedMlModels()); assertEquals("17.0", parent.getFirstPhaseRanking().getRoot().toString()); @@ -182,7 +182,7 @@ public class RankingExpressionInliningTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(new QueryProfileRegistry(), new ImportedMlModels()); assertEquals("attribute(a) + C + (attribute(b) + 1)", test.getFirstPhaseRanking().getRoot().toString()); @@ -216,7 +216,7 @@ public class RankingExpressionInliningTestCase extends SchemaTestCase { " }\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(new QueryProfileRegistry(), new ImportedMlModels()); assertEquals("foo(2)", test.getFirstPhaseRanking().getRoot().toString()); assertTrue("Does not contain expected warning", deployLogger.contains("Function 'foo' replaces " + @@ -246,9 +246,9 @@ public class RankingExpressionInliningTestCase extends SchemaTestCase { return b.toString(); } - private String getRankingExpression(String name, RankProfile rankProfile, Search search) { + private String getRankingExpression(String name, RankProfile rankProfile, Schema schema) { Optional<String> rankExpression = - new RawRankProfile(rankProfile, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(search), new TestProperties()) + new RawRankProfile(rankProfile, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), new ImportedMlModels(), new AttributeFields(schema), new TestProperties()) .configProperties() .stream() .filter(r -> r.getFirst().equals("rankingExpression(" + name + ").rankingScript")) diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java index f84f3d8c83f..192ac38a854 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionShadowingTestCase.java @@ -46,7 +46,7 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(new QueryProfileRegistry(), new ImportedMlModels()); List<Pair<String, String>> testRankProperties = createRawRankProfile(test, new QueryProfileRegistry(), s).configProperties(); assertEquals("(rankingExpression(sin@).rankingScript, 2 * 2)", @@ -87,7 +87,7 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(new QueryProfileRegistry(), new ImportedMlModels()); List<Pair<String, String>> testRankProperties = createRawRankProfile(test, new QueryProfileRegistry(), s).configProperties(); assertEquals("(rankingExpression(tan@).rankingScript, 2 * 2)", @@ -133,7 +133,7 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { "\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(new QueryProfileRegistry(), new ImportedMlModels()); List<Pair<String, String>> testRankProperties = createRawRankProfile(test, new QueryProfileRegistry(), s).configProperties(); assertEquals("(rankingExpression(sin@).rankingScript, 4.0 * 4.0)", @@ -194,7 +194,7 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { " }\n" + "}\n"); builder.build(); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(queryProfiles, new ImportedMlModels()); List<Pair<String, String>> testRankProperties = createRawRankProfile(test, queryProfiles, s).configProperties(); assertEquals("(rankingExpression(autogenerated_ranking_feature@).rankingScript, reduce(query(q) * constant(W_hidden), sum, input) + constant(b_input))", @@ -213,12 +213,12 @@ public class RankingExpressionShadowingTestCase extends SchemaTestCase { testRankProperties.get(8).toString()); } - private static RawRankProfile createRawRankProfile(RankProfile profile, QueryProfileRegistry queryProfiles, Search search) { + private static RawRankProfile createRawRankProfile(RankProfile profile, QueryProfileRegistry queryProfiles, Schema schema) { return new RawRankProfile(profile, new LargeRankExpressions(new MockFileRegistry()), queryProfiles, new ImportedMlModels(), - new AttributeFields(search), + new AttributeFields(schema), new TestProperties()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionValidationTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionValidationTestCase.java index 66e773cf3f8..0f42e7c5211 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionValidationTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionValidationTestCase.java @@ -22,8 +22,8 @@ public class RankingExpressionValidationTestCase extends SchemaTestCase { private void assertFailsExpression(String expression) throws ParseException { try { RankProfileRegistry registry = new RankProfileRegistry(); - Search search = importWithExpression(expression, registry); - new DerivedConfiguration(search, registry); // cause rank profile parsing + Schema schema = importWithExpression(expression, registry); + new DerivedConfiguration(schema, registry); // cause rank profile parsing fail("No exception on incorrect ranking expression " + expression); } catch (IllegalArgumentException e) { // Success @@ -31,7 +31,7 @@ public class RankingExpressionValidationTestCase extends SchemaTestCase { } } - private Search importWithExpression(String expression, RankProfileRegistry registry) throws ParseException { + private Schema importWithExpression(String expression, RankProfileRegistry registry) throws ParseException { SearchBuilder builder = new SearchBuilder(registry); builder.importString("search test {" + " document test { " + diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/ReservedWordsAsFieldNamesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/ReservedWordsAsFieldNamesTestCase.java index 9bb588a690b..9a1fe665e9b 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/ReservedWordsAsFieldNamesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/ReservedWordsAsFieldNamesTestCase.java @@ -15,10 +15,10 @@ public class ReservedWordsAsFieldNamesTestCase extends SchemaTestCase { @Test public void testIt() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/reserved_words_as_field_names.sd"); - assertNotNull(search.getDocument().getField("inline")); - assertNotNull(search.getDocument().getField("constants")); - assertNotNull(search.getDocument().getField("reference")); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/reserved_words_as_field_names.sd"); + assertNotNull(schema.getDocument().getField("inline")); + assertNotNull(schema.getDocument().getField("constants")); + assertNotNull(schema.getDocument().getField("reference")); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaImporterTestCase.java index 990fe8cb3d0..d382dc9f34a 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/SearchImporterTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaImporterTestCase.java @@ -30,7 +30,7 @@ import static org.junit.Assert.fail; * * @author bratseth */ -public class SearchImporterTestCase extends SchemaTestCase { +public class SchemaImporterTestCase extends SchemaTestCase { @Test @SuppressWarnings("deprecation") @@ -39,30 +39,30 @@ public class SearchImporterTestCase extends SchemaTestCase { SearchBuilder sb = new SearchBuilder(rankProfileRegistry, new QueryProfileRegistry()); sb.importFile("src/test/examples/simple.sd"); sb.build(); - Search search = sb.getSearch(); - assertEquals("simple",search.getName()); - assertTrue(search.hasDocument()); + Schema schema = sb.getSearch(); + assertEquals("simple", schema.getName()); + assertTrue(schema.hasDocument()); - SDDocumentType document = search.getDocument(); + SDDocumentType document = schema.getDocument(); assertEquals("simple", document.getName()); assertEquals(23, document.getFieldCount()); SDField field; Attribute attribute; - new MakeAliases(search, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles()).process(true, false); + new MakeAliases(schema, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles()).process(true, false); // First field field=(SDField) document.getField("title"); assertEquals(DataType.STRING,field.getDataType()); assertEquals("{ input title | tokenize normalize stem:\"BEST\" | summary title | index title; }", field.getIndexingScript().toString()); - assertFalse(search.getIndex("default").isPrefix()); - assertTrue(search.getIndex("title").isPrefix()); - Iterator<String> titleAliases=search.getIndex("title").aliasIterator(); + assertFalse(schema.getIndex("default").isPrefix()); + assertTrue(schema.getIndex("title").isPrefix()); + Iterator<String> titleAliases= schema.getIndex("title").aliasIterator(); assertEquals("aliaz",titleAliases.next()); assertEquals("analias.totitle",titleAliases.next()); assertEquals("analias.todefault", - search.getIndex("default").aliasIterator().next()); + schema.getIndex("default").aliasIterator().next()); assertEquals(RankType.IDENTITY, field.getRankType()); assertEquals(0, field.getAttributes().size()); assertNull(field.getStemming()); @@ -78,7 +78,7 @@ public class SearchImporterTestCase extends SchemaTestCase { field.getSummaryField("dyndesc").getTransform()); assertNull(field.getStemming()); assertTrue(field.getNormalizing().doRemoveAccents()); - assertEquals("hallo",search.getIndex("description").aliasIterator().next()); + assertEquals("hallo", schema.getIndex("description").aliasIterator().next()); // Third field field=(SDField) document.getField("chatter"); @@ -104,24 +104,24 @@ public class SearchImporterTestCase extends SchemaTestCase { assertEquals(1, field.getAttributes().size()); // Seventh field - field= search.getConcreteField("categories"); + field= schema.getConcreteField("categories"); assertEquals("{ input categories_src | lowercase | normalize | tokenize normalize stem:\"BEST\" | index categories; }", field.getIndexingScript().toString()); assertTrue(field.isHeader()); // Eight field - field= search.getConcreteField("categoriesagain"); + field= schema.getConcreteField("categoriesagain"); assertEquals("{ input categoriesagain_src | lowercase | normalize | tokenize normalize stem:\"BEST\" | index categoriesagain; }", field.getIndexingScript().toString()); assertTrue(field.isHeader()); // Ninth field - field= search.getConcreteField("exactemento"); + field= schema.getConcreteField("exactemento"); assertEquals("{ input exactemento_src | lowercase | tokenize normalize stem:\"BEST\" | index exactemento | summary exactemento; }", field.getIndexingScript().toString()); // Tenth field - field = search.getConcreteField("category_arr"); + field = schema.getConcreteField("category_arr"); assertEquals(1, field.getAttributes().size()); attribute = field.getAttributes().get("category_arr"); assertNotNull(attribute); @@ -131,7 +131,7 @@ public class SearchImporterTestCase extends SchemaTestCase { assertTrue(field.isHeader()); // Eleventh field - field = search.getConcreteField("measurement_arr"); + field = schema.getConcreteField("measurement_arr"); assertEquals(1, field.getAttributes().size()); attribute = field.getAttributes().get("measurement_arr"); assertEquals("measurement_arr", attribute.getName()); @@ -139,24 +139,24 @@ public class SearchImporterTestCase extends SchemaTestCase { assertEquals(Attribute.CollectionType.ARRAY, attribute.getCollectionType()); // Rank Profiles - RankProfile profile=rankProfileRegistry.get(search, "default"); + RankProfile profile=rankProfileRegistry.get(schema, "default"); assertNotNull(profile); assertNull(profile.getInheritedName()); assertNull(profile.getDeclaredRankSetting("measurement", RankProfile.RankSetting.Type.RANKTYPE)); assertEquals(RankType.EMPTY, profile.getRankSetting("measurement", RankProfile.RankSetting.Type.RANKTYPE).getValue()); - profile=rankProfileRegistry.get(search, "experimental"); + profile=rankProfileRegistry.get(schema, "experimental"); assertNotNull(profile); assertEquals("default",profile.getInheritedName()); assertEquals(RankType.IDENTITY, profile.getDeclaredRankSetting("measurement", RankProfile.RankSetting.Type.RANKTYPE).getValue()); - profile=rankProfileRegistry.get(search, "other"); + profile=rankProfileRegistry.get(schema, "other"); assertNotNull(profile); assertEquals("experimental",profile.getInheritedName()); // The extra-document field - SDField exact=search.getConcreteField("exact"); + SDField exact= schema.getConcreteField("exact"); assertNotNull("Extra field was parsed",exact); assertEquals("exact",exact.getName()); assertEquals(Stemming.NONE,exact.getStemming()); @@ -178,10 +178,10 @@ public class SearchImporterTestCase extends SchemaTestCase { @Test public void testIdImporting() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/strange.sd"); - SDField idecidemyide=(SDField) search.getDocument().getField("idecidemyide"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/strange.sd"); + SDField idecidemyide=(SDField) schema.getDocument().getField("idecidemyide"); assertEquals(5,idecidemyide.getId()); - SDField sodoi=(SDField) search.getDocument().getField("sodoi"); + SDField sodoi=(SDField) schema.getDocument().getField("sodoi"); assertEquals(7,sodoi.getId()); } 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 e11efeac31c..6155b1521b0 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/StemmingSettingTestCase.java @@ -20,32 +20,32 @@ public class StemmingSettingTestCase extends SchemaTestCase { @Test public void testStemmingSettings() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/stemmingsetting.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/stemmingsetting.sd"); - SDField artist = (SDField)search.getDocument().getField("artist"); - assertEquals(Stemming.SHORTEST, artist.getStemming(search)); + SDField artist = (SDField) schema.getDocument().getField("artist"); + assertEquals(Stemming.SHORTEST, artist.getStemming(schema)); - SDField title = (SDField)search.getDocument().getField("title"); - assertEquals(Stemming.NONE, title.getStemming(search)); + SDField title = (SDField) schema.getDocument().getField("title"); + assertEquals(Stemming.NONE, title.getStemming(schema)); - SDField song = (SDField)search.getDocument().getField("song"); - assertEquals(Stemming.MULTIPLE, song.getStemming(search)); + SDField song = (SDField) schema.getDocument().getField("song"); + assertEquals(Stemming.MULTIPLE, song.getStemming(schema)); - SDField track = (SDField)search.getDocument().getField("track"); - assertEquals(Stemming.SHORTEST, track.getStemming(search)); + SDField track = (SDField) schema.getDocument().getField("track"); + assertEquals(Stemming.SHORTEST, track.getStemming(schema)); - SDField backward = (SDField)search.getDocument().getField("backward"); - assertEquals(Stemming.SHORTEST, backward.getStemming(search)); + SDField backward = (SDField) schema.getDocument().getField("backward"); + assertEquals(Stemming.SHORTEST, backward.getStemming(schema)); - Index defaultIndex = search.getIndex("default"); + Index defaultIndex = schema.getIndex("default"); assertEquals(Stemming.SHORTEST, defaultIndex.getStemming()); } @Test public void requireThatStemmingIsDefaultBest() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/stemmingdefault.sd"); - assertNull(search.getConcreteField("my_str").getStemming()); - assertEquals(Stemming.BEST, search.getConcreteField("my_str").getStemming(search)); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/stemmingdefault.sd"); + assertNull(schema.getConcreteField("my_str").getStemming()); + assertEquals(Stemming.BEST, schema.getConcreteField("my_str").getStemming(schema)); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SummaryTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SummaryTestCase.java index 52e155fc9a5..a3adfc8dd9f 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/SummaryTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/SummaryTestCase.java @@ -265,7 +265,7 @@ public class SummaryTestCase { DeployLoggerStub logger = new DeployLoggerStub(); SearchBuilder.createFromStrings(logger, parent, child); logger.entries.forEach(e -> System.out.println(e)); - //assertTrue(logger.entries.isEmpty()); + // assertTrue(logger.entries.isEmpty()); } private static class TestValue { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java index 5d0e69f9ac4..a517f2544a6 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java @@ -7,7 +7,7 @@ import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.document.DocumenttypesConfig; import com.yahoo.document.config.DocumentmanagerConfig; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; @@ -54,8 +54,8 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase { return export(dirName, builder, config); } - DerivedConfiguration derive(String dirName, SearchBuilder builder, Search search) throws IOException { - DerivedConfiguration config = new DerivedConfiguration(search, + DerivedConfiguration derive(String dirName, SearchBuilder builder, Schema schema) throws IOException { + DerivedConfiguration config = new DerivedConfiguration(schema, builder.getRankProfileRegistry(), builder.getQueryProfileRegistry()); return export(dirName, builder, config); @@ -117,8 +117,8 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase { return derived; } - protected DerivedConfiguration assertCorrectDeriving(SearchBuilder builder, Search search, String name) throws IOException { - DerivedConfiguration derived = derive(name, builder, search); + protected DerivedConfiguration assertCorrectDeriving(SearchBuilder builder, Schema schema, String name) throws IOException { + DerivedConfiguration derived = derive(name, builder, schema); assertCorrectConfigFiles(name); return derived; } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java index c36a682fbd8..43dfb9f3bc5 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AttributeListTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.Attribute; @@ -25,10 +25,10 @@ public class AttributeListTestCase extends SchemaTestCase { @Test public void testDeriving() throws IOException, ParseException { // Test attribute importing - Search search = SearchBuilder.buildFromFile("src/test/examples/simple.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/simple.sd"); // Test attribute deriving - AttributeFields attributeFields = new AttributeFields(search); + AttributeFields attributeFields = new AttributeFields(schema); Iterator attributes = attributeFields.attributeIterator(); Attribute attribute; attribute = (Attribute)attributes.next(); @@ -71,8 +71,8 @@ public class AttributeListTestCase extends SchemaTestCase { @Test public void fields_in_array_of_struct_are_derived_into_array_attributes() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/derived/array_of_struct_attribute/test.sd"); - Iterator<Attribute> attributes = new AttributeFields(search).attributeIterator(); + Schema schema = SearchBuilder.buildFromFile("src/test/derived/array_of_struct_attribute/test.sd"); + Iterator<Attribute> attributes = new AttributeFields(schema).attributeIterator(); assertAttribute("elem_array.name", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, true, attributes.next()); assertAttribute("elem_array.weight", Attribute.Type.INTEGER, Attribute.CollectionType.ARRAY, false, attributes.next()); @@ -81,8 +81,8 @@ public class AttributeListTestCase extends SchemaTestCase { @Test public void fields_in_map_of_struct_are_derived_into_array_attributes() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/derived/map_of_struct_attribute/test.sd"); - Iterator<Attribute> attributes = new AttributeFields(search).attributeIterator(); + Schema schema = SearchBuilder.buildFromFile("src/test/derived/map_of_struct_attribute/test.sd"); + Iterator<Attribute> attributes = new AttributeFields(schema).attributeIterator(); assertAttribute("str_elem_map.key", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, true, attributes.next()); assertAttribute("str_elem_map.value.name", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, false, attributes.next()); @@ -101,7 +101,7 @@ public class AttributeListTestCase extends SchemaTestCase { @Test public void only_zcurve_attribute_is_derived_from_array_of_position_field() throws ParseException { - Search search = SearchBuilder.createFromString( + Schema schema = SearchBuilder.createFromString( joinLines("search test {", " document test {", " field pos_array type array<position> {", @@ -109,7 +109,7 @@ public class AttributeListTestCase extends SchemaTestCase { " }", " }", "}")).getSearch(); - Iterator<Attribute> attributes = new AttributeFields(search).attributeIterator(); + Iterator<Attribute> attributes = new AttributeFields(schema).attributeIterator(); assertAttribute("pos_array_zcurve", Attribute.Type.LONG, Attribute.CollectionType.ARRAY, true, attributes.next()); assertFalse(attributes.hasNext()); @@ -117,8 +117,8 @@ public class AttributeListTestCase extends SchemaTestCase { @Test public void fields_in_map_of_primitive_are_derived_into_array_attributes() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/derived/map_attribute/test.sd"); - Iterator<Attribute> attributes = new AttributeFields(search).attributeIterator(); + Schema schema = SearchBuilder.buildFromFile("src/test/derived/map_attribute/test.sd"); + Iterator<Attribute> attributes = new AttributeFields(schema).attributeIterator(); assertAttribute("str_map.key", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, true, attributes.next()); assertAttribute("str_map.value", Attribute.Type.STRING, Attribute.CollectionType.ARRAY, false, attributes.next()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/CasingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/CasingTestCase.java index 554a78c36ef..ad4ca1ebb46 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/CasingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/CasingTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; @@ -20,17 +20,17 @@ public class CasingTestCase extends SchemaTestCase { @Test public void testCasing() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/casing.sd"); - assertEquals(search.getIndex("color").getName(), "color"); - assertEquals(search.getIndex("Foo").getName(), "Foo"); - assertEquals(search.getIndex("Price").getName(), "Price"); - assertEquals(search.getAttribute("artist").getName(), "artist"); - assertEquals(search.getAttribute("Drummer").getName(), "Drummer"); - assertEquals(search.getAttribute("guitarist").getName(), "guitarist"); - assertEquals(search.getAttribute("title").getName(), "title"); - assertEquals(search.getAttribute("Trumpetist").getName(), "Trumpetist"); - assertEquals(search.getAttribute("Saxophonist").getName(), "Saxophonist"); - assertEquals(search.getAttribute("TenorSaxophonist").getName(), "TenorSaxophonist"); - assertEquals(search.getAttribute("Flutist").getName(), "Flutist"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/casing.sd"); + assertEquals(schema.getIndex("color").getName(), "color"); + assertEquals(schema.getIndex("Foo").getName(), "Foo"); + assertEquals(schema.getIndex("Price").getName(), "Price"); + assertEquals(schema.getAttribute("artist").getName(), "artist"); + assertEquals(schema.getAttribute("Drummer").getName(), "Drummer"); + assertEquals(schema.getAttribute("guitarist").getName(), "guitarist"); + assertEquals(schema.getAttribute("title").getName(), "title"); + assertEquals(schema.getAttribute("Trumpetist").getName(), "Trumpetist"); + assertEquals(schema.getAttribute("Saxophonist").getName(), "Saxophonist"); + assertEquals(schema.getAttribute("TenorSaxophonist").getName(), "TenorSaxophonist"); + assertEquals(schema.getAttribute("Flutist").getName(), "Flutist"); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/CombinedAttributeAndIndexSearchTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/CombinedAttributeAndIndexSchemaTestCase.java index dcf6a84fd2e..bb339688fcb 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/CombinedAttributeAndIndexSearchTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/CombinedAttributeAndIndexSchemaTestCase.java @@ -11,7 +11,7 @@ import java.io.IOException; * * @author bratseth */ -public class CombinedAttributeAndIndexSearchTestCase extends AbstractExportingTestCase { +public class CombinedAttributeAndIndexSchemaTestCase extends AbstractExportingTestCase { @Test public void testMultipleSummaries() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java index 8778a177b81..41ad7cd3bd1 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/EmptyRankProfileTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.document.DataType; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; @@ -20,18 +20,18 @@ public class EmptyRankProfileTestCase extends SchemaTestCase { @Test public void testDeriving() { - Search search = new Search("test"); - RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(search); + Schema schema = new Schema("test"); + RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(schema); SDDocumentType doc = new SDDocumentType("test"); - search.addDocument(doc); + schema.addDocument(doc); doc.addField(new SDField("a", DataType.STRING)); SDField field = new SDField("b", DataType.STRING); field.setLiteralBoost(500); doc.addField(field); doc.addField(new SDField("c", DataType.STRING)); - search = SearchBuilder.buildFromRawSearch(search, rankProfileRegistry, new QueryProfileRegistry()); - new DerivedConfiguration(search, rankProfileRegistry); + schema = SearchBuilder.buildFromRawSearch(schema, rankProfileRegistry, new QueryProfileRegistry()); + new DerivedConfiguration(schema, rankProfileRegistry); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/IdTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/IdTestCase.java index 1c63b8c462e..398a13209dd 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/IdTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/IdTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.document.DataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.processing.Processing; @@ -23,14 +23,14 @@ public class IdTestCase extends AbstractExportingTestCase { @Test public void testExplicitUpperCaseIdField() { - Search search = new Search("test"); + Schema schema = new Schema("test"); SDDocumentType document = new SDDocumentType("test"); - search.addDocument(document); + schema.addDocument(document); SDField uri = new SDField("URI", DataType.URI); uri.parseIndexingScript("{ summary | index }"); document.addField(uri); - new Processing().process(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true, false); + new Processing().process(schema, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true, false); assertNull(document.getField("uri")); assertNull(document.getField("Uri")); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java index a07eb1015a1..59950cee638 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.document.DataType; import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.searchdefinition.Index; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; @@ -143,20 +143,20 @@ public class InheritanceTestCase extends AbstractExportingTestCase { @Test public void testIndexSettingInheritance() { SDDocumentType parent = new SDDocumentType("parent"); - Search parentSearch = new Search("parent"); - parentSearch.addDocument(parent); + Schema parentSchema = new Schema("parent"); + parentSchema.addDocument(parent); SDField prefixed = parent.addField("prefixed", DataType.STRING); prefixed.parseIndexingScript("{ index }"); prefixed.addIndex(new Index("prefixed", true)); SDDocumentType child = new SDDocumentType("child"); child.inherit(parent); - Search childSearch = new Search("child"); - childSearch.addDocument(child); + Schema childSchema = new Schema("child"); + childSchema.addDocument(child); prefixed = (SDField)child.getField("prefixed"); assertNotNull(prefixed); - assertEquals(new Index("prefixed", true), childSearch.getIndex("prefixed")); + assertEquals(new Index("prefixed", true), childSchema.getIndex("prefixed")); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/LiteralBoostTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/LiteralBoostTestCase.java index 070d7ff5337..b12ca6d1c62 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/LiteralBoostTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/LiteralBoostTestCase.java @@ -6,7 +6,7 @@ import com.yahoo.document.DataType; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; @@ -29,19 +29,19 @@ public class LiteralBoostTestCase extends AbstractExportingTestCase { */ @Test public void testLiteralBoost() { - Search search=new Search("literalboost"); - RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(search); + Schema schema =new Schema("literalboost"); + RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(schema); SDDocumentType document=new SDDocumentType("literalboost"); - search.addDocument(document); + schema.addDocument(document); SDField field1= document.addField("a", DataType.STRING); field1.parseIndexingScript("{ index }"); field1.setLiteralBoost(20); - RankProfile other=new RankProfile("other", search, rankProfileRegistry, search.rankingConstants()); + RankProfile other=new RankProfile("other", schema, rankProfileRegistry, schema.rankingConstants()); rankProfileRegistry.add(other); other.addRankSetting(new RankProfile.RankSetting("a", RankProfile.RankSetting.Type.LITERALBOOST, 333)); - new Processing().process(search, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles(), true, false); - DerivedConfiguration derived=new DerivedConfiguration(search, rankProfileRegistry); + new Processing().process(schema, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles(), true, false); + DerivedConfiguration derived=new DerivedConfiguration(schema, rankProfileRegistry); // Check attribute fields derived.getAttributeFields(); // TODO: assert content @@ -49,7 +49,7 @@ public class LiteralBoostTestCase extends AbstractExportingTestCase { // Check il script addition assertIndexing(Arrays.asList("clear_state | guard { input a | tokenize normalize stem:\"BEST\" | index a; }", "clear_state | guard { input a | tokenize | index a_literal; }"), - search); + schema); // Check index info addition IndexInfo indexInfo=derived.getIndexInfo(); @@ -61,23 +61,23 @@ public class LiteralBoostTestCase extends AbstractExportingTestCase { */ @Test public void testNonDefaultRankLiteralBoost() { - Search search=new Search("literalboost"); - RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(search); + Schema schema =new Schema("literalboost"); + RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(schema); SDDocumentType document=new SDDocumentType("literalboost"); - search.addDocument(document); + schema.addDocument(document); SDField field1= document.addField("a", DataType.STRING); field1.parseIndexingScript("{ index }"); - RankProfile other=new RankProfile("other", search, rankProfileRegistry, search.rankingConstants()); + RankProfile other=new RankProfile("other", schema, rankProfileRegistry, schema.rankingConstants()); rankProfileRegistry.add(other); other.addRankSetting(new RankProfile.RankSetting("a", RankProfile.RankSetting.Type.LITERALBOOST, 333)); - search = SearchBuilder.buildFromRawSearch(search, rankProfileRegistry, new QueryProfileRegistry()); - DerivedConfiguration derived = new DerivedConfiguration(search, rankProfileRegistry); + schema = SearchBuilder.buildFromRawSearch(schema, rankProfileRegistry, new QueryProfileRegistry()); + DerivedConfiguration derived = new DerivedConfiguration(schema, rankProfileRegistry); // Check il script addition assertIndexing(Arrays.asList("clear_state | guard { input a | tokenize normalize stem:\"BEST\" | index a; }", "clear_state | guard { input a | tokenize | index a_literal; }"), - search); + schema); // Check index info addition IndexInfo indexInfo=derived.getIndexInfo(); @@ -87,10 +87,10 @@ public class LiteralBoostTestCase extends AbstractExportingTestCase { /** Tests literal boosts in two fields going to the same index */ @Test public void testTwoLiteralBoostFields() { - Search search=new Search("msb"); - RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(search); + Schema schema =new Schema("msb"); + RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(schema); SDDocumentType document=new SDDocumentType("msb"); - search.addDocument(document); + schema.addDocument(document); SDField field1= document.addField("title", DataType.STRING); field1.parseIndexingScript("{ summary | index }"); field1.setLiteralBoost(20); @@ -98,13 +98,13 @@ public class LiteralBoostTestCase extends AbstractExportingTestCase { field2.parseIndexingScript("{ summary | index }"); field2.setLiteralBoost(20); - search = SearchBuilder.buildFromRawSearch(search, rankProfileRegistry, new QueryProfileRegistry()); - new DerivedConfiguration(search, rankProfileRegistry); + schema = SearchBuilder.buildFromRawSearch(schema, rankProfileRegistry, new QueryProfileRegistry()); + new DerivedConfiguration(schema, rankProfileRegistry); assertIndexing(Arrays.asList("clear_state | guard { input title | tokenize normalize stem:\"BEST\" | summary title | index title; }", "clear_state | guard { input body | tokenize normalize stem:\"BEST\" | summary body | index body; }", "clear_state | guard { input title | tokenize | index title_literal; }", "clear_state | guard { input body | tokenize | index body_literal; }"), - search); + schema); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SearchOrdererTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SchemaOrdererTestCase.java index 00fc07de221..ef939aa5093 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SearchOrdererTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SchemaOrdererTestCase.java @@ -5,7 +5,7 @@ import com.yahoo.document.ReferenceDataType; import com.yahoo.document.TemporaryStructuredDataType; import com.yahoo.searchdefinition.DocumentReference; import com.yahoo.searchdefinition.DocumentReferences; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; @@ -26,33 +26,33 @@ import static org.junit.Assert.assertEquals; * @author bratseth * @author bjorncs */ -public class SearchOrdererTestCase extends SchemaTestCase { +public class SchemaOrdererTestCase extends SchemaTestCase { - private static Map<String, Search> createSchemas() { - Map<String, Search> schemas = new HashMap<>(); + private static Map<String, Schema> createSchemas() { + Map<String, Schema> schemas = new HashMap<>(); - Search grandParent = createSchema("grandParent", schemas); + Schema grandParent = createSchema("grandParent", schemas); - Search mother = createSchema("mother", schemas); + Schema mother = createSchema("mother", schemas); inherit(mother, grandParent); - Search father = createSchema("father", schemas); + Schema father = createSchema("father", schemas); inherit(father, grandParent); createDocumentReference(father, mother, "wife_ref"); - Search daugther = createSchema("daughter", schemas); + Schema daugther = createSchema("daughter", schemas); inherit(daugther, father); inherit(daugther, mother); - Search son = createSchema("son", schemas); + Schema son = createSchema("son", schemas); inherit(son, father); inherit(son, mother); - Search product = createSchema("product", schemas); + Schema product = createSchema("product", schemas); - Search pc = createSchema("pc", schemas); + Schema pc = createSchema("pc", schemas); inherit(pc, product); - Search pcAccessory = createSchema("accessory-pc", schemas); + Schema pcAccessory = createSchema("accessory-pc", schemas); inherit(pcAccessory, product); createDocumentReference(pcAccessory, pc, "pc_ref"); @@ -61,34 +61,34 @@ public class SearchOrdererTestCase extends SchemaTestCase { return schemas; } - private static Search createSchema(String name, Map<String, Search> schemas) { - Search search = new Search(name); + private static Schema createSchema(String name, Map<String, Schema> schemas) { + Schema schema = new Schema(name); SDDocumentType document = new SDDocumentType(name); document.setDocumentReferences(new DocumentReferences(emptyMap())); - search.addDocument(document); - schemas.put(search.getName(), search); - return search; + schema.addDocument(document); + schemas.put(schema.getName(), schema); + return schema; } - private static void inherit(Search inheritee, Search inherited) { + private static void inherit(Schema inheritee, Schema inherited) { inheritee.getDocument().inherit(inherited.getDocument()); } private static void assertOrder(List<String> expectedSearchOrder, List<String> inputNames) { - Map<String, Search> schemas = createSchemas(); - List<Search> inputSchemas = inputNames.stream() - .map(schemas::get) - .map(Objects::requireNonNull) - .collect(toList()); + Map<String, Schema> schemas = createSchemas(); + List<Schema> inputSchemas = inputNames.stream() + .map(schemas::get) + .map(Objects::requireNonNull) + .collect(toList()); List<String> actualSearchOrder = new SearchOrderer() .order(inputSchemas) .stream() - .map(Search::getName) + .map(Schema::getName) .collect(toList()); assertEquals(expectedSearchOrder, actualSearchOrder); } - private static void createDocumentReference(Search from, Search to, String refFieldName) { + private static void createDocumentReference(Schema from, Schema to, String refFieldName) { SDField refField = new TemporarySDField(refFieldName, ReferenceDataType.createWithInferredId(TemporaryStructuredDataType.create(to.getName()))); SDDocumentType fromDocument = from.getDocument(); fromDocument.addField(refField); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java index 08d888aba0b..106f5a54cfe 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.derived; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; @@ -24,14 +24,14 @@ public class SimpleInheritTestCase extends AbstractExportingTestCase { builder.importFile(expectedResultsDirName + "child.sd"); builder.build(); - Search search = builder.getSearch("child"); + Schema schema = builder.getSearch("child"); String toDirName = "temp/" + name; File toDir = new File(toDirName); toDir.mkdirs(); deleteContent(toDir); - DerivedConfiguration config = new DerivedConfiguration(search, builder.getRankProfileRegistry()); + DerivedConfiguration config = new DerivedConfiguration(schema, builder.getRankProfileRegistry()); config.export(toDirName); checkDir(toDirName, expectedResultsDirName); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java index adc8b82f5fe..6ed03f7b237 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryMapTestCase.java @@ -28,8 +28,8 @@ import static org.junit.Assert.assertTrue; public class SummaryMapTestCase extends SchemaTestCase { @Test public void testDeriving() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/simple.sd"); - SummaryMap summaryMap=new SummaryMap(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/simple.sd"); + SummaryMap summaryMap=new SummaryMap(schema); Iterator transforms=summaryMap.resultTransformIterator(); FieldResultTransform transform = (FieldResultTransform)transforms.next(); @@ -72,14 +72,14 @@ public class SummaryMapTestCase extends SchemaTestCase { } @Test public void testPositionDeriving() { - Search search = new Search("store"); + Schema schema = new Schema("store"); SDDocumentType document = new SDDocumentType("store"); - search.addDocument(document); + schema.addDocument(document); String fieldName = "location"; SDField field = document.addField(fieldName, PositionDataType.INSTANCE); field.parseIndexingScript("{ attribute | summary }"); - new Processing().process(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true, false); - SummaryMap summaryMap = new SummaryMap(search); + new Processing().process(schema, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true, false); + SummaryMap summaryMap = new SummaryMap(schema); Iterator transforms = summaryMap.resultTransformIterator(); @@ -186,7 +186,7 @@ public class SummaryMapTestCase extends SchemaTestCase { assertEquals(expFieldName, override.arguments()); } - private Search buildSearch(String field) throws ParseException { + private Schema buildSearch(String field) throws ParseException { var builder = new SearchBuilder(new RankProfileRegistry()); builder.importString(joinLines("search test {", " document test {", diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java index e92f81052de..67403cdd25a 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SummaryTestCase.java @@ -2,7 +2,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.config.model.application.provider.BaseDeployLogger; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; @@ -35,8 +35,8 @@ public class SummaryTestCase extends SchemaTestCase { " }", " }", "}"); - Search search = SearchBuilder.createFromString(sd).getSearch(); - SummaryClass summary = new SummaryClass(search, search.getSummary("default"), new BaseDeployLogger()); + Schema schema = SearchBuilder.createFromString(sd).getSearch(); + SummaryClass summary = new SummaryClass(schema, schema.getSummary("default"), new BaseDeployLogger()); assertEquals(SummaryClassField.Type.RAW, summary.getField("raw_field").getType()); } @@ -50,15 +50,15 @@ public class SummaryTestCase extends SchemaTestCase { " }", " }", "}"); - Search search = SearchBuilder.createFromString(sd).getSearch(); - SummaryClass summary = new SummaryClass(search, search.getSummary("default"), new BaseDeployLogger()); + Schema schema = SearchBuilder.createFromString(sd).getSearch(); + SummaryClass summary = new SummaryClass(schema, schema.getSummary("default"), new BaseDeployLogger()); assertEquals(SummaryClassField.Type.DATA, summary.getField("raw_field").getType()); } @Test public void testDeriving() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/simple.sd"); - SummaryClass summary = new SummaryClass(search, search.getSummary("default"), new BaseDeployLogger()); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/simple.sd"); + SummaryClass summary = new SummaryClass(schema, schema.getSummary("default"), new BaseDeployLogger()); assertEquals("default", summary.getName()); Iterator<SummaryClassField> fields = summary.fieldIterator(); @@ -122,18 +122,18 @@ public class SummaryTestCase extends SchemaTestCase { @Test public void reference_fields_can_be_part_of_summary_classes() throws ParseException { - Search adSearch = buildCampaignAdModel(); + Schema adSchema = buildCampaignAdModel(); - SummaryClass defaultClass = new SummaryClass(adSearch, adSearch.getSummary("default"), new BaseDeployLogger()); + SummaryClass defaultClass = new SummaryClass(adSchema, adSchema.getSummary("default"), new BaseDeployLogger()); assertEquals(SummaryClassField.Type.LONGSTRING, defaultClass.getField("campaign_ref").getType()); assertEquals(SummaryClassField.Type.LONGSTRING, defaultClass.getField("other_campaign_ref").getType()); - SummaryClass myClass = new SummaryClass(adSearch, adSearch.getSummary("my_summary"), new BaseDeployLogger()); + SummaryClass myClass = new SummaryClass(adSchema, adSchema.getSummary("my_summary"), new BaseDeployLogger()); assertNull(myClass.getField("campaign_ref")); assertEquals(SummaryClassField.Type.LONGSTRING, myClass.getField("other_campaign_ref").getType()); } - private static Search buildCampaignAdModel() throws ParseException { + private static Schema buildCampaignAdModel() throws ParseException { SearchBuilder builder = new SearchBuilder(); builder.importString("search campaign { document campaign {} }"); builder.importString(joinLines("search ad {", @@ -173,8 +173,8 @@ public class SummaryTestCase extends SchemaTestCase { assertOmitSummaryFeatures(false, search, "baz"); } - private void assertOmitSummaryFeatures(boolean expected, Search search, String summaryName) { - var summary = new SummaryClass(search, search.getSummary(summaryName), new BaseDeployLogger()); + private void assertOmitSummaryFeatures(boolean expected, Schema schema, String summaryName) { + var summary = new SummaryClass(schema, schema.getSummary(summaryName), new BaseDeployLogger()); var config = new SummaryConfig.Classes(summary.getSummaryClassConfig()); assertEquals(expected, config.omitsummaryfeatures()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java index 2b65361e922..bfed1efe398 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TypeConversionTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.document.DataType; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; @@ -23,16 +23,16 @@ public class TypeConversionTestCase extends SchemaTestCase { /** Tests that exact-string stuff is not spilled over to the default index */ @Test public void testExactStringToStringTypeConversion() { - Search search = new Search("test"); - RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(search); + Schema schema = new Schema("test"); + RankProfileRegistry rankProfileRegistry = RankProfileRegistry.createRankProfileRegistryWithBuiltinRankProfiles(schema); SDDocumentType document = new SDDocumentType("test"); - search.addDocument(document); + schema.addDocument(document); SDField a = new SDField("a", DataType.STRING); a.parseIndexingScript("{ index }"); document.addField(a); - new Processing().process(search, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles(), true, false); - DerivedConfiguration derived = new DerivedConfiguration(search, rankProfileRegistry); + new Processing().process(schema, new BaseDeployLogger(), rankProfileRegistry, new QueryProfiles(), true, false); + DerivedConfiguration derived = new DerivedConfiguration(schema, rankProfileRegistry); IndexInfo indexInfo = derived.getIndexInfo(); assertFalse(indexInfo.hasCommand("default", "compact-to-term")); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/VsmFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/VsmFieldsTestCase.java index 3e3904fa250..55702c9e1a7 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/VsmFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/VsmFieldsTestCase.java @@ -7,7 +7,7 @@ import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.document.ReferenceDataType; import com.yahoo.document.TemporaryStructuredDataType; import com.yahoo.searchdefinition.Application; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.document.TemporarySDField; @@ -23,13 +23,13 @@ public class VsmFieldsTestCase { @Test public void reference_type_field_is_unsearchable() { - Search search = new Search("test", new Application(MockApplicationPackage.createEmpty()), new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); - search.addDocument(new SDDocumentType("test")); + Schema schema = new Schema("test", new Application(MockApplicationPackage.createEmpty()), new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); + schema.addDocument(new SDDocumentType("test")); SDField refField = new TemporarySDField("ref_field", ReferenceDataType.createWithInferredId(TemporaryStructuredDataType.create("parent_type"))); refField.parseIndexingScript("{ summary }"); - search.getDocument().addField(refField); + schema.getDocument().addField(refField); - VsmFields vsmFields = new VsmFields(search); + VsmFields vsmFields = new VsmFields(schema); VsmfieldsConfig.Builder cfgBuilder = new VsmfieldsConfig.Builder(); vsmFields.getConfig(cfgBuilder); VsmfieldsConfig cfg = cfgBuilder.build(); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/document/ComplexAttributeFieldUtilsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/document/ComplexAttributeFieldUtilsTestCase.java index a91911f6fef..449e8054728 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/document/ComplexAttributeFieldUtilsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/document/ComplexAttributeFieldUtilsTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.document; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.parser.ParseException; import org.junit.Test; @@ -17,8 +17,8 @@ public class ComplexAttributeFieldUtilsTestCase { private final ImmutableSDField field; FixtureBase(String fieldName, String sdContent) throws ParseException { - Search search = SearchBuilder.createFromString(sdContent).getSearch(); - field = search.getConcreteField(fieldName); + Schema schema = SearchBuilder.createFromString(sdContent).getSearch(); + field = schema.getConcreteField(fieldName); } public ImmutableSDField field() { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java index d7b31af11b8..715b7b803e2 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AddAttributeTransformToSummaryOfImportedFieldsTest.java @@ -8,7 +8,7 @@ import com.yahoo.document.DataType; import com.yahoo.document.Field; import com.yahoo.searchdefinition.Application; import com.yahoo.searchdefinition.DocumentReference; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.TestableDeployLogger; import com.yahoo.searchdefinition.document.ImportedField; import com.yahoo.searchdefinition.document.ImportedFields; @@ -35,39 +35,39 @@ public class AddAttributeTransformToSummaryOfImportedFieldsTest { @Test public void attribute_summary_transform_applied_to_summary_field_of_imported_field() { - Search search = createSearchWithDocument(DOCUMENT_NAME); - search.setImportedFields(createSingleImportedField(IMPORTED_FIELD_NAME)); - search.addSummary(createDocumentSummary(IMPORTED_FIELD_NAME, search)); + Schema schema = createSearchWithDocument(DOCUMENT_NAME); + schema.setImportedFields(createSingleImportedField(IMPORTED_FIELD_NAME)); + schema.addSummary(createDocumentSummary(IMPORTED_FIELD_NAME, schema)); AddAttributeTransformToSummaryOfImportedFields processor = new AddAttributeTransformToSummaryOfImportedFields( - search,null,null,null); + schema, null, null, null); processor.process(true, false); - SummaryField summaryField = search.getSummaries().get(SUMMARY_NAME).getSummaryField(IMPORTED_FIELD_NAME); + SummaryField summaryField = schema.getSummaries().get(SUMMARY_NAME).getSummaryField(IMPORTED_FIELD_NAME); SummaryTransform actualTransform = summaryField.getTransform(); assertEquals(SummaryTransform.ATTRIBUTE, actualTransform); } - private static Search createSearch(String documentType) { - return new Search(documentType, new Application(MockApplicationPackage.createEmpty()), new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); + private static Schema createSearch(String documentType) { + return new Schema(documentType, new Application(MockApplicationPackage.createEmpty()), new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); } - private static Search createSearchWithDocument(String documentName) { - Search search = createSearch(documentName); - SDDocumentType document = new SDDocumentType(documentName, search); - search.addDocument(document); - return search; + private static Schema createSearchWithDocument(String documentName) { + Schema schema = createSearch(documentName); + SDDocumentType document = new SDDocumentType(documentName, schema); + schema.addDocument(document); + return schema; } private static ImportedFields createSingleImportedField(String fieldName) { - Search targetSearch = createSearch("target_doc"); + Schema targetSchema = createSearch("target_doc"); SDField targetField = new SDField("target_field", DataType.INT); - DocumentReference documentReference = new DocumentReference(new Field("reference_field"), targetSearch); + DocumentReference documentReference = new DocumentReference(new Field("reference_field"), targetSchema); ImportedField importedField = new ImportedSimpleField(fieldName, documentReference, targetField); return new ImportedFields(Collections.singletonMap(fieldName, importedField)); } - private static DocumentSummary createDocumentSummary(String fieldName, Search search) { - DocumentSummary summary = new DocumentSummary("mysummary", search); + private static DocumentSummary createDocumentSummary(String fieldName, Schema schema) { + DocumentSummary summary = new DocumentSummary("mysummary", schema); summary.add(new SummaryField(fieldName, DataType.INT)); return summary; } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFieldsTestCase.java index f9796432de8..21fab6ee01c 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AdjustPositionSummaryFieldsTestCase.java @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.document.DataType; import com.yahoo.document.PositionDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; import com.yahoo.vespa.documentmodel.SummaryTransform; @@ -73,7 +73,7 @@ public class AdjustPositionSummaryFieldsTestCase { public void test_pos_default_summary_no_attr_no_rename() { SearchModel model = new SearchModel(false, false, false); model.resolve(); - assertNull(model.childSearch.getSummary("default")); // ImplicitSummaries processing not run in this test + assertNull(model.childSchema.getSummary("default")); // ImplicitSummaries processing not run in this test } @Test @@ -175,21 +175,21 @@ public class AdjustPositionSummaryFieldsTestCase { SearchModel(boolean importedPos, boolean setupPosAttr, boolean setupBadAttr) { super(); if (importedPos) { - createPositionField(parentSearch, setupPosAttr, setupBadAttr); + createPositionField(parentSchema, setupPosAttr, setupBadAttr); } - addRefField(childSearch, parentSearch, "ref"); + addRefField(childSchema, parentSchema, "ref"); if (importedPos) { addImportedField("my_pos", "ref", "pos"); } else { - createPositionField(childSearch, setupPosAttr, setupBadAttr); + createPositionField(childSchema, setupPosAttr, setupBadAttr); } } - private void createPositionField(Search search, boolean setupPosAttr, boolean setupBadAttr) { + private void createPositionField(Schema schema, boolean setupPosAttr, boolean setupBadAttr) { String ilScript = setupPosAttr ? "{ summary | attribute }" : "{ summary }"; - search.getDocument().addField(createField("pos", PositionDataType.INSTANCE, ilScript)); + schema.getDocument().addField(createField("pos", PositionDataType.INSTANCE, ilScript)); if (setupBadAttr) { - search.getDocument().addField(createField("pos_zcurve", DataType.LONG, "{ attribute }")); + schema.getDocument().addField(createField("pos_zcurve", DataType.LONG, "{ attribute }")); } } @@ -198,10 +198,10 @@ public class AdjustPositionSummaryFieldsTestCase { } public void addSummaryField(String summaryName, String fieldName, DataType dataType, SummaryTransform transform, String source) { - DocumentSummary summary = childSearch.getSummary(summaryName); + DocumentSummary summary = childSchema.getSummary(summaryName); if (summary == null) { - summary = new DocumentSummary(summaryName, childSearch); - childSearch.addSummary(summary); + summary = new DocumentSummary(summaryName, childSchema); + childSchema.addSummary(summary); } SummaryField summaryField = new SummaryField(fieldName, dataType); if (source != null) { @@ -218,7 +218,7 @@ public class AdjustPositionSummaryFieldsTestCase { } public void assertNoSummaryField(String summaryName, String fieldName) { - DocumentSummary summary = childSearch.getSummary(summaryName); + DocumentSummary summary = childSchema.getSummary(summaryName); assertNotNull(summary); SummaryField summaryField = summary.getSummaryField(fieldName); assertNull(summaryField); @@ -229,7 +229,7 @@ public class AdjustPositionSummaryFieldsTestCase { } public void assertSummaryField(String summaryName, String fieldName, DataType dataType, SummaryTransform transform, String source) { - DocumentSummary summary = childSearch.getSummary(summaryName); + DocumentSummary summary = childSchema.getSummary(summaryName); assertNotNull(summary); SummaryField summaryField = summary.getSummaryField(fieldName); assertNotNull(summaryField); @@ -244,18 +244,18 @@ public class AdjustPositionSummaryFieldsTestCase { } public void resolve() { - resolve(parentSearch); - resolve(childSearch); + resolve(parentSchema); + resolve(childSchema); } - private static void resolve(Search search) { - new CreatePositionZCurve(search, null, null, null).process(true, false); - assertNotNull(search.temporaryImportedFields().get()); - assertFalse(search.importedFields().isPresent()); - new ImportedFieldsResolver(search, null, null, null).process(true, false); - assertFalse(search.temporaryImportedFields().isPresent()); - assertNotNull(search.importedFields().get()); - new AdjustPositionSummaryFields(search, null, null, null).process(true, false); + private static void resolve(Schema schema) { + new CreatePositionZCurve(schema, null, null, null).process(true, false); + assertNotNull(schema.temporaryImportedFields().get()); + assertFalse(schema.importedFields().isPresent()); + new ImportedFieldsResolver(schema, null, null, null).process(true, false); + assertFalse(schema.temporaryImportedFields().isPresent()); + assertNotNull(schema.importedFields().get()); + new AdjustPositionSummaryFields(schema, null, null, null).process(true, false); } } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AssertIndexingScript.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AssertIndexingScript.java index c9f9e8c50f9..8a0c1e2fe71 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/AssertIndexingScript.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/AssertIndexingScript.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.IndexingScript; import com.yahoo.vespa.indexinglanguage.expressions.Expression; import com.yahoo.vespa.indexinglanguage.parser.ParseException; @@ -17,8 +17,8 @@ import static org.junit.Assert.fail; */ public abstract class AssertIndexingScript { - public static void assertIndexing(List<String> expected, Search search) { - assertIndexing(expected, new IndexingScript(search).expressions()); + public static void assertIndexing(List<String> expected, Schema schema) { + assertIndexing(expected, new IndexingScript(schema).expressions()); } public static void assertIndexing(List<String> expected, IndexingScript script) { 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 7f72cc96ccf..c2d1023826c 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 @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.Matching; @@ -20,20 +20,20 @@ import static org.junit.Assert.assertFalse; public class AttributesExactMatchTestCase extends SchemaTestCase { @Test public void testAttributesExactMatch() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/attributesexactmatch.sd"); - 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); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/attributesexactmatch.sd"); + assertEquals(schema.getConcreteField("color").getMatching().getType(), Matching.Type.EXACT); + assertEquals(schema.getConcreteField("artist").getMatching().getType(), Matching.Type.WORD); + assertEquals(schema.getConcreteField("drummer").getMatching().getType(), Matching.Type.WORD); + assertEquals(schema.getConcreteField("guitarist").getMatching().getType(), Matching.Type.TEXT); + assertEquals(schema.getConcreteField("saxophonist_arr").getMatching().getType(), Matching.Type.WORD); + assertEquals(schema.getConcreteField("flutist").getMatching().getType(), Matching.Type.TEXT); - 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)); + assertFalse(schema.getConcreteField("genre").getMatching().getType().equals(Matching.Type.EXACT)); + assertFalse(schema.getConcreteField("title").getMatching().getType().equals(Matching.Type.EXACT)); + assertFalse(schema.getConcreteField("trumpetist").getMatching().getType().equals(Matching.Type.EXACT)); + assertFalse(schema.getConcreteField("genre").getMatching().getType().equals(Matching.Type.WORD)); + assertFalse(schema.getConcreteField("title").getMatching().getType().equals(Matching.Type.WORD)); + assertFalse(schema.getConcreteField("trumpetist").getMatching().getType().equals(Matching.Type.WORD)); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/DictionaryTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/DictionaryTestCase.java index db87ae698b4..643d46e2d48 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/DictionaryTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/DictionaryTestCase.java @@ -3,13 +3,12 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.model.test.TestUtil; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.derived.AttributeFields; import com.yahoo.searchdefinition.document.Case; import com.yahoo.searchdefinition.document.Dictionary; import com.yahoo.searchdefinition.document.ImmutableSDField; -import com.yahoo.searchdefinition.document.Matching; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.config.search.AttributesConfig; import org.junit.Test; @@ -24,13 +23,13 @@ import static org.junit.Assert.fail; * @author baldersheim */ public class DictionaryTestCase { - private static AttributesConfig getConfig(Search search) { - AttributeFields attributes = new AttributeFields(search); + private static AttributesConfig getConfig(Schema schema) { + AttributeFields attributes = new AttributeFields(schema); AttributesConfig.Builder builder = new AttributesConfig.Builder(); attributes.getConfig(builder); return builder.build(); } - private Search createSearch(String def) throws ParseException { + private Schema createSearch(String def) throws ParseException { SearchBuilder sb = SearchBuilder.createFromString(def); return sb.getSearch(); } @@ -47,20 +46,20 @@ public class DictionaryTestCase { " }", " }", "}"); - Search search = createSearch(def); - assertNull(search.getAttribute("s1").getDictionary()); - assertNull(search.getAttribute("n1").getDictionary()); + Schema schema = createSearch(def); + assertNull(schema.getAttribute("s1").getDictionary()); + assertNull(schema.getAttribute("n1").getDictionary()); assertEquals(AttributesConfig.Attribute.Dictionary.Type.BTREE, - getConfig(search).attribute().get(0).dictionary().type()); + getConfig(schema).attribute().get(0).dictionary().type()); assertEquals(AttributesConfig.Attribute.Dictionary.Type.BTREE, - getConfig(search).attribute().get(1).dictionary().type()); + getConfig(schema).attribute().get(1).dictionary().type()); assertEquals(AttributesConfig.Attribute.Dictionary.Match.UNCASED, - getConfig(search).attribute().get(0).dictionary().match()); + getConfig(schema).attribute().get(0).dictionary().match()); assertEquals(AttributesConfig.Attribute.Dictionary.Match.UNCASED, - getConfig(search).attribute().get(1).dictionary().match()); + getConfig(schema).attribute().get(1).dictionary().match()); } - Search verifyDictionaryControl(Dictionary.Type expected, String type, String ... cfg) throws ParseException + Schema verifyDictionaryControl(Dictionary.Type expected, String type, String ... cfg) throws ParseException { String def = TestUtil.joinLines( "search test {", @@ -72,11 +71,11 @@ public class DictionaryTestCase { " }", " }", "}"); - Search search = createSearch(def); + Schema schema = createSearch(def); AttributesConfig.Attribute.Dictionary.Type.Enum expectedConfig = toCfg(expected); - assertEquals(expected, search.getAttribute("n1").getDictionary().getType()); - assertEquals(expectedConfig, getConfig(search).attribute().get(0).dictionary().type()); - return search; + assertEquals(expected, schema.getAttribute("n1").getDictionary().getType()); + assertEquals(expectedConfig, getConfig(schema).attribute().get(0).dictionary().type()); + return schema; } AttributesConfig.Attribute.Dictionary.Type.Enum toCfg(Dictionary.Type v) { @@ -95,12 +94,12 @@ public class DictionaryTestCase { void verifyStringDictionaryControl(Dictionary.Type expectedType, Case expectedCase, Case matchCasing, String ... cfg) throws ParseException { - Search search = verifyDictionaryControl(expectedType, "string", cfg); - ImmutableSDField f = search.getField("n1"); + Schema schema = verifyDictionaryControl(expectedType, "string", cfg); + ImmutableSDField f = schema.getField("n1"); AttributesConfig.Attribute.Dictionary.Match.Enum expectedCaseCfg = toCfg(expectedCase); assertEquals(matchCasing, f.getMatching().getCase()); - assertEquals(expectedCase, search.getAttribute("n1").getDictionary().getMatch()); - assertEquals(expectedCaseCfg, getConfig(search).attribute().get(0).dictionary().match()); + assertEquals(expectedCase, schema.getAttribute("n1").getDictionary().getMatch()); + assertEquals(expectedCaseCfg, getConfig(schema).attribute().get(0).dictionary().match()); } @Test @@ -240,12 +239,12 @@ public class DictionaryTestCase { " }", " }", "}"); - Search search = createSearch(def); - assertEquals(Case.UNCASED, search.getAttribute("s1").getCase()); - assertEquals(Case.UNCASED, search.getAttribute("s2").getCase()); - assertEquals(Case.CASED, search.getAttribute("s3").getCase()); - assertEquals(AttributesConfig.Attribute.Match.UNCASED, getConfig(search).attribute().get(0).match()); - assertEquals(AttributesConfig.Attribute.Match.UNCASED, getConfig(search).attribute().get(1).match()); - assertEquals(AttributesConfig.Attribute.Match.CASED, getConfig(search).attribute().get(2).match()); + Schema schema = createSearch(def); + assertEquals(Case.UNCASED, schema.getAttribute("s1").getCase()); + assertEquals(Case.UNCASED, schema.getAttribute("s2").getCase()); + assertEquals(Case.CASED, schema.getAttribute("s3").getCase()); + assertEquals(AttributesConfig.Attribute.Match.UNCASED, getConfig(schema).attribute().get(0).match()); + assertEquals(AttributesConfig.Attribute.Match.UNCASED, getConfig(schema).attribute().get(1).match()); + assertEquals(AttributesConfig.Attribute.Match.CASED, getConfig(schema).attribute().get(2).match()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSearchFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSchemaFieldsTestCase.java index 5ef2f2842e1..f3d188abf82 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSearchFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSchemaFieldsTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.derived.DerivedConfiguration; @@ -14,14 +14,14 @@ import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -public class ImplicitSearchFieldsTestCase extends SchemaTestCase { +public class ImplicitSchemaFieldsTestCase extends SchemaTestCase { @Test public void testRequireThatExtraFieldsAreIncluded() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/nextgen/extrafield.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/nextgen/extrafield.sd"); + assertNotNull(schema); - SDDocumentType docType = search.getDocument(); + SDDocumentType docType = schema.getDocument(); assertNotNull(docType); assertNotNull(docType.getField("foo")); assertNotNull(docType.getField("bar")); @@ -30,10 +30,10 @@ public class ImplicitSearchFieldsTestCase extends SchemaTestCase { @Test public void testRequireThatSummaryFieldsAreIncluded() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/nextgen/summaryfield.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/nextgen/summaryfield.sd"); + assertNotNull(schema); - SDDocumentType docType = search.getDocument(); + SDDocumentType docType = schema.getDocument(); assertNotNull(docType); assertNotNull(docType.getField("foo")); assertNotNull(docType.getField("bar")); @@ -43,10 +43,10 @@ public class ImplicitSearchFieldsTestCase extends SchemaTestCase { @Test public void testRequireThatBoldedSummaryFieldsAreIncluded() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/nextgen/boldedsummaryfields.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/nextgen/boldedsummaryfields.sd"); + assertNotNull(schema); - SDDocumentType docType = search.getDocument(); + SDDocumentType docType = schema.getDocument(); assertNotNull(docType); assertNotNull(docType.getField("foo")); assertNotNull(docType.getField("bar")); @@ -57,10 +57,10 @@ public class ImplicitSearchFieldsTestCase extends SchemaTestCase { @Test public void testRequireThatUntransformedSummaryFieldsAreIgnored() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/nextgen/untransformedsummaryfields.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/nextgen/untransformedsummaryfields.sd"); + assertNotNull(schema); - SDDocumentType docType = search.getDocument(); + SDDocumentType docType = schema.getDocument(); assertNotNull(docType); assertNotNull(docType.getField("foo")); assertNotNull(docType.getField("bar")); @@ -70,10 +70,10 @@ public class ImplicitSearchFieldsTestCase extends SchemaTestCase { @Test public void testRequireThatDynamicSummaryFieldsAreIgnored() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/nextgen/dynamicsummaryfields.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/nextgen/dynamicsummaryfields.sd"); + assertNotNull(schema); - SDDocumentType docType = search.getDocument(); + SDDocumentType docType = schema.getDocument(); assertNotNull(docType); assertNotNull(docType.getField("foo")); assertNotNull(docType.getField("bar")); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitStructTypesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitStructTypesTestCase.java index fb0f1bc2ba2..ec132bd2450 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitStructTypesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitStructTypesTestCase.java @@ -2,7 +2,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.document.*; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDDocumentType; @@ -16,19 +16,19 @@ import static org.junit.Assert.*; public class ImplicitStructTypesTestCase extends SchemaTestCase { @Test public void testRequireThatImplicitStructsAreCreated() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/nextgen/toggleon.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/nextgen/toggleon.sd"); + assertNotNull(schema); - SDDocumentType docType = search.getDocument(); + SDDocumentType docType = schema.getDocument(); assertNotNull(docType); assertStruct(docType, PositionDataType.INSTANCE); } @Test public void testRequireThatImplicitStructsAreUsed() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/nextgen/implicitstructtypes.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/nextgen/implicitstructtypes.sd"); + assertNotNull(schema); - SDDocumentType docType = search.getDocument(); + SDDocumentType docType = schema.getDocument(); assertNotNull(docType); assertField(docType, "doc_str", DataType.STRING); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummariesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummariesTestCase.java index d45d366ee0a..9f4008b5b39 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummariesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummariesTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.documentmodel.SummaryTransform; @@ -29,8 +29,8 @@ public class ImplicitSummariesTestCase { LogHandler log = new LogHandler(); Logger.getLogger("").addHandler(log); - Search search = SearchBuilder.buildFromFile("src/test/examples/implicitsummaries_attribute.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/implicitsummaries_attribute.sd"); + assertNotNull(schema); assertTrue(log.records.isEmpty()); } @@ -60,19 +60,19 @@ public class ImplicitSummariesTestCase { @Test public void attribute_combiner_transform_is_set_on_array_of_struct_with_only_struct_field_attributes() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/derived/array_of_struct_attribute/test.sd"); - assertEquals(SummaryTransform.ATTRIBUTECOMBINER, search.getSummaryField("elem_array").getTransform()); + Schema schema = SearchBuilder.buildFromFile("src/test/derived/array_of_struct_attribute/test.sd"); + assertEquals(SummaryTransform.ATTRIBUTECOMBINER, schema.getSummaryField("elem_array").getTransform()); } @Test public void attribute_combiner_transform_is_set_on_map_of_struct_with_only_struct_field_attributes() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/derived/map_of_struct_attribute/test.sd"); - assertEquals(SummaryTransform.ATTRIBUTECOMBINER, search.getSummaryField("str_elem_map").getTransform()); + Schema schema = SearchBuilder.buildFromFile("src/test/derived/map_of_struct_attribute/test.sd"); + assertEquals(SummaryTransform.ATTRIBUTECOMBINER, schema.getSummaryField("str_elem_map").getTransform()); } @Test public void attribute_combiner_transform_is_not_set_when_map_of_struct_has_some_struct_field_attributes() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/derived/map_of_struct_attribute/test.sd"); - assertEquals(SummaryTransform.NONE, search.getSummaryField("int_elem_map").getTransform()); + Schema schema = SearchBuilder.buildFromFile("src/test/derived/map_of_struct_attribute/test.sd"); + assertEquals(SummaryTransform.NONE, schema.getSummaryField("int_elem_map").getTransform()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFieldsTestCase.java index b7707f2a517..78dabe9301a 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImplicitSummaryFieldsTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; @@ -17,10 +17,10 @@ public class ImplicitSummaryFieldsTestCase extends SchemaTestCase { @Test public void testRequireThatImplicitFieldsAreCreated() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/implicitsummaryfields.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/implicitsummaryfields.sd"); + assertNotNull(schema); - DocumentSummary docsum = search.getSummary("default"); + DocumentSummary docsum = schema.getSummary("default"); assertNotNull(docsum); assertNotNull(docsum.getSummaryField("rankfeatures")); assertNotNull(docsum.getSummaryField("summaryfeatures")); 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 3aeba7cd265..e803d116235 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 @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.document.DataType; import com.yahoo.document.TensorDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.document.ImmutableImportedSDField; import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.ImportedField; @@ -36,9 +36,9 @@ public class ImportedFieldsResolverTestCase { ImportedField myField = model.importedFields.fields().get(fieldName); assertNotNull(myField); assertEquals(fieldName, myField.fieldName()); - assertSame(model.childSearch.getConcreteField("ref"), myField.reference().referenceField()); - assertSame(model.parentSearch, myField.reference().targetSearch()); - ImmutableSDField targetField = model.parentSearch.getField(targetFieldName); + assertSame(model.childSchema.getConcreteField("ref"), myField.reference().referenceField()); + assertSame(model.parentSchema, myField.reference().targetSearch()); + ImmutableSDField targetField = model.parentSchema.getField(targetFieldName); if (targetField instanceof SDField) { assertSame(targetField, myField.targetField()); } else { @@ -103,48 +103,48 @@ public class ImportedFieldsResolverTestCase { static class SearchModel extends ParentChildSearchModel { - public final Search grandParentSearch; + public final Schema grandParentSchema; public ImportedFields importedFields; public SearchModel() { super(); - grandParentSearch = createSearch("grandparent"); - grandParentSearch.getDocument().addField(createField("ancient_field", DataType.INT, "{ attribute }")); - - parentSearch.getDocument().addField(createField("attribute_field", DataType.INT, "{ attribute }")); - parentSearch.getDocument().addField(createField("attribute_and_index", DataType.INT, "{ attribute | index }")); - parentSearch.getDocument().addField(new TemporarySDField("not_attribute", DataType.INT)); - parentSearch.getDocument().addField(createField("tensor_field", new TensorDataType(TensorType.fromSpec("tensor(x[5])")), "{ attribute }")); - parentSearch.getDocument().addField(createField("predicate_field", DataType.PREDICATE, "{ attribute }")); - addRefField(parentSearch, grandParentSearch, "ref"); - addImportedField(parentSearch, "ancient_field", "ref", "ancient_field"); - - addRefField(childSearch, parentSearch, "ref"); + grandParentSchema = createSearch("grandparent"); + grandParentSchema.getDocument().addField(createField("ancient_field", DataType.INT, "{ attribute }")); + + parentSchema.getDocument().addField(createField("attribute_field", DataType.INT, "{ attribute }")); + parentSchema.getDocument().addField(createField("attribute_and_index", DataType.INT, "{ attribute | index }")); + parentSchema.getDocument().addField(new TemporarySDField("not_attribute", DataType.INT)); + parentSchema.getDocument().addField(createField("tensor_field", new TensorDataType(TensorType.fromSpec("tensor(x[5])")), "{ attribute }")); + parentSchema.getDocument().addField(createField("predicate_field", DataType.PREDICATE, "{ attribute }")); + addRefField(parentSchema, grandParentSchema, "ref"); + addImportedField(parentSchema, "ancient_field", "ref", "ancient_field"); + + addRefField(childSchema, parentSchema, "ref"); } protected SearchModel addImportedField(String fieldName, String referenceFieldName, String targetFieldName) { - return addImportedField(childSearch, fieldName, referenceFieldName, targetFieldName); + return addImportedField(childSchema, fieldName, referenceFieldName, targetFieldName); } - protected SearchModel addImportedField(Search search, String fieldName, String referenceFieldName, String targetFieldName) { - super.addImportedField(search, fieldName, referenceFieldName, targetFieldName); + protected SearchModel addImportedField(Schema schema, String fieldName, String referenceFieldName, String targetFieldName) { + super.addImportedField(schema, fieldName, referenceFieldName, targetFieldName); return this; } public void resolve() { - resolve(grandParentSearch); - resolve(parentSearch); - importedFields = resolve(childSearch); + resolve(grandParentSchema); + resolve(parentSchema); + importedFields = resolve(childSchema); } - private static ImportedFields resolve(Search search) { - assertNotNull(search.temporaryImportedFields().get()); - assertFalse(search.importedFields().isPresent()); - new ImportedFieldsResolver(search, null, null, null).process(true, false); - assertFalse(search.temporaryImportedFields().isPresent()); - assertNotNull(search.importedFields().get()); - return search.importedFields().get(); + private static ImportedFields resolve(Schema schema) { + assertNotNull(schema.temporaryImportedFields().get()); + assertFalse(schema.importedFields().isPresent()); + new ImportedFieldsResolver(schema, null, null, null).process(true, false); + assertFalse(schema.temporaryImportedFields().isPresent()); + assertNotNull(schema.importedFields().get()); + return schema.importedFields().get(); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsTestCase.java index 65010d96ec0..dbf099c61f0 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ImportedFieldsTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.derived.AttributeFields; import com.yahoo.searchdefinition.document.ImportedComplexField; @@ -24,7 +24,7 @@ public class ImportedFieldsTestCase { @Test public void fields_can_be_imported_from_referenced_document_types() throws ParseException { - Search search = buildAdSearch(joinLines( + Schema schema = buildAdSearch(joinLines( "search ad {", " document ad {", " field campaign_ref type reference<campaign> { indexing: attribute }", @@ -33,9 +33,9 @@ public class ImportedFieldsTestCase { " import field campaign_ref.budget as my_budget {}", " import field person_ref.name as my_name {}", "}")); - assertEquals(2, search.importedFields().get().fields().size()); - assertSearchContainsImportedField("my_budget", "campaign_ref", "campaign", "budget", search); - assertSearchContainsImportedField("my_name", "person_ref", "person", "name", search); + assertEquals(2, schema.importedFields().get().fields().size()); + assertSearchContainsImportedField("my_budget", "campaign_ref", "campaign", "budget", schema); + assertSearchContainsImportedField("my_name", "person_ref", "person", "name", schema); } @Rule @@ -55,9 +55,9 @@ public class ImportedFieldsTestCase { @Test public void fail_duplicate_import() throws ParseException { exception.expect(IllegalArgumentException.class); - exception.expectMessage("For search 'ad', import field as 'my_budget': Field already imported"); - Search search = buildAdSearch(joinLines( - "search ad {", + exception.expectMessage("For schema 'ad', import field as 'my_budget': Field already imported"); + Schema schema = buildAdSearch(joinLines( + "schema ad {", " document ad {", " field campaign_ref type reference<campaign> { indexing: attribute }", " }", @@ -66,7 +66,7 @@ public class ImportedFieldsTestCase { "}")); } - private static Search buildAdSearch(String sdContent) throws ParseException { + private static Schema buildAdSearch(String sdContent) throws ParseException { SearchBuilder builder = new SearchBuilder(); builder.importString(joinLines("search campaign {", " document campaign {", @@ -84,29 +84,29 @@ public class ImportedFieldsTestCase { } private static void checkStructImport(AncestorStructSdBuilder parentBuilder) throws ParseException { - Search search = buildChildSearch(parentBuilder.build(), new ChildStructSdBuilder().build()); - checkImportedStructFields(search, parentBuilder); + Schema schema = buildChildSearch(parentBuilder.build(), new ChildStructSdBuilder().build()); + checkImportedStructFields(schema, parentBuilder); } private static void checkNestedStructImport(AncestorStructSdBuilder grandParentBuilder) throws ParseException { - Search search = buildChildSearch(grandParentBuilder.build(), - new IntermediateParentStructSdBuilder().build(), - new ChildStructSdBuilder().build()); - checkImportedStructFields(search, grandParentBuilder); - } - - private static void checkImportedStructFields(Search search, AncestorStructSdBuilder ancestorBuilder) { - assertEquals(3, search.importedFields().get().fields().size()); - checkImportedField("my_elem_array.name", "parent_ref", "parent", "elem_array.name", search, ancestorBuilder.elem_array_name_attr); - checkImportedField("my_elem_array.weight", "parent_ref", "parent", "elem_array.weight", search, ancestorBuilder.elem_array_weight_attr); - checkImportedField("my_elem_map.key", "parent_ref", "parent", "elem_map.key", search, ancestorBuilder.elem_map_key_attr); - checkImportedField("my_elem_map.value.name", "parent_ref", "parent", "elem_map.value.name", search, ancestorBuilder.elem_map_value_name_attr); - checkImportedField("my_elem_map.value.weight", "parent_ref", "parent", "elem_map.value.weight", search, ancestorBuilder.elem_map_value_weight_attr); - checkImportedField("my_str_int_map.key", "parent_ref", "parent", "str_int_map.key", search, ancestorBuilder.str_int_map_key_attr); - checkImportedField("my_str_int_map.value", "parent_ref", "parent", "str_int_map.value", search, ancestorBuilder.str_int_map_value_attr); - checkImportedField("my_elem_array", "parent_ref", "parent", "elem_array", search, true); - checkImportedField("my_elem_map", "parent_ref", "parent", "elem_map", search, true); - checkImportedField("my_str_int_map", "parent_ref", "parent", "str_int_map", search, true); + Schema schema = buildChildSearch(grandParentBuilder.build(), + new IntermediateParentStructSdBuilder().build(), + new ChildStructSdBuilder().build()); + checkImportedStructFields(schema, grandParentBuilder); + } + + private static void checkImportedStructFields(Schema schema, AncestorStructSdBuilder ancestorBuilder) { + assertEquals(3, schema.importedFields().get().fields().size()); + checkImportedField("my_elem_array.name", "parent_ref", "parent", "elem_array.name", schema, ancestorBuilder.elem_array_name_attr); + checkImportedField("my_elem_array.weight", "parent_ref", "parent", "elem_array.weight", schema, ancestorBuilder.elem_array_weight_attr); + checkImportedField("my_elem_map.key", "parent_ref", "parent", "elem_map.key", schema, ancestorBuilder.elem_map_key_attr); + checkImportedField("my_elem_map.value.name", "parent_ref", "parent", "elem_map.value.name", schema, ancestorBuilder.elem_map_value_name_attr); + checkImportedField("my_elem_map.value.weight", "parent_ref", "parent", "elem_map.value.weight", schema, ancestorBuilder.elem_map_value_weight_attr); + checkImportedField("my_str_int_map.key", "parent_ref", "parent", "str_int_map.key", schema, ancestorBuilder.str_int_map_key_attr); + checkImportedField("my_str_int_map.value", "parent_ref", "parent", "str_int_map.value", schema, ancestorBuilder.str_int_map_value_attr); + checkImportedField("my_elem_array", "parent_ref", "parent", "elem_array", schema, true); + checkImportedField("my_elem_map", "parent_ref", "parent", "elem_map", schema, true); + checkImportedField("my_str_int_map", "parent_ref", "parent", "str_int_map", schema, true); } @Test @@ -308,7 +308,7 @@ public class ImportedFieldsTestCase { } } - private static Search buildChildSearch(String parentSdContent, String sdContent) throws ParseException { + private static Schema buildChildSearch(String parentSdContent, String sdContent) throws ParseException { SearchBuilder builder = new SearchBuilder(); builder.importString(parentSdContent); builder.importString(sdContent); @@ -316,7 +316,7 @@ public class ImportedFieldsTestCase { return builder.getSearch("child"); } - private static Search buildChildSearch(String grandParentSdContent, String parentSdContent, String sdContent) throws ParseException { + private static Schema buildChildSearch(String grandParentSdContent, String parentSdContent, String sdContent) throws ParseException { SearchBuilder builder = new SearchBuilder(); builder.importString(grandParentSdContent); builder.importString(parentSdContent); @@ -389,19 +389,19 @@ public class ImportedFieldsTestCase { } private static void checkPosImport(ParentPosSdBuilder parentBuilder, DescendantPosSdBuilder childBuilder) throws ParseException { - Search search = buildChildSearch(parentBuilder.build(), childBuilder.build()); - checkImportedPosFields(search); + Schema schema = buildChildSearch(parentBuilder.build(), childBuilder.build()); + checkImportedPosFields(schema); } private static void checkNestedPosImport(GrandParentPosSdBuilder grandParentBuilder, DescendantPosSdBuilder childBuilder) throws ParseException { - Search search = buildChildSearch(grandParentBuilder.build(), new IntermediateParentPosSdBuilder().build(), childBuilder.build()); - checkImportedPosFields(search); + Schema schema = buildChildSearch(grandParentBuilder.build(), new IntermediateParentPosSdBuilder().build(), childBuilder.build()); + checkImportedPosFields(schema); } - private static void checkImportedPosFields(Search search) { - assertEquals(2, search.importedFields().get().fields().size()); - assertSearchContainsImportedField("my_pos_zcurve", "parent_ref", "parent", "pos_zcurve", search); - assertSearchContainsImportedField("my_pos", "parent_ref", "parent", "pos", search); + private static void checkImportedPosFields(Schema schema) { + assertEquals(2, schema.importedFields().get().fields().size()); + assertSearchContainsImportedField("my_pos_zcurve", "parent_ref", "parent", "pos_zcurve", schema); + assertSearchContainsImportedField("my_pos", "parent_ref", "parent", "pos", schema); } @Test @@ -421,22 +421,22 @@ public class ImportedFieldsTestCase { checkPosImport(new ParentPosSdBuilder(), new ChildPosSdBuilder().import_pos_zcurve_before(true)); } - private static ImportedField getImportedField(String name, Search search) { + private static ImportedField getImportedField(String name, Schema schema) { if (name.contains(".")) { - assertNull(search.importedFields().get().fields().get(name)); + assertNull(schema.importedFields().get().fields().get(name)); String superFieldName = name.substring(0,name.indexOf(".")); String subFieldName = name.substring(name.indexOf(".")+1); - ImportedField superField = search.importedFields().get().fields().get(superFieldName); + ImportedField superField = schema.importedFields().get().fields().get(superFieldName); if (superField != null && superField instanceof ImportedComplexField) { return ((ImportedComplexField)superField).getNestedField(subFieldName); } return null; } - return search.importedFields().get().fields().get(name); + return schema.importedFields().get().fields().get(name); } - private static void assertSearchNotContainsImportedField(String fieldName, Search search) { - ImportedField importedField = getImportedField(fieldName, search); + private static void assertSearchNotContainsImportedField(String fieldName, Schema schema) { + ImportedField importedField = getImportedField(fieldName, schema); assertNull(importedField); } @@ -444,8 +444,8 @@ public class ImportedFieldsTestCase { String referenceFieldName, String referenceDocType, String targetFieldName, - Search search) { - ImportedField importedField = getImportedField(fieldName, search); + Schema schema) { + ImportedField importedField = getImportedField(fieldName, schema); assertNotNull(importedField); assertEquals(fieldName, importedField.fieldName()); assertEquals(referenceFieldName, importedField.reference().referenceField().getName()); @@ -454,11 +454,11 @@ public class ImportedFieldsTestCase { } private static void checkImportedField(String fieldName, String referenceFieldName, String referenceDocType, - String targetFieldName, Search search, boolean present) { + String targetFieldName, Schema schema, boolean present) { if (present) { - assertSearchContainsImportedField(fieldName, referenceFieldName, referenceDocType, targetFieldName, search); + assertSearchContainsImportedField(fieldName, referenceFieldName, referenceDocType, targetFieldName, schema); } else { - assertSearchNotContainsImportedField(fieldName, search); + assertSearchNotContainsImportedField(fieldName, schema); } } @@ -479,7 +479,7 @@ public class ImportedFieldsTestCase { checkImportedField("entries_from_b.value", "ref_parent_b", "parent_b", "entries.value", child, true); } - private void assertParentContainsEntriesAttributes(Search parent) { + private void assertParentContainsEntriesAttributes(Schema parent) { var attrs = new AttributeFields(parent); assertTrue(attrs.containsAttribute("entries.key")); assertTrue(attrs.containsAttribute("entries.value")); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java index 13581a1e9e6..aad7a725b9e 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/IndexingScriptRewriterTestCase.java @@ -5,7 +5,7 @@ import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.document.DataType; import com.yahoo.searchdefinition.Index; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.BooleanIndexDefinition; @@ -153,9 +153,9 @@ public class IndexingScriptRewriterTestCase extends SchemaTestCase { private static ScriptExpression processField(SDField unprocessedField) { SDDocumentType sdoc = new SDDocumentType("test"); sdoc.addField(unprocessedField); - Search search = new Search("test"); - search.addDocument(sdoc); - new Processing().process(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true, false); + Schema schema = new Schema("test"); + schema.addDocument(sdoc); + new Processing().process(schema, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles(), true, false); return unprocessedField.getIndexingScript(); } 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 91f719c4eb8..5df8f20b5c7 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 @@ -3,7 +3,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.SDField; @@ -24,36 +24,36 @@ public class IntegerIndex2AttributeTestCase extends SchemaTestCase { @Test public void testIntegerIndex2Attribute() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/integerindex2attribute.sd"); - new IntegerIndex2Attribute(search, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles()).process(true, false); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/integerindex2attribute.sd"); + new IntegerIndex2Attribute(schema, new BaseDeployLogger(), new RankProfileRegistry(), new QueryProfiles()).process(true, false); SDField f; - f = search.getConcreteField("s1"); + f = schema.getConcreteField("s1"); assertTrue(f.getAttributes().isEmpty()); assertTrue(f.existsIndex("s1")); - f = search.getConcreteField("s2"); + f = schema.getConcreteField("s2"); assertEquals(f.getAttributes().size(), 1); assertTrue(f.existsIndex("s2")); - f = search.getConcreteField("as1"); + f = schema.getConcreteField("as1"); assertTrue(f.getAttributes().isEmpty()); assertTrue(f.existsIndex("as1")); - f = search.getConcreteField("as2"); + f = schema.getConcreteField("as2"); assertEquals(f.getAttributes().size(), 1); assertTrue(f.existsIndex("as2")); - f = search.getConcreteField("i1"); + f = schema.getConcreteField("i1"); assertEquals(f.getAttributes().size(), 1); assertFalse(f.existsIndex("i1")); - f = search.getConcreteField("i2"); + f = schema.getConcreteField("i2"); assertEquals(f.getAttributes().size(), 1); assertFalse(f.existsIndex("i2")); - f = search.getConcreteField("ai1"); - assertEquals(search.getConcreteField("ai1").getAttributes().size(), 1); - assertFalse(search.getConcreteField("ai1").existsIndex("ai1")); - f = search.getConcreteField("ai2"); + f = schema.getConcreteField("ai1"); + assertEquals(schema.getConcreteField("ai1").getAttributes().size(), 1); + assertFalse(schema.getConcreteField("ai1").existsIndex("ai1")); + f = schema.getConcreteField("ai2"); assertEquals(f.getAttributes().size(), 1); assertFalse(f.existsIndex("ai2")); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolverTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolverTestCase.java index ab98706fd44..80c3fa48d4e 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolverTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/MatchedElementsOnlyResolverTestCase.java @@ -2,7 +2,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.documentmodel.SummaryField; @@ -168,11 +168,11 @@ public class MatchedElementsOnlyResolverTestCase { assertEquals(expSourceField, field.getSingleSource()); } - private Search buildSearch(String field) throws ParseException { + private Schema buildSearch(String field) throws ParseException { return buildSearch(field, ""); } - private Search buildSearch(String field, String summary) throws ParseException { + private Schema buildSearch(String field, String summary) throws ParseException { var builder = new SearchBuilder(new RankProfileRegistry()); builder.importString(joinLines("search test {", " document test {", 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 8d8a19796ba..73b4b9a7e53 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 @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.document.Matching; @@ -25,18 +25,18 @@ public class NGramTestCase extends SchemaTestCase { @Test public void testNGram() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/ngram.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/ngram.sd"); + assertNotNull(schema); - SDField gram1 = search.getConcreteField("gram_1"); + SDField gram1 = schema.getConcreteField("gram_1"); assertEquals(Matching.Type.GRAM, gram1.getMatching().getType()); assertEquals(1, gram1.getMatching().getGramSize()); - SDField gram2 = search.getConcreteField("gram_2"); + SDField gram2 = schema.getConcreteField("gram_2"); assertEquals(Matching.Type.GRAM, gram2.getMatching().getType()); assertEquals(-1, gram2.getMatching().getGramSize()); // Not set explicitly - SDField gram3=search.getConcreteField("gram_3"); + SDField gram3= schema.getConcreteField("gram_3"); assertEquals(Matching.Type.GRAM,gram3.getMatching().getType()); assertEquals(3, gram3.getMatching().getGramSize()); @@ -55,7 +55,7 @@ public class NGramTestCase extends SchemaTestCase { @Test public void testInvalidNGramSetting1() throws IOException, ParseException { try { - Search search = SearchBuilder.buildFromFile("src/test/examples/invalidngram1.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/invalidngram1.sd"); fail("Should cause an exception"); } catch (IllegalArgumentException e) { @@ -66,7 +66,7 @@ public class NGramTestCase extends SchemaTestCase { @Test public void testInvalidNGramSetting2() throws IOException, ParseException { try { - Search search = SearchBuilder.buildFromFile("src/test/examples/invalidngram2.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/invalidngram2.sd"); fail("Should cause an exception"); } catch (IllegalArgumentException e) { @@ -77,7 +77,7 @@ public class NGramTestCase extends SchemaTestCase { @Test public void testInvalidNGramSetting3() throws IOException, ParseException { try { - Search search = SearchBuilder.buildFromFile("src/test/examples/invalidngram3.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/invalidngram3.sd"); fail("Should cause an exception"); } catch (IllegalArgumentException e) { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ParentChildSearchModel.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ParentChildSearchModel.java index 59f0916f912..a01fdd8725d 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ParentChildSearchModel.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ParentChildSearchModel.java @@ -2,7 +2,6 @@ package com.yahoo.searchdefinition.processing; import com.google.common.collect.ImmutableMap; -import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockApplicationPackage; @@ -12,7 +11,7 @@ import com.yahoo.document.TemporaryStructuredDataType; import com.yahoo.searchdefinition.Application; import com.yahoo.searchdefinition.DocumentReference; import com.yahoo.searchdefinition.DocumentReferences; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.TestableDeployLogger; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.document.SDField; @@ -25,16 +24,16 @@ import com.yahoo.searchdefinition.document.TemporarySDField; public class ParentChildSearchModel { private final Application application = new Application(MockApplicationPackage.createEmpty()); - public Search parentSearch; - public Search childSearch; + public Schema parentSchema; + public Schema childSchema; ParentChildSearchModel() { - parentSearch = createSearch("parent"); - childSearch = createSearch("child"); + parentSchema = createSearch("parent"); + childSchema = createSearch("child"); } - protected Search createSearch(String name) { - Search result = new Search(name, application, new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); + protected Schema createSearch(String name) { + Schema result = new Schema(name, application, new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); result.addDocument(new SDDocumentType(name)); return result; } @@ -49,7 +48,7 @@ public class ParentChildSearchModel { return new TemporarySDField(fieldName, ReferenceDataType.createWithInferredId(TemporaryStructuredDataType.create(parentType))); } - protected static void addRefField(Search child, Search parent, String fieldName) { + protected static void addRefField(Schema child, Schema parent, String fieldName) { SDField refField = createRefField(parent.getName(), fieldName); child.getDocument().addField(refField); child.getDocument().setDocumentReferences(new DocumentReferences(ImmutableMap.of(refField.getName(), @@ -57,11 +56,11 @@ public class ParentChildSearchModel { } protected ParentChildSearchModel addImportedField(String fieldName, String referenceFieldName, String targetFieldName) { - return addImportedField(childSearch, fieldName, referenceFieldName, targetFieldName); + return addImportedField(childSchema, fieldName, referenceFieldName, targetFieldName); } - protected ParentChildSearchModel addImportedField(Search search, String fieldName, String referenceFieldName, String targetFieldName) { - search.temporaryImportedFields().get().add(new TemporaryImportedField(fieldName, referenceFieldName, targetFieldName)); + protected ParentChildSearchModel addImportedField(Schema schema, String fieldName, String referenceFieldName, String targetFieldName) { + schema.temporaryImportedFields().get().add(new TemporaryImportedField(fieldName, referenceFieldName, targetFieldName)); return this; } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/PositionTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/PositionTestCase.java index bcec2bfacfa..e6f00646758 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/PositionTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/PositionTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.document.DataType; import com.yahoo.document.DocumentType; import com.yahoo.document.PositionDataType; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.FieldSet; @@ -31,20 +31,20 @@ public class PositionTestCase { "src/test/examples/position_base.sd", "src/test/examples/position_inherited.sd")); - Search search = sb.getSearch("position_inherited"); - FieldSet fieldSet = search.getDocument().getFieldSets().builtInFieldSets().get(DocumentType.DOCUMENT); + Schema schema = sb.getSearch("position_inherited"); + FieldSet fieldSet = schema.getDocument().getFieldSets().builtInFieldSets().get(DocumentType.DOCUMENT); assertFalse(fieldSet.getFieldNames().contains(PositionDataType.getZCurveFieldName("pos"))); } @Test public void requireThatPositionCanBeAttribute() throws Exception { - Search search = SearchBuilder.buildFromFile("src/test/examples/position_attribute.sd"); - assertNull(search.getAttribute("pos")); - assertNull(search.getAttribute("pos.x")); - assertNull(search.getAttribute("pos.y")); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/position_attribute.sd"); + assertNull(schema.getAttribute("pos")); + assertNull(schema.getAttribute("pos.x")); + assertNull(schema.getAttribute("pos.y")); - assertPositionAttribute(search, "pos", Attribute.CollectionType.SINGLE); - assertPositionSummary(search, "pos", false); + assertPositionAttribute(schema, "pos", Attribute.CollectionType.SINGLE); + assertPositionSummary(schema, "pos", false); } @Test @@ -60,13 +60,13 @@ public class PositionTestCase { @Test public void requireThatSummaryAloneDoesNotCreateZCurve() throws Exception { - Search search = SearchBuilder.buildFromFile("src/test/examples/position_summary.sd"); - assertNull(search.getAttribute("pos")); - assertNull(search.getAttribute("pos.x")); - assertNull(search.getAttribute("pos.y")); - assertNull(search.getAttribute("pos.zcurve")); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/position_summary.sd"); + assertNull(schema.getAttribute("pos")); + assertNull(schema.getAttribute("pos.x")); + assertNull(schema.getAttribute("pos.y")); + assertNull(schema.getAttribute("pos.zcurve")); - SummaryField summary = search.getSummaryField("pos"); + SummaryField summary = schema.getSummaryField("pos"); assertNotNull(summary); assertEquals(2, summary.getSourceCount()); Iterator<SummaryField.Source> it = summary.getSources().iterator(); @@ -74,61 +74,61 @@ public class PositionTestCase { assertEquals("pos.y", it.next().getName()); assertEquals(SummaryTransform.NONE, summary.getTransform()); - assertNull(search.getSummaryField("pos_ext.distance")); + assertNull(schema.getSummaryField("pos_ext.distance")); } @Test public void requireThatExtraFieldCanBePositionAttribute() throws Exception { - Search search = SearchBuilder.buildFromFile("src/test/examples/position_extra.sd"); - assertNull(search.getAttribute("pos_ext")); - assertNull(search.getAttribute("pos_ext.x")); - assertNull(search.getAttribute("pos_ext.y")); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/position_extra.sd"); + assertNull(schema.getAttribute("pos_ext")); + assertNull(schema.getAttribute("pos_ext.x")); + assertNull(schema.getAttribute("pos_ext.y")); - assertPositionAttribute(search, "pos_ext", Attribute.CollectionType.SINGLE); - assertPositionSummary(search, "pos_ext", false); + assertPositionAttribute(schema, "pos_ext", Attribute.CollectionType.SINGLE); + assertPositionSummary(schema, "pos_ext", false); } @Test public void requireThatPositionArrayIsSupported() throws Exception { - Search search = SearchBuilder.buildFromFile("src/test/examples/position_array.sd"); - assertNull(search.getAttribute("pos")); - assertNull(search.getAttribute("pos.x")); - assertNull(search.getAttribute("pos.y")); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/position_array.sd"); + assertNull(schema.getAttribute("pos")); + assertNull(schema.getAttribute("pos.x")); + assertNull(schema.getAttribute("pos.y")); - assertPositionAttribute(search, "pos", Attribute.CollectionType.ARRAY); - assertPositionSummary(search, "pos", true); + assertPositionAttribute(schema, "pos", Attribute.CollectionType.ARRAY); + assertPositionSummary(schema, "pos", true); } - private static void assertPositionAttribute(Search search, String fieldName, Attribute.CollectionType type) { - Attribute attribute = search.getAttribute(PositionDataType.getZCurveFieldName(fieldName)); + private static void assertPositionAttribute(Schema schema, String fieldName, Attribute.CollectionType type) { + Attribute attribute = schema.getAttribute(PositionDataType.getZCurveFieldName(fieldName)); assertNotNull(attribute); assertTrue(attribute.isPosition()); assertEquals(attribute.getCollectionType(), type); assertEquals(attribute.getType(), Attribute.Type.LONG); } - private static void assertPositionSummary(Search search, String fieldName, boolean isArray) { - assertSummaryField(search, + private static void assertPositionSummary(Schema schema, String fieldName, boolean isArray) { + assertSummaryField(schema, fieldName, PositionDataType.getZCurveFieldName(fieldName), (isArray ? DataType.getArray(PositionDataType.INSTANCE) : PositionDataType.INSTANCE), SummaryTransform.GEOPOS); - assertSummaryField(search, + assertSummaryField(schema, PositionDataType.getDistanceSummaryFieldName(fieldName), PositionDataType.getZCurveFieldName(fieldName), DataType.INT, SummaryTransform.DISTANCE); - assertSummaryField(search, + assertSummaryField(schema, PositionDataType.getPositionSummaryFieldName(fieldName), PositionDataType.getZCurveFieldName(fieldName), DataType.getArray(DataType.STRING), SummaryTransform.POSITIONS); } - private static void assertSummaryField(Search search, String fieldName, String sourceName, DataType dataType, + private static void assertSummaryField(Schema schema, String fieldName, String sourceName, DataType dataType, SummaryTransform transform) { - SummaryField summary = search.getSummaryField(fieldName); + SummaryField summary = schema.getSummaryField(fieldName); assertNotNull(summary); assertEquals(1, summary.getSourceCount()); assertEquals(sourceName, summary.getSingleSource()); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankModifierTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankModifierTestCase.java index dc7305f55c3..0aa4c3917d2 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankModifierTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankModifierTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; @@ -17,6 +17,6 @@ import java.io.IOException; public class RankModifierTestCase extends SchemaTestCase { @Test public void testLiteral() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/rankmodifier/literal.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/rankmodifier/literal.sd"); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankProfileSearchFixture.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankProfileSearchFixture.java index 1b8160e0123..7ffb20859e9 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankProfileSearchFixture.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankProfileSearchFixture.java @@ -12,7 +12,7 @@ import com.yahoo.path.Path; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.parser.ParseException; import ai.vespa.rankingexpression.importer.configmodelview.ImportedMlModels; @@ -43,7 +43,7 @@ class RankProfileSearchFixture { new XGBoostImporter()); private final RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); private final QueryProfileRegistry queryProfileRegistry; - private final Search search; + private final Schema schema; private final Map<String, RankProfile> compiledRankProfiles = new HashMap<>(); private final ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); @@ -79,7 +79,7 @@ class RankProfileSearchFixture { "}"; builder.importString(sdContent); builder.build(); - search = builder.getSearch(); + schema = builder.getSearch(); } public void assertFirstPhaseExpression(String expExpression, String rankProfile) { @@ -106,7 +106,7 @@ class RankProfileSearchFixture { } public RankProfile compileRankProfile(String rankProfile, Path applicationDir) { - RankProfile compiled = rankProfileRegistry.get(search, rankProfile) + RankProfile compiled = rankProfileRegistry.get(schema, rankProfile) .compile(queryProfileRegistry, new ImportedMlModels(applicationDir.toFile(), executor, importers)); compiledRankProfiles.put(rankProfile, compiled); @@ -115,7 +115,7 @@ class RankProfileSearchFixture { /** Returns the given uncompiled profile */ public RankProfile rankProfile(String rankProfile) { - return rankProfileRegistry.get(search, rankProfile); + return rankProfileRegistry.get(schema, rankProfile); } /** Returns the given compiled profile, or null if not compiled yet or not present at all */ @@ -123,6 +123,6 @@ class RankProfileSearchFixture { return compiledRankProfiles.get(rankProfile); } - public Search search() { return search; } + public Schema search() { return schema; } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankPropertyVariablesTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankPropertyVariablesTestCase.java index 407a5877976..3f77741aa2a 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankPropertyVariablesTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankPropertyVariablesTestCase.java @@ -5,7 +5,7 @@ import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.RankProfile.RankProperty; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; @@ -21,16 +21,16 @@ public class RankPropertyVariablesTestCase extends SchemaTestCase { @Test public void testRankPropVariables() throws IOException, ParseException { RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); - Search search = SearchBuilder.buildFromFile("src/test/examples/rankpropvars.sd", + Schema schema = SearchBuilder.buildFromFile("src/test/examples/rankpropvars.sd", new BaseDeployLogger(), rankProfileRegistry, new QueryProfileRegistry()); - assertRankPropEquals(rankProfileRegistry.get(search, "other").getRankProperties(), "$testvar1", "foo"); - assertRankPropEquals(rankProfileRegistry.get(search, "other").getRankProperties(), "$testvar_2", "bar"); - assertRankPropEquals(rankProfileRegistry.get(search, "other").getRankProperties(), "$testvarOne23", "baz"); - assertRankPropEquals(rankProfileRegistry.get(search, "another").getRankProperties(), "$Testvar1", "1"); - assertRankPropEquals(rankProfileRegistry.get(search, "another").getRankProperties(), "$Testvar_4", "4"); - assertRankPropEquals(rankProfileRegistry.get(search, "another").getRankProperties(), "$testvarFour23", "234234.234"); + assertRankPropEquals(rankProfileRegistry.get(schema, "other").getRankProperties(), "$testvar1", "foo"); + assertRankPropEquals(rankProfileRegistry.get(schema, "other").getRankProperties(), "$testvar_2", "bar"); + assertRankPropEquals(rankProfileRegistry.get(schema, "other").getRankProperties(), "$testvarOne23", "baz"); + assertRankPropEquals(rankProfileRegistry.get(schema, "another").getRankProperties(), "$Testvar1", "1"); + assertRankPropEquals(rankProfileRegistry.get(schema, "another").getRankProperties(), "$Testvar_4", "4"); + assertRankPropEquals(rankProfileRegistry.get(schema, "another").getRankProperties(), "$testvarFour23", "234234.234"); } private void assertRankPropEquals(List<RankProperty> props, String key, String val) { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithTransformerTokensTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithTransformerTokensTestCase.java index dcd7e2426c3..e77787e22ca 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithTransformerTokensTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionWithTransformerTokensTestCase.java @@ -8,7 +8,7 @@ import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.expressiontransforms.RankProfileTransformContext; import com.yahoo.searchdefinition.expressiontransforms.TokenTransformer; @@ -90,8 +90,8 @@ public class RankingExpressionWithTransformerTokensTestCase { SearchBuilder searchBuilder = new SearchBuilder(application, new MockFileRegistry(), new BaseDeployLogger(), new TestProperties(), rankProfileRegistry, queryProfileRegistry); searchBuilder.importString(sdContent); searchBuilder.build(); - Search search = searchBuilder.getSearch(); - RankProfile rp = rankProfileRegistry.get(search, "my_profile"); + Schema schema = searchBuilder.getSearch(); + RankProfile rp = rankProfileRegistry.get(schema, "my_profile"); return new RankProfileTransformContext(rp, queryProfileRegistry, Collections.emptyMap(), null, Collections.emptyMap(), Collections.emptyMap()); } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java index 27ea680d97a..a76379d185f 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java @@ -9,8 +9,8 @@ import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.LargeRankExpressions; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SchemaTestCase; -import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.derived.DerivedConfiguration; import com.yahoo.searchdefinition.derived.AttributeFields; @@ -30,7 +30,7 @@ import static org.junit.Assert.assertTrue; public class RankingExpressionsTestCase extends SchemaTestCase { - private static Search createSearch(String dir, ModelContext.Properties deployProperties, RankProfileRegistry rankProfileRegistry) throws IOException, ParseException { + private static Schema createSearch(String dir, ModelContext.Properties deployProperties, RankProfileRegistry rankProfileRegistry) throws IOException, ParseException { return SearchBuilder.createFromDirectory(dir, new MockFileRegistry(), new TestableDeployLogger(), deployProperties, rankProfileRegistry).getSearch(); } @@ -38,8 +38,8 @@ public class RankingExpressionsTestCase extends SchemaTestCase { public void testFunctions() throws IOException, ParseException { ModelContext.Properties deployProperties = new TestProperties(); RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); - Search search = createSearch("src/test/examples/rankingexpressionfunction", deployProperties, rankProfileRegistry); - RankProfile functionsRankProfile = rankProfileRegistry.get(search, "macros"); + Schema schema = createSearch("src/test/examples/rankingexpressionfunction", deployProperties, rankProfileRegistry); + RankProfile functionsRankProfile = rankProfileRegistry.get(schema, "macros"); Map<String, RankProfile.RankingExpressionFunction> functions = functionsRankProfile.getFunctions(); assertEquals(2, functions.get("titlematch$").function().arguments().size()); assertEquals("var1", functions.get("titlematch$").function().arguments().get(0)); @@ -52,7 +52,7 @@ public class RankingExpressionsTestCase extends SchemaTestCase { assertEquals(0, functions.get("artistmatch").function().arguments().size()); RawRankProfile rawRankProfile = new RawRankProfile(functionsRankProfile, new LargeRankExpressions(new MockFileRegistry()), new QueryProfileRegistry(), - new ImportedMlModels(), new AttributeFields(search), deployProperties); + new ImportedMlModels(), new AttributeFields(schema), deployProperties); List<Pair<String, String>> rankProperties = rawRankProfile.configProperties(); assertEquals(6, rankProperties.size()); @@ -75,8 +75,8 @@ public class RankingExpressionsTestCase extends SchemaTestCase { @Test(expected = IllegalArgumentException.class) public void testThatIncludingFileInSubdirFails() throws IOException, ParseException { RankProfileRegistry registry = new RankProfileRegistry(); - Search search = createSearch("src/test/examples/rankingexpressioninfile", new TestProperties(), registry); - new DerivedConfiguration(search, registry); // rank profile parsing happens during deriving + Schema schema = createSearch("src/test/examples/rankingexpressioninfile", new TestProperties(), registry); + new DerivedConfiguration(schema, registry); // rank profile parsing happens during deriving } private void verifyProfile(RankProfile profile, List<String> expectedFunctions, List<Pair<String, String>> rankProperties, @@ -96,20 +96,20 @@ public class RankingExpressionsTestCase extends SchemaTestCase { } } - private void verifySearch(Search search, RankProfileRegistry rankProfileRegistry, LargeRankExpressions largeExpressions, + private void verifySearch(Schema schema, RankProfileRegistry rankProfileRegistry, LargeRankExpressions largeExpressions, QueryProfileRegistry queryProfiles, ImportedMlModels models, ModelContext.Properties properties) { - AttributeFields attributes = new AttributeFields(search); + AttributeFields attributes = new AttributeFields(schema); - verifyProfile(rankProfileRegistry.get(search, "base"), Arrays.asList("large_f", "large_m"), - Arrays.asList(new Pair<>("rankingExpression(large_f).expressionName", "base.large_f"), new Pair<>("rankingExpression(large_m).expressionName", "base.large_m")), - largeExpressions, queryProfiles, models, attributes, properties); + verifyProfile(rankProfileRegistry.get(schema, "base"), Arrays.asList("large_f", "large_m"), + Arrays.asList(new Pair<>("rankingExpression(large_f).expressionName", "base.large_f"), new Pair<>("rankingExpression(large_m).expressionName", "base.large_m")), + largeExpressions, queryProfiles, models, attributes, properties); for (String child : Arrays.asList("child_a", "child_b")) { - verifyProfile(rankProfileRegistry.get(search, child), Arrays.asList("large_f", "large_m", "large_local_f", "large_local_m"), - Arrays.asList(new Pair<>("rankingExpression(large_f).expressionName", child + ".large_f"), new Pair<>("rankingExpression(large_m).expressionName", child + ".large_m"), + verifyProfile(rankProfileRegistry.get(schema, child), Arrays.asList("large_f", "large_m", "large_local_f", "large_local_m"), + Arrays.asList(new Pair<>("rankingExpression(large_f).expressionName", child + ".large_f"), new Pair<>("rankingExpression(large_m).expressionName", child + ".large_m"), new Pair<>("rankingExpression(large_local_f).expressionName", child + ".large_local_f"), new Pair<>("rankingExpression(large_local_m).expressionName", child + ".large_local_m"), new Pair<>("vespa.rank.firstphase", "rankingExpression(firstphase)"), new Pair<>("rankingExpression(firstphase).expressionName", child + ".firstphase")), - largeExpressions, queryProfiles, models, attributes, properties); + largeExpressions, queryProfiles, models, attributes, properties); } } @@ -120,9 +120,9 @@ public class RankingExpressionsTestCase extends SchemaTestCase { LargeRankExpressions largeExpressions = new LargeRankExpressions(new MockFileRegistry()); QueryProfileRegistry queryProfiles = new QueryProfileRegistry(); ImportedMlModels models = new ImportedMlModels(); - Search search = createSearch("src/test/examples/largerankingexpressions", properties, rankProfileRegistry); - verifySearch(search, rankProfileRegistry, largeExpressions, queryProfiles, models, properties); + Schema schema = createSearch("src/test/examples/largerankingexpressions", properties, rankProfileRegistry); + verifySearch(schema, rankProfileRegistry, largeExpressions, queryProfiles, models, properties); // Need to verify that second derivation works as that will happen if same sd is used in multiple content clusters - verifySearch(search, rankProfileRegistry, largeExpressions, queryProfiles, models, properties); + verifySearch(schema, rankProfileRegistry, largeExpressions, queryProfiles, models, properties); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ReferenceFieldTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ReferenceFieldTestCase.java index ad38e65e655..41b9d480921 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ReferenceFieldTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ReferenceFieldTestCase.java @@ -5,7 +5,7 @@ import com.yahoo.document.DataType; import com.yahoo.document.Field; import com.yahoo.document.ReferenceDataType; import com.yahoo.searchdefinition.DocumentGraphValidator; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.document.SDDocumentType; import com.yahoo.searchdefinition.parser.ParseException; @@ -50,9 +50,9 @@ public class ReferenceFieldTestCase { builder.importString(salespersonSdContent); builder.importString(adSdContent); builder.build(); - Search search = builder.getSearch("ad"); - assertSearchContainsReferenceField("campaign_ref", "campaign", search.getDocument()); - assertSearchContainsReferenceField("salesperson_ref", "salesperson", search.getDocument()); + Schema schema = builder.getSearch("ad"); + assertSearchContainsReferenceField("campaign_ref", "campaign", schema.getDocument()); + assertSearchContainsReferenceField("salesperson_ref", "salesperson", schema.getDocument()); } @Test diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/SearchMustHaveDocumentTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/SchemaMustHaveDocumentTest.java index 4fe03fe0faa..53ca4bf10a5 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/SearchMustHaveDocumentTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/SchemaMustHaveDocumentTest.java @@ -12,7 +12,7 @@ import static org.junit.Assert.fail; /** * @author hmusum */ -public class SearchMustHaveDocumentTest { +public class SchemaMustHaveDocumentTest { @Test public void requireErrorWhenMissingDocument() throws IOException, ParseException { diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryConsistencyTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryConsistencyTestCase.java index 71b4db60886..e0593aef1e3 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryConsistencyTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryConsistencyTestCase.java @@ -1,7 +1,7 @@ // Copyright 2019 Oath 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.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.parser.ParseException; import com.yahoo.vespa.documentmodel.SummaryTransform; @@ -39,7 +39,7 @@ public class SummaryConsistencyTestCase { "", "}" ); - Search search = SearchBuilder.createFromString(sd).getSearch(); - assertEquals(SummaryTransform.ATTRIBUTECOMBINER, search.getSummaryField("elem_array_unfiltered").getTransform()); + Schema schema = SearchBuilder.createFromString(sd).getSearch(); + assertEquals(SummaryTransform.ATTRIBUTECOMBINER, schema.getSummaryField("elem_array_unfiltered").getTransform()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSourceTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSourceTestCase.java index adb6cc03d5b..da1037b6fd7 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSourceTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/SummaryFieldsMustHaveValidSourceTestCase.java @@ -4,7 +4,7 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; @@ -50,11 +50,11 @@ public class SummaryFieldsMustHaveValidSourceTestCase extends SchemaTestCase { @Test public void requireThatDocumentIdIsAllowedToPass() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/documentidinsummary.sd"); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/documentidinsummary.sd"); BaseDeployLogger deployLogger = new BaseDeployLogger(); RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); - new SummaryFieldsMustHaveValidSource(search, deployLogger, rankProfileRegistry, new QueryProfiles()).process(true, false); - assertEquals("documentid", search.getSummary("withid").getSummaryField("w").getSingleSource()); + new SummaryFieldsMustHaveValidSource(schema, deployLogger, rankProfileRegistry, new QueryProfiles()).process(true, false); + assertEquals("documentid", schema.getSummary("withid").getSummaryField("w").getSingleSource()); } } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/TensorTransformTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/TensorTransformTestCase.java index 8714568338f..19ae565ed07 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/TensorTransformTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/TensorTransformTestCase.java @@ -3,7 +3,6 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.collections.Pair; import com.yahoo.component.ComponentId; -import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.config.model.application.provider.MockFileRegistry; import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.search.query.profile.QueryProfileRegistry; @@ -14,7 +13,7 @@ import com.yahoo.search.query.profile.types.QueryProfileTypeRegistry; import com.yahoo.searchdefinition.LargeRankExpressions; import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.derived.AttributeFields; @@ -199,7 +198,7 @@ public class TensorTransformTestCase extends SchemaTestCase { " }\n" + "}\n"); builder.build(true); - Search s = builder.getSearch(); + Schema s = builder.getSearch(); RankProfile test = rankProfileRegistry.get(s, "test").compile(queryProfiles, new ImportedMlModels()); List<Pair<String, String>> testRankProperties = new RawRankProfile(test, new LargeRankExpressions(new MockFileRegistry()), diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java index ab6a547d9e5..4c56d2a5ab0 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/ValidateFieldTypesTest.java @@ -8,7 +8,7 @@ import com.yahoo.document.DataType; import com.yahoo.document.Field; import com.yahoo.searchdefinition.Application; import com.yahoo.searchdefinition.DocumentReference; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.TestableDeployLogger; import com.yahoo.searchdefinition.document.ImportedField; import com.yahoo.searchdefinition.document.ImportedFields; @@ -36,11 +36,11 @@ public class ValidateFieldTypesTest { @Test public void throws_exception_if_type_of_document_field_does_not_match_summary_field() { - Search search = createSearchWithDocument(DOCUMENT_NAME); - search.setImportedFields(createSingleImportedField(IMPORTED_FIELD_NAME, DataType.INT)); - search.addSummary(createDocumentSummary(IMPORTED_FIELD_NAME, DataType.STRING, search)); + Schema schema = createSearchWithDocument(DOCUMENT_NAME); + schema.setImportedFields(createSingleImportedField(IMPORTED_FIELD_NAME, DataType.INT)); + schema.addSummary(createDocumentSummary(IMPORTED_FIELD_NAME, DataType.STRING, schema)); - ValidateFieldTypes validator = new ValidateFieldTypes(search, null, null, null); + ValidateFieldTypes validator = new ValidateFieldTypes(schema, null, null, null); exceptionRule.expect(IllegalArgumentException.class); exceptionRule.expectMessage( "For search '" + DOCUMENT_NAME + "', field '" + IMPORTED_FIELD_NAME + "': Incompatible types. " + @@ -48,27 +48,27 @@ public class ValidateFieldTypesTest { validator.process(true, false); } - private static Search createSearch(String documentType) { - return new Search(documentType, new Application(MockApplicationPackage.createEmpty()), new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); + private static Schema createSearch(String documentType) { + return new Schema(documentType, new Application(MockApplicationPackage.createEmpty()), new MockFileRegistry(), new TestableDeployLogger(), new TestProperties()); } - private static Search createSearchWithDocument(String documentName) { - Search search = createSearch(documentName); - SDDocumentType document = new SDDocumentType(documentName, search); - search.addDocument(document); - return search; + private static Schema createSearchWithDocument(String documentName) { + Schema schema = createSearch(documentName); + SDDocumentType document = new SDDocumentType(documentName, schema); + schema.addDocument(document); + return schema; } private static ImportedFields createSingleImportedField(String fieldName, DataType dataType) { - Search targetSearch = createSearch("target_doc"); + Schema targetSchema = createSearch("target_doc"); SDField targetField = new SDField("target_field", dataType); - DocumentReference documentReference = new DocumentReference(new Field("reference_field"), targetSearch); + DocumentReference documentReference = new DocumentReference(new Field("reference_field"), targetSchema); ImportedField importedField = new ImportedSimpleField(fieldName, documentReference, targetField); return new ImportedFields(Collections.singletonMap(fieldName, importedField)); } - private static DocumentSummary createDocumentSummary(String fieldName, DataType dataType, Search search) { - DocumentSummary summary = new DocumentSummary("mysummary", search); + private static DocumentSummary createDocumentSummary(String fieldName, DataType dataType, Schema schema) { + DocumentSummary summary = new DocumentSummary("mysummary", schema); summary.add(new SummaryField(fieldName, dataType)); return summary; } diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/WeightedSetSummaryToTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/WeightedSetSummaryToTestCase.java index 3b2875d303c..eec382a115c 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/WeightedSetSummaryToTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/WeightedSetSummaryToTestCase.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition.processing; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.SchemaTestCase; import com.yahoo.searchdefinition.parser.ParseException; @@ -16,8 +16,8 @@ public class WeightedSetSummaryToTestCase extends SchemaTestCase { @Test public void testRequireThatImplicitFieldsAreCreated() throws IOException, ParseException { - Search search = SearchBuilder.buildFromFile("src/test/examples/weightedset-summaryto.sd"); - assertNotNull(search); + Schema schema = SearchBuilder.buildFromFile("src/test/examples/weightedset-summaryto.sd"); + assertNotNull(schema); } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidatorTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/SchemaDataTypeValidatorTestCase.java index cbea01e3ca3..b7b83dbf68c 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidatorTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/SchemaDataTypeValidatorTestCase.java @@ -10,7 +10,7 @@ import static org.junit.Assert.fail; /** * @author Simon Thoresen Hult */ -public class SearchDataTypeValidatorTestCase { +public class SchemaDataTypeValidatorTestCase { @Test public void requireThatSupportedTypesAreValidated() { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSchemaClusterChangeValidatorTest.java index 44d62b72ce2..7b1474f9754 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSearchClusterChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/IndexedSchemaClusterChangeValidatorTest.java @@ -21,7 +21,7 @@ import static com.yahoo.vespa.model.application.validation.change.ConfigChangeTe import static com.yahoo.vespa.model.application.validation.change.ConfigChangeTestUtils.normalizeServicesInActions; import static org.junit.Assert.assertTrue; -public class IndexedSearchClusterChangeValidatorTest { +public class IndexedSchemaClusterChangeValidatorTest { static class Fixture { VespaModel currentModel; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSchemaClusterChangeValidatorTest.java index a4080250c60..dddb6a38db1 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/StreamingSchemaClusterChangeValidatorTest.java @@ -22,7 +22,7 @@ import static com.yahoo.vespa.model.application.validation.change.ConfigChangeTe import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; -public class StreamingSearchClusterChangeValidatorTest { +public class StreamingSchemaClusterChangeValidatorTest { private static class Fixture { VespaModel currentModel; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSchemaTuningBuilderTest.java index 7578fc5c8f8..4ed355a7dca 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSchemaTuningBuilderTest.java @@ -18,7 +18,7 @@ import static org.junit.Assert.assertTrue; /** * @author geirst */ -public class DomSearchTuningBuilderTest extends DomBuilderTest { +public class DomSchemaTuningBuilderTest extends DomBuilderTest { private static final double DELTA = 0.000001; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainsBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSchemaChainsBuilderTest.java index a34a5c577b7..86c448c403c 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSearchChainsBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/chains/search/DomSchemaChainsBuilderTest.java @@ -35,7 +35,7 @@ import static org.junit.Assert.fail; * * @author Tony Vaagenes */ -public class DomSearchChainsBuilderTest extends DomBuilderTest { +public class DomSchemaChainsBuilderTest extends DomBuilderTest { private SearchChains searchChains; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/Federation2Test.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/Federation2Test.java index 76b5a102155..ac272301445 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/Federation2Test.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/Federation2Test.java @@ -10,7 +10,7 @@ import static org.junit.Assert.assertEquals; /** * @author bratseth */ -public class Federation2Test extends SearchChainsTestBase { +public class Federation2Test extends SchemaChainsTestBase { @Override Element servicesXml() { return parse( diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/FederationTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/FederationTest.java index 0c1b2de1c5d..39fcb9d5af2 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/FederationTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/FederationTest.java @@ -14,7 +14,7 @@ import static org.junit.Assert.*; * Test generated config for federation. * @author Tony Vaagenes */ -public class FederationTest extends SearchChainsTestBase { +public class FederationTest extends SchemaChainsTestBase { @Override Element servicesXml() { return parse( diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTest.java index f55bbe4aee0..9ccfa768dc1 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTest.java @@ -21,7 +21,7 @@ import static org.junit.Assert.*; * * @author Tony Vaagenes */ -public class SearchChainsTest extends SearchChainsTestBase { +public class SchemaChainsTest extends SchemaChainsTestBase { private ChainsConfig chainsConfig; private ProviderConfig providerConfig; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTest2.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTest2.java index 40182c74be6..04bda0bce21 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTest2.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTest2.java @@ -15,7 +15,7 @@ import static org.junit.Assert.fail; /** * @author gjoranv */ -public class SearchChainsTest2 { +public class SchemaChainsTest2 { private MockRoot root; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTestBase.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTestBase.java index 8b92704df3d..e654f8deee1 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SearchChainsTestBase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTestBase.java @@ -9,7 +9,7 @@ import org.w3c.dom.Element; /** Creates SearchChains model from xml input. * @author Tony Vaagenes */ -public abstract class SearchChainsTestBase extends DomBuilderTest { +public abstract class SchemaChainsTestBase extends DomBuilderTest { @Before public void setupSearchChains() { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/SearchBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/SchemaBuilderTest.java index 794cfa1f18a..e7901ebd5f0 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/SearchBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/SchemaBuilderTest.java @@ -33,7 +33,7 @@ import static org.junit.Assert.fail; /** * @author gjoranv */ -public class SearchBuilderTest extends ContainerModelBuilderTestBase { +public class SchemaBuilderTest extends ContainerModelBuilderTestBase { private ChainsConfig chainsConfig() { return root.getConfig(ChainsConfig.class, "default/component/com.yahoo.search.handler.SearchHandler"); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSchemaClusterTest.java index 2383c2db407..d6020a96818 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSchemaClusterTest.java @@ -31,7 +31,7 @@ import static org.junit.Assert.assertTrue; * * @author geirst */ -public class ContentSearchClusterTest { +public class ContentSchemaClusterTest { private static double EPSILON = 0.000001; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSchemaTest.java index 12f3d722e5e..952a0b945dd 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSchemaTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertNull; /** * @author Simon Thoresen Hult */ -public class ContentSearchTest { +public class ContentSchemaTest { @Test public void requireThatAccessorsWork() { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedSearchNodeNamingTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedSchemaNodeNamingTest.java index 55c9853b02b..17e295c1c2a 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedSearchNodeNamingTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedSchemaNodeNamingTest.java @@ -19,7 +19,7 @@ import static org.junit.Assert.assertEquals; * * @author geirst */ -public class IndexedSearchNodeNamingTest { +public class IndexedSchemaNodeNamingTest { private ContentCluster getSingleNodeCluster() throws Exception { String groupXml = joinLines(" <group>", diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/SearchCoverageTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/SchemaCoverageTest.java index 8db115aeb10..66184d74251 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/SearchCoverageTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/SchemaCoverageTest.java @@ -10,7 +10,7 @@ import static org.junit.Assert.fail; /** * @author Simon Thoresen Hult */ -public class SearchCoverageTest { +public class SchemaCoverageTest { @Test public void requireThatAccessorWork() { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomContentSearchBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomContentSchemaBuilderTest.java index 5222d0a8715..b8788ece7b6 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomContentSearchBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomContentSchemaBuilderTest.java @@ -15,7 +15,7 @@ import static org.junit.Assert.assertNull; /** * @author Simon Thoresen Hult */ -public class DomContentSearchBuilderTest { +public class DomContentSchemaBuilderTest { @Test public void requireThatDefaultsAreNull() throws Exception { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomSearchCoverageBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomSchemaCoverageBuilderTest.java index 7512b6b5469..6c5456e73fc 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomSearchCoverageBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/DomSchemaCoverageBuilderTest.java @@ -15,7 +15,7 @@ import static org.junit.Assert.assertNull; /** * @author Simon Thoresen Hult */ -public class DomSearchCoverageBuilderTest { +public class DomSchemaCoverageBuilderTest { @Test public void requireThatDefaultsAreNull() throws Exception { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SchemaClusterTest.java index 660ec9f13f1..27dda6a6bb2 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SchemaClusterTest.java @@ -5,7 +5,7 @@ import com.yahoo.component.ComponentId; import com.yahoo.container.QrSearchersConfig; import com.yahoo.document.DataType; import com.yahoo.search.config.ClusterConfig; -import com.yahoo.searchdefinition.Search; +import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.SearchBuilder; import com.yahoo.searchdefinition.document.Attribute; import com.yahoo.searchdefinition.document.SDDocumentType; @@ -34,31 +34,31 @@ import static org.junit.Assert.assertTrue; * * @author hmusum */ -public class SearchClusterTest { +public class SchemaClusterTest { @Test public void testSdConfigLogical() { // sd1 SDDocumentType sdt1 = new SDDocumentType("s1"); - Search search1 = new Search("s1"); + Schema schema1 = new Schema("s1"); SDField f1 = new SDField("f1", DataType.STRING); f1.addAttribute(new Attribute("f1", DataType.STRING)); f1.setIndexingScript(new ScriptExpression(new StatementExpression(new AttributeExpression("f1")))); sdt1.addField(f1); - search1.addDocument(sdt1); + schema1.addDocument(sdt1); // sd2 SDDocumentType sdt2 = new SDDocumentType("s2"); - Search search2 = new Search("s2"); + Schema schema2 = new Schema("s2"); SDField f2=new SDField("f2", DataType.STRING); f2.addAttribute(new Attribute("f2", DataType.STRING)); f2.setIndexingScript(new ScriptExpression(new StatementExpression(new AttributeExpression("f2")))); sdt2.addField(f2); - search2.addDocument(sdt2); + schema2.addDocument(sdt2); SearchBuilder builder = new SearchBuilder(); - builder.importRawSearch(search1); - builder.importRawSearch(search2); + builder.importRawSearch(schema1); + builder.importRawSearch(schema2); builder.build(); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchNodeTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SchemaNodeTest.java index 16f6a90ac66..cca2d817df4 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SearchNodeTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SchemaNodeTest.java @@ -29,7 +29,7 @@ import static org.junit.Assert.assertTrue; * * @author geirst */ -public class SearchNodeTest { +public class SchemaNodeTest { private void assertBaseDir(String expected, SearchNode node) { ProtonConfig.Builder builder = new ProtonConfig.Builder(); |