diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/parser')
27 files changed, 154 insertions, 47 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedFields.java b/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedFields.java index 7fd16826667..bc0e16abbe3 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedFields.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedFields.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.document.DataType; @@ -20,6 +20,7 @@ import com.yahoo.vespa.documentmodel.SummaryTransform; import java.util.Locale; import java.util.Map; +import java.util.logging.Level; /** * Helper for converting ParsedField etc to SDField with settings @@ -137,7 +138,7 @@ public class ConvertParsedFields { } // from grammar, things that can be inside struct-field block - private void convertCommonFieldSettings(SDField field, ParsedField parsed) { + private void convertCommonFieldSettings(Schema schema, SDField field, ParsedField parsed) { convertMatchSettings(field, parsed.matchSettings()); var indexing = parsed.getIndexing(); if (indexing.isPresent()) { @@ -152,7 +153,12 @@ public class ConvertParsedFields { for (var summaryField : parsed.getSummaryFields()) { var dataType = field.getDataType(); var otherType = summaryField.getType(); - if (otherType != null) { + if (otherType != null && summaryField.getHasExplicitType()) { + schema.getDeployLogger().log(Level.FINE, () -> "For " + schema.getName() + + ", field '" + field.getName() + + "', summary '" + summaryField.name() + + "': Specifying the type is deprecated, ignored and will be an error in Vespa 9." + + " Remove the type specification to silence this warning."); dataType = context.resolveType(otherType); } convertSummaryField(field, summaryField, dataType); @@ -161,7 +167,7 @@ public class ConvertParsedFields { field.addQueryCommand(command); } for (var structField : parsed.getStructFields()) { - convertStructField(field, structField); + convertStructField(schema, field, structField); } if (parsed.hasLiteral()) { field.getRanking().setLiteral(true); @@ -174,13 +180,13 @@ public class ConvertParsedFields { } } - private void convertStructField(SDField field, ParsedField parsed) { + private void convertStructField(Schema schema, SDField field, ParsedField parsed) { SDField structField = field.getStructField(parsed.name()); if (structField == null ) { throw new IllegalArgumentException("Struct field '" + parsed.name() + "' has not been defined in struct " + "for field '" + field.getName() + "'."); } - convertCommonFieldSettings(structField, parsed); + convertCommonFieldSettings(schema, structField, parsed); } private void convertExtraFieldSettings(SDField field, ParsedField parsed) { @@ -217,6 +223,8 @@ public class ConvertParsedFields { transform = SummaryTransform.MATCHED_ELEMENTS_FILTER; } else if (parsed.getDynamic()) { transform = SummaryTransform.DYNAMICTEASER; + } else if (parsed.getTokens()) { + transform = SummaryTransform.TOKENS; } if (parsed.getBolded()) { transform = transform.bold(); @@ -278,7 +286,7 @@ public class ConvertParsedFields { String name = parsed.name(); DataType dataType = context.resolveType(parsed.getType()); var field = new SDField(document, name, dataType); - convertCommonFieldSettings(field, parsed); + convertCommonFieldSettings(schema, field, parsed); convertExtraFieldSettings(field, parsed); document.addField(field); return field; @@ -288,7 +296,7 @@ public class ConvertParsedFields { String name = parsed.name(); DataType dataType = context.resolveType(parsed.getType()); var field = new SDField(schema.getDocument(), name, dataType); - convertCommonFieldSettings(field, parsed); + convertCommonFieldSettings(schema, field, parsed); convertExtraFieldSettings(field, parsed); schema.addExtraField(field); } @@ -305,7 +313,7 @@ public class ConvertParsedFields { for (var parsedField : parsed.getFields()) { var fieldType = context.resolveType(parsedField.getType()); var field = new SDField(document, parsedField.name(), fieldType); - convertCommonFieldSettings(field, parsedField); + convertCommonFieldSettings(schema, field, parsedField); structProxy.addField(field); if (parsedField.hasIdOverride()) { structProxy.setFieldId(field, parsedField.idOverride()); diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedRanking.java b/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedRanking.java index c25d393c8bf..5ccbb7b19a4 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedRanking.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedRanking.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.schema.RankProfile; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedSchemas.java b/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedSchemas.java index 40ec84ec8bc..7e19cb4a0ae 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedSchemas.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedSchemas.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.config.application.api.ApplicationPackage; @@ -11,11 +11,13 @@ import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.document.DataType; import com.yahoo.document.DocumentTypeManager; +import com.yahoo.document.PositionDataType; import com.yahoo.schema.DefaultRankProfile; import com.yahoo.schema.DocumentOnlySchema; import com.yahoo.schema.RankProfileRegistry; import com.yahoo.schema.Schema; import com.yahoo.schema.UnrankedRankProfile; +import com.yahoo.schema.derived.SummaryClass; import com.yahoo.schema.document.SDDocumentType; import com.yahoo.schema.document.SDField; import com.yahoo.schema.document.TemporaryImportedField; @@ -25,7 +27,9 @@ import com.yahoo.vespa.documentmodel.SummaryField; import java.util.ArrayList; import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; +import java.util.logging.Level; import java.util.Map; import java.util.Optional; @@ -137,14 +141,88 @@ public class ConvertParsedSchemas { schema.addDocument(document); } - private void convertDocumentSummary(Schema schema, ParsedDocumentSummary parsed, TypeResolver typeContext) { - var docsum = new DocumentSummary(parsed.name(), schema); - var inheritList = parsed.getInherited(); - if (inheritList.size() == 1) { - docsum.setInherited(inheritList.get(0)); - } else if (inheritList.size() != 0) { - throw new IllegalArgumentException("document-summary "+parsed.name()+" cannot inherit more than once"); + /* + * Helper class for resolving data type for a document summary. Summary type is still + * used internally in config model when generating and processing indexing scripts. + * See DynamicSummaryTransformUtils class comment for more details. + * + * This kind of resolving is a temporary measure until the use of summary fields have + * been eliminated from indexing scripts and are no longer used to extend the document + * type. At that time, the data type of a summary field is no longer relevant. + */ + private class SummaryFieldTypeResolver { + + private final Schema schema; + private final Map<String, ParsedSummaryField> summaryFields = new LinkedHashMap<String, ParsedSummaryField>(); + private static final String zCurveSuffix = new String("_zcurve"); + + public SummaryFieldTypeResolver(Schema schema, List<ParsedDocumentSummary> parsed) { + this.schema = schema; + for (var docsum : parsed) { + for (var field : docsum.getSummaryFields()) { + summaryFields.put(field.name(), field); + } + } + } + + private boolean isPositionAttribute(Schema schema, String sourceFieldName) { + if (!sourceFieldName.endsWith(zCurveSuffix)) { + return false; + } + var name = sourceFieldName.substring(0, sourceFieldName.length() - zCurveSuffix.length()); + var field = schema.getField(name); + return (field.getDataType().equals(PositionDataType.INSTANCE)); + } + + + private String getSingleSource(ParsedSummaryField parsedField) { + if (parsedField.getSources().size() == 1) { + return parsedField.getSources().get(0); + } + return parsedField.name(); + } + + public DataType resolve(ParsedDocumentSummary docsum, ParsedSummaryField parsedField) { + var seen = new LinkedHashSet<String>(); + var origName = parsedField.name(); + while (true) { + if (seen.contains(parsedField.name())) { + throw new IllegalArgumentException("For schema '" + schema.getName() + + "' summary class '" + docsum.name() + + "' summary field '" + origName + + "': Source loop detected for summary field '" + parsedField.name() + "'"); + } + seen.add(parsedField.name()); + if (parsedField.getSources().size() >= 2) { + return DataType.STRING; // Flattening, streaming search + } + var source = getSingleSource(parsedField); + if (source.equals(SummaryClass.DOCUMENT_ID_FIELD)) { + return DataType.STRING; // Reserved source field name + } else if (isPositionAttribute(schema, source)) { + return DataType.LONG; // Extra field with suffix is added later for positions + } + var field = schema.getField(source); + if (field != null) { + return field.getDataType(); + } else if (schema.temporaryImportedFields().isPresent() && + schema.temporaryImportedFields().get().hasField(source)) { + return null; // Imported field, cannot resolve now + } else if (source.equals(parsedField.name()) || !summaryFields.containsKey(source)) { + throw new IllegalArgumentException("For schema '" + schema.getName() + + "', summary class '" + docsum.name() + + "', summary field '" + parsedField.name() + + "': there is no valid source '" + source + "'."); + } + parsedField = summaryFields.get(source); + } } + } + + private void convertDocumentSummary(Schema schema, ParsedDocumentSummary parsed, TypeResolver typeContext, + SummaryFieldTypeResolver sfResolver) { + var docsum = new DocumentSummary(parsed.name(), schema); + parsed.getInherited().forEach(inherited -> docsum.addInherited(inherited)); if (parsed.getFromDisk()) { docsum.setFromDisk(true); } @@ -153,10 +231,17 @@ public class ConvertParsedSchemas { } for (var parsedField : parsed.getSummaryFields()) { var parsedType = parsedField.getType(); + if (parsedType != null) { + var log = schema.getDeployLogger(); + log.log(Level.FINE, () -> "For " + schema.getName() + + ", document-summary '" + parsed.name() + + "', summary field '" + parsedField.name() + + "': Specifying the type is deprecated, ignored and will be an error in Vespa 9." + + " Remove the type specification to silence this warning."); + } DataType dataType = (parsedType != null) ? typeContext.resolveType(parsedType) : null; - var existingField = schema.getField(parsedField.name()); - if (existingField != null) { - var existingType = existingField.getDataType(); + DataType existingType = sfResolver.resolve(parsed, parsedField); + if (existingType != null) { if (dataType == null) { dataType = existingType; } else if (!dataType.equals(existingType)) { @@ -166,10 +251,9 @@ public class ConvertParsedSchemas { } } } - if (dataType == null) { - throw new IllegalArgumentException("Missing data-type for summary field " + parsedField.name() + " in document-summary " + parsed.name()); - } - var summaryField = new SummaryField(parsedField.name(), dataType); + var summaryField = (dataType == null) ? + SummaryField.createWithUnresolvedType(parsedField.name()) : + new SummaryField(parsedField.name(), dataType); // XXX does not belong here: summaryField.setVsmCommand(SummaryField.VsmCommand.FLATTENSPACE); ConvertParsedFields.convertSummaryFieldSettings(summaryField, parsedField); @@ -211,6 +295,7 @@ public class ConvertParsedSchemas { } parsed.getRawAsBase64().ifPresent(value -> schema.enableRawAsBase64(value)); var typeContext = typeConverter.makeContext(parsed.getDocument()); + var sfResolver = new SummaryFieldTypeResolver(schema, parsed.getDocumentSummaries()); var fieldConverter = new ConvertParsedFields(typeContext, convertedStructs); convertDocument(schema, parsed.getDocument(), fieldConverter); for (var field : parsed.getFields()) { @@ -219,12 +304,12 @@ public class ConvertParsedSchemas { for (var index : parsed.getIndexes()) { fieldConverter.convertExtraIndex(schema, index); } - for (var docsum : parsed.getDocumentSummaries()) { - convertDocumentSummary(schema, docsum, typeContext); - } for (var importedField : parsed.getImportedFields()) { convertImportField(schema, importedField); } + for (var docsum : parsed.getDocumentSummaries()) { + convertDocumentSummary(schema, docsum, typeContext, sfResolver); + } for (var fieldSet : parsed.getFieldSets()) { convertFieldSet(schema, fieldSet); } diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedTypes.java b/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedTypes.java index efe1547f146..1ec8d452233 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedTypes.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ConvertParsedTypes.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.document.DataType; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ConvertSchemaCollection.java b/config-model/src/main/java/com/yahoo/schema/parser/ConvertSchemaCollection.java index b414d3757e2..ef30ec518f0 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ConvertSchemaCollection.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ConvertSchemaCollection.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.config.application.api.ApplicationPackage; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/DictionaryOption.java b/config-model/src/main/java/com/yahoo/schema/parser/DictionaryOption.java index 3acb51ace3f..006ce7332ae 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/DictionaryOption.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/DictionaryOption.java @@ -1,3 +1,4 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; public enum DictionaryOption { diff --git a/config-model/src/main/java/com/yahoo/schema/parser/InheritanceResolver.java b/config-model/src/main/java/com/yahoo/schema/parser/InheritanceResolver.java index ad9acf2f095..d9d51a437ad 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/InheritanceResolver.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/InheritanceResolver.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import java.util.ArrayList; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/IntermediateCollection.java b/config-model/src/main/java/com/yahoo/schema/parser/IntermediateCollection.java index d893919f640..789f7023aed 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/IntermediateCollection.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/IntermediateCollection.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.config.application.api.ApplicationPackage; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedAnnotation.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedAnnotation.java index c36656838f7..0037032bf11 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedAnnotation.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedAnnotation.java @@ -1,3 +1,4 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import java.util.ArrayList; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedAttribute.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedAttribute.java index 26916a6685e..56eff4cd171 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedAttribute.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedAttribute.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import java.util.LinkedHashMap; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedBlock.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedBlock.java index c20abf52bf3..53dc23964ce 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedBlock.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedBlock.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; /** diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedDocument.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedDocument.java index 281e7989885..e27d886f5fa 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedDocument.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedDocument.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import java.util.ArrayList; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedDocumentSummary.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedDocumentSummary.java index 7aaabaef865..e29b0507821 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedDocumentSummary.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedDocumentSummary.java @@ -1,3 +1,4 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; @@ -10,8 +11,9 @@ import java.util.Map; * This class holds the extracted information after parsing a * "document-summary" block, using simple data structures as far as * possible. Do not put advanced logic here! + * * @author arnej27959 - **/ + */ class ParsedDocumentSummary extends ParsedBlock { private boolean omitSummaryFeatures; @@ -45,4 +47,5 @@ class ParsedDocumentSummary extends ParsedBlock { void inherit(String other) { inherited.add(other); } + } diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedField.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedField.java index a4df2ac6dc2..3d575649151 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedField.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedField.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.schema.document.Stemming; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedFieldSet.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedFieldSet.java index 9e8906a41a4..c4785eac47d 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedFieldSet.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedFieldSet.java @@ -1,3 +1,4 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import java.util.ArrayList; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedIndex.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedIndex.java index cf70168e8d2..d0c0c1bf7db 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedIndex.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedIndex.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.schema.document.HnswIndexParams; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedIndexingOp.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedIndexingOp.java index 3a2df2aac4c..af86dd150ab 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedIndexingOp.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedIndexingOp.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.vespa.indexinglanguage.ExpressionSearcher; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedMatchSettings.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedMatchSettings.java index 33094be1079..4c2119b1eba 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedMatchSettings.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedMatchSettings.java @@ -1,3 +1,4 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.schema.document.Case; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedRankFunction.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedRankFunction.java index 73f1316d468..11081712f0e 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedRankFunction.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedRankFunction.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import java.util.ArrayList; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedRankProfile.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedRankProfile.java index 1d06b993cdc..fbbb0c7fe83 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedRankProfile.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedRankProfile.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.schema.OnnxModel; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedSchema.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedSchema.java index 5ee483db044..171b4c0e2e0 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedSchema.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedSchema.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.schema.OnnxModel; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedSorting.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedSorting.java index af84bbbb5bd..5b3ca176506 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedSorting.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedSorting.java @@ -1,3 +1,4 @@ +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedStruct.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedStruct.java index 02d10bcb487..31a886481ee 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedStruct.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedStruct.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import java.util.ArrayList; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedSummaryField.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedSummaryField.java index 38ee52c9d06..8f9733d2595 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedSummaryField.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedSummaryField.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import java.util.ArrayList; @@ -18,6 +18,8 @@ class ParsedSummaryField extends ParsedBlock { private boolean isMEO = false; private boolean isFull = false; private boolean isBold = false; + private boolean isTokens = false; + private boolean hasExplicitType = false; private final List<String> sources = new ArrayList<>(); private final List<String> destinations = new ArrayList<>(); @@ -37,6 +39,8 @@ class ParsedSummaryField extends ParsedBlock { boolean getDynamic() { return isDyn; } boolean getFull() { return isFull; } boolean getMatchedElementsOnly() { return isMEO; } + boolean getTokens() { return isTokens; } + boolean getHasExplicitType() { return hasExplicitType; } void addDestination(String dst) { destinations.add(dst); } void addSource(String src) { sources.add(src); } @@ -44,6 +48,8 @@ class ParsedSummaryField extends ParsedBlock { void setDynamic() { this.isDyn = true; } void setFull() { this.isFull = true; } void setMatchedElementsOnly() { this.isMEO = true; } + void setTokens() { this.isTokens = true; } + void setHasExplicitType() { this.hasExplicitType = true; } void setType(ParsedType value) { verifyThat(type == null, "Cannot change type from ", type, "to", value); this.type = value; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/ParsedType.java b/config-model/src/main/java/com/yahoo/schema/parser/ParsedType.java index 5613278ee85..aad9861273b 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/ParsedType.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/ParsedType.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.tensor.TensorType; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/SimpleCharStream.java b/config-model/src/main/java/com/yahoo/schema/parser/SimpleCharStream.java index 0a53e0477ac..7a3e86b0725 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/SimpleCharStream.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/SimpleCharStream.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; import com.yahoo.javacc.FastCharStream; diff --git a/config-model/src/main/java/com/yahoo/schema/parser/Utils.java b/config-model/src/main/java/com/yahoo/schema/parser/Utils.java index cdb299c92df..bf9e96f01a4 100644 --- a/config-model/src/main/java/com/yahoo/schema/parser/Utils.java +++ b/config-model/src/main/java/com/yahoo/schema/parser/Utils.java @@ -1,4 +1,4 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.schema.parser; /** |