diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-05-05 10:19:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-05 10:19:35 +0200 |
commit | 66c06751d6aae347ce3bd2949ef83b1b8ce93054 (patch) | |
tree | a8c34b5713347dd76695725a106b499562a809b2 /config-model/src/main | |
parent | 6ea99ad087e66a5fe051ce5cde3aee55a1c44617 (diff) |
Revert "Simplify"
Diffstat (limited to 'config-model/src/main')
6 files changed, 99 insertions, 75 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/StreamingValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/StreamingValidator.java index 868da8efb14..438b28948c6 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/StreamingValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/StreamingValidator.java @@ -11,7 +11,6 @@ import com.yahoo.searchdefinition.document.ImmutableSDField; import com.yahoo.searchdefinition.document.MatchType; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.search.SearchCluster; -import com.yahoo.vespa.model.search.StreamingSearchCluster; import java.util.List; import java.util.logging.Level; @@ -26,21 +25,21 @@ public class StreamingValidator extends Validator { List<SearchCluster> searchClusters = model.getSearchClusters(); for (SearchCluster cluster : searchClusters) { if ( ! cluster.isStreaming()) continue; - - var streamingCluster = (StreamingSearchCluster)cluster; - warnStreamingAttributes(streamingCluster, deployState.getDeployLogger()); - warnStreamingGramMatching(streamingCluster, deployState.getDeployLogger()); - failStreamingDocumentReferences(streamingCluster); + warnStreamingAttributes(cluster, deployState.getDeployLogger()); + warnStreamingGramMatching(cluster, deployState.getDeployLogger()); + failStreamingDocumentReferences(cluster); } } - private static void warnStreamingGramMatching(StreamingSearchCluster sc, DeployLogger logger) { - for (ImmutableSDField sd : sc.derived().getSchema().allConcreteFields()) { - if (sd.getMatching().getType() == MatchType.GRAM) { - logger.logApplicationPackage(Level.WARNING, "For streaming search cluster '" + - sc.getClusterName() + - "', SD field '" + sd.getName() + - "': n-gram matching is not supported for streaming search."); + private static void warnStreamingGramMatching(SearchCluster sc, DeployLogger logger) { + if (sc.getSchemaConfig() != null) { + for (ImmutableSDField sd : sc.getSchemaConfig().getSchema().allConcreteFields()) { + if (sd.getMatching().getType() == MatchType.GRAM) { + logger.logApplicationPackage(Level.WARNING, "For streaming search cluster '" + + sc.getClusterName() + + "', SD field '" + sd.getName() + + "': n-gram matching is not supported for streaming search."); + } } } } @@ -51,15 +50,17 @@ public class StreamingValidator extends Validator { * @param sc a search cluster to be checked for attributes in streaming search * @param logger a DeployLogger */ - private static void warnStreamingAttributes(StreamingSearchCluster sc, DeployLogger logger) { - for (ImmutableSDField sd : sc.derived().getSchema().allConcreteFields()) { - if (sd.doesAttributing()) { - warnStreamingAttribute(sc, sd, logger); + private static void warnStreamingAttributes(SearchCluster sc, DeployLogger logger) { + if (sc.getSchemaConfig() != null) { + for (ImmutableSDField sd : sc.getSchemaConfig().getSchema().allConcreteFields()) { + if (sd.doesAttributing()) { + warnStreamingAttribute(sc, sd, logger); + } } } } - private static void warnStreamingAttribute(StreamingSearchCluster sc, ImmutableSDField sd, DeployLogger logger) { + private static void warnStreamingAttribute(SearchCluster sc, ImmutableSDField sd, DeployLogger logger) { // If the field is numeric, we can't print this, because we may have converted the field to // attribute indexing ourselves (IntegerIndex2Attribute) if (sd.getDataType() instanceof NumericDataType) return; @@ -68,8 +69,8 @@ public class StreamingValidator extends Validator { "': 'attribute' has same match semantics as 'index'."); } - private static void failStreamingDocumentReferences(StreamingSearchCluster sc) { - for (Attribute attribute : sc.derived().getAttributeFields().attributes()) { + private static void failStreamingDocumentReferences(SearchCluster sc) { + for (Attribute attribute : sc.getSchemaConfig().getAttributeFields().attributes()) { DataType dataType = attribute.getDataType(); if (dataType instanceof NewDocumentReferenceDataType) { String errorMessage = String.format("For streaming search cluster '%s': Attribute '%s' has type '%s'. " + diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidator.java index 72dd0c9c15b..2820d0984db 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/change/StreamingSearchClusterChangeValidator.java @@ -64,11 +64,11 @@ public class StreamingSearchClusterChangeValidator implements ChangeValidator { getDocumentType(currentCluster, currentStreamingCluster), getDocumentType(nextCluster, nextStreamingCluster), overrides, now)); result.addAll(validateAttributeFastAccessAdded(currentCluster.id(), - currentStreamingCluster.derived().getAttributeFields(), - nextStreamingCluster.derived().getAttributeFields())); + currentStreamingCluster.getSchemaConfig().getAttributeFields(), + nextStreamingCluster.getSchemaConfig().getAttributeFields())); result.addAll(validateAttributeFastAccessRemoved(currentCluster.id(), - currentStreamingCluster.derived().getAttributeFields(), - nextStreamingCluster.derived().getAttributeFields())); + currentStreamingCluster.getSchemaConfig().getAttributeFields(), + nextStreamingCluster.getSchemaConfig().getAttributeFields())); return modifyActions(result, getSearchNodeServices(nextCluster), nextStreamingCluster.getDocTypeName()); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java index 122afac58c5..82321216519 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java @@ -329,7 +329,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> return getClusters().values().stream() .filter(StreamingSearchCluster.class::isInstance) .map(StreamingSearchCluster.class::cast) - .filter(ssc -> ssc.schemas().get(docType) != null) + .filter(ssc -> ssc.getSchemaConfig().getSchema().getName().equals(docType)) .findFirst(); } 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 cb9d330829e..d5bf12df559 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 @@ -228,6 +228,9 @@ public class IndexedSearchCluster extends SearchCluster } @Override + public DerivedConfiguration getSchemaConfig() { return null; } + + @Override public void getConfig(IndexInfoConfig.Builder builder) { documentDbsConfigProducer.getConfig(builder); } @@ -242,10 +245,12 @@ public class IndexedSearchCluster extends SearchCluster documentDbsConfigProducer.getConfig(builder); } + @Override public void getConfig(AttributesConfig.Builder builder) { documentDbsConfigProducer.getConfig(builder); } + @Override public void getConfig(RankProfilesConfig.Builder builder) { documentDbsConfigProducer.getConfig(builder); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java index 8a0b3ccc09b..d7ce64d1d32 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java @@ -3,15 +3,19 @@ package com.yahoo.vespa.model.search; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.search.config.SchemaInfoConfig; +import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.derived.SchemaInfo; import com.yahoo.searchdefinition.derived.SummaryMap; -import com.yahoo.vespa.config.search.AttributesConfig; +import com.yahoo.searchlib.rankingexpression.Reference; +import com.yahoo.tensor.TensorType; import com.yahoo.vespa.config.search.RankProfilesConfig; import com.yahoo.vespa.config.search.SummaryConfig; import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig; import com.yahoo.vespa.config.search.SummarymapConfig; import com.yahoo.search.config.IndexInfoConfig; +import com.yahoo.vespa.config.search.AttributesConfig; import com.yahoo.vespa.configdefinition.IlscriptsConfig; +import com.yahoo.searchdefinition.derived.DerivedConfiguration; import com.yahoo.config.model.producer.AbstractConfigProducer; import java.util.Collections; @@ -146,10 +150,35 @@ public abstract class SearchCluster extends AbstractConfigProducer<SearchCluster public final int getClusterIndex() { return index; } public abstract void defaultDocumentsConfig(); + public abstract DerivedConfiguration getSchemaConfig(); + + // TODO: The get methods below should be moved to StreamingSearchCluster + + @Override + public void getConfig(IndexInfoConfig.Builder builder) { + if (getSchemaConfig() != null) getSchemaConfig().getIndexInfo().getConfig(builder); + } + + @Override + public void getConfig(SchemaInfoConfig.Builder builder) { + if (getSchemaConfig() != null) getSchemaConfig().getSchemaInfo().getConfig(builder); + } + + @Override + public void getConfig(IlscriptsConfig.Builder builder) { + if (getSchemaConfig() != null) getSchemaConfig().getIndexingScript().getConfig(builder); + } - public abstract void getConfig(AttributesConfig.Builder builder); + public void getConfig(AttributesConfig.Builder builder) { + if (getSchemaConfig() != null) getSchemaConfig().getConfig(builder); + } + + public void getConfig(RankProfilesConfig.Builder builder) { + if (getSchemaConfig() != null) getSchemaConfig().getRankProfileList().getConfig(builder); + } - public abstract void getConfig(RankProfilesConfig.Builder builder); + @Override + public abstract void getConfig(DocumentdbInfoConfig.Builder builder); @Override public String toString() { return "search-capable cluster '" + clusterName + "'"; } 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 7cd57e704c1..df266ab77dd 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,8 +4,6 @@ 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.search.config.IndexInfoConfig; -import com.yahoo.search.config.SchemaInfoConfig; import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.AttributeFields; import com.yahoo.searchdefinition.derived.DerivedConfiguration; @@ -15,7 +13,6 @@ import com.yahoo.vespa.config.search.SummaryConfig; import com.yahoo.vespa.config.search.SummarymapConfig; import com.yahoo.vespa.config.search.vsm.VsmfieldsConfig; import com.yahoo.vespa.config.search.vsm.VsmsummaryConfig; -import com.yahoo.vespa.configdefinition.IlscriptsConfig; /** * A search cluster of type streaming. @@ -23,8 +20,9 @@ import com.yahoo.vespa.configdefinition.IlscriptsConfig; * @author baldersheim * @author vegardh */ -public class StreamingSearchCluster extends SearchCluster implements - DocumentdbInfoConfig.Producer, +public class StreamingSearchCluster extends SearchCluster implements + DocumentdbInfoConfig.Producer, + RankProfilesConfig.Producer, VsmsummaryConfig.Producer, VsmfieldsConfig.Producer, SummarymapConfig.Producer, @@ -33,7 +31,7 @@ public class StreamingSearchCluster extends SearchCluster implements private final String storageRouteSpec; private final AttributesProducer attributesConfig; private final String docTypeName; - private DerivedConfiguration derivedConfig = null; + private DerivedConfiguration schemaConfig = null; public StreamingSearchCluster(AbstractConfigProducer<SearchCluster> parent, String clusterName, @@ -53,9 +51,9 @@ public class StreamingSearchCluster extends SearchCluster implements protected IndexingMode getIndexingMode() { return IndexingMode.STREAMING; } public final String getStorageRouteSpec() { return storageRouteSpec; } - public String getDocTypeName() { return docTypeName; } - - public DerivedConfiguration derived() { return derivedConfig; } + public String getDocTypeName() { + return docTypeName; + } @Override public int getRowBits() { return 0; } @@ -63,10 +61,10 @@ public class StreamingSearchCluster extends SearchCluster implements @Override public void getConfig(DocumentdbInfoConfig.Builder builder) { DocumentdbInfoConfig.Documentdb.Builder docDb = new DocumentdbInfoConfig.Documentdb.Builder(); - docDb.name(derivedConfig.getSchema().getName()); - SummaryConfig.Producer prod = derivedConfig.getSummaries(); + docDb.name(schemaConfig.getSchema().getName()); + SummaryConfig.Producer prod = schemaConfig.getSummaries(); convertSummaryConfig(prod, null, docDb); - addRankProfilesConfig(derivedConfig.getSchema().getName(), docDb); + addRankProfilesConfig(schemaConfig.getSchema().getName(), docDb); builder.documentdb(docDb); } @@ -79,63 +77,52 @@ public class StreamingSearchCluster extends SearchCluster implements if ( ! schema.getName().equals(docTypeName)) throw new IllegalArgumentException("Document type name '" + docTypeName + "' must be the same as the schema name '" + schema.getName() + "'"); - this.derivedConfig = new DerivedConfiguration(schema, - deployState.getDeployLogger(), - deployState.getProperties(), - deployState.rankProfileRegistry(), - deployState.getQueryProfiles().getRegistry(), - deployState.getImportedModels(), - deployState.getExecutor()); + this.schemaConfig = new DerivedConfiguration(schema, + deployState.getDeployLogger(), + deployState.getProperties(), + deployState.rankProfileRegistry(), + deployState.getQueryProfiles().getRegistry(), + deployState.getImportedModels(), + deployState.getExecutor()); } @Override - public void defaultDocumentsConfig() { } + public DerivedConfiguration getSchemaConfig() { return schemaConfig; } @Override - public void getConfig(IndexInfoConfig.Builder builder) { - derivedConfig.getIndexInfo().getConfig(builder); - } - - @Override - public void getConfig(SchemaInfoConfig.Builder builder) { - derivedConfig.getSchemaInfo().getConfig(builder); - } + public void defaultDocumentsConfig() { } @Override - public void getConfig(IlscriptsConfig.Builder builder) { - derivedConfig.getIndexingScript().getConfig(builder); - } - public void getConfig(AttributesConfig.Builder builder) { - derivedConfig.getConfig(builder); + if (getSchemaConfig() != null) getSchemaConfig().getConfig(builder); } - - public void getConfig(RankProfilesConfig.Builder builder) { - derivedConfig.getRankProfileList().getConfig(builder); - } - + @Override public void getConfig(VsmsummaryConfig.Builder builder) { - if (derivedConfig.getVsmSummary() != null) - derivedConfig.getVsmSummary().getConfig(builder); + if (getSchemaConfig() != null) + if (getSchemaConfig().getVsmSummary() != null) + getSchemaConfig().getVsmSummary().getConfig(builder); } @Override public void getConfig(VsmfieldsConfig.Builder builder) { - if (derivedConfig.getVsmFields() != null) - derivedConfig.getVsmFields().getConfig(builder); + if (getSchemaConfig() != null) + if (getSchemaConfig().getVsmFields() != null) + getSchemaConfig().getVsmFields().getConfig(builder); } @Override public void getConfig(SummarymapConfig.Builder builder) { - if (derivedConfig.getSummaryMap() != null) - derivedConfig.getSummaryMap().getConfig(builder); + if (getSchemaConfig() != null) + if (getSchemaConfig().getSummaryMap() != null) + getSchemaConfig().getSummaryMap().getConfig(builder); } @Override public void getConfig(SummaryConfig.Builder builder) { - if (derivedConfig.getSummaries() != null) - derivedConfig.getSummaries().getConfig(builder); + if (getSchemaConfig() != null) + if (getSchemaConfig().getSummaries() != null) + getSchemaConfig().getSummaries().getConfig(builder); } private class AttributesProducer extends AbstractConfigProducer<AttributesProducer> implements AttributesConfig.Producer { @@ -146,7 +133,9 @@ public class StreamingSearchCluster extends SearchCluster implements @Override public void getConfig(AttributesConfig.Builder builder) { - derivedConfig.getConfig(builder, AttributeFields.FieldSet.FAST_ACCESS); + if (getSchemaConfig() != null) { + getSchemaConfig().getConfig(builder, AttributeFields.FieldSet.FAST_ACCESS); + } } } |