From 764fb86ffd0908a0599de67a81e8b1a745836c70 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Thu, 14 Mar 2024 13:28:42 +0100 Subject: Validate based on index mode of schema, not the mode of the searchcluster --- .../ComplexFieldsWithStructFieldAttributesValidator.java | 6 +++--- .../validation/ComplexFieldsWithStructFieldIndexesValidator.java | 8 ++++---- .../vespa/model/application/validation/NoPrefixForIndexes.java | 8 +++----- .../vespa/model/application/validation/RankSetupValidator.java | 2 +- .../model/application/validation/SearchDataTypeValidator.java | 8 ++------ 5 files changed, 13 insertions(+), 19 deletions(-) (limited to 'config-model/src/main/java') diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexFieldsWithStructFieldAttributesValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexFieldsWithStructFieldAttributesValidator.java index 12f3f025996..7b7c92a43e0 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexFieldsWithStructFieldAttributesValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexFieldsWithStructFieldAttributesValidator.java @@ -28,10 +28,10 @@ public class ComplexFieldsWithStructFieldAttributesValidator implements Validato public void validate(Context context) { List searchClusters = context.model().getSearchClusters(); for (SearchCluster cluster : searchClusters) { - if (cluster.isStreaming()) continue; - for (SchemaInfo spec : cluster.schemas().values()) { - validateComplexFields(context, cluster.getClusterName(), spec.fullSchema(), context.deployState().getDeployLogger()); + if (spec.getIndexMode() == SchemaInfo.IndexMode.INDEX) { + validateComplexFields(context, cluster.getClusterName(), spec.fullSchema(), context.deployState().getDeployLogger()); + } } } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexFieldsWithStructFieldIndexesValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexFieldsWithStructFieldIndexesValidator.java index 3dbba081400..2d553c84f48 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexFieldsWithStructFieldIndexesValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/ComplexFieldsWithStructFieldIndexesValidator.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.model.application.validation; import com.yahoo.schema.Schema; +import com.yahoo.schema.derived.SchemaInfo; import com.yahoo.schema.document.ImmutableSDField; import com.yahoo.vespa.model.application.validation.Validation.Context; @@ -24,11 +25,10 @@ public class ComplexFieldsWithStructFieldIndexesValidator implements Validator { @Override public void validate(Context context) { for (var cluster : context.model().getSearchClusters()) { - if (cluster.isStreaming()) { - continue; - } for (var spec : cluster.schemas().values()) { - validateComplexFields(context, cluster.getClusterName(), spec.fullSchema()); + if (spec.getIndexMode() == SchemaInfo.IndexMode.INDEX) { + validateComplexFields(context, cluster.getClusterName(), spec.fullSchema()); + } } } } 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 15d293e4abc..2ea4755ca75 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 @@ -8,7 +8,6 @@ import com.yahoo.schema.document.ImmutableSDField; import com.yahoo.schema.document.MatchAlgorithm; import com.yahoo.vespa.model.application.validation.Validation.Context; import com.yahoo.vespa.model.search.DocumentDatabase; -import com.yahoo.vespa.model.search.IndexedSearchCluster; import com.yahoo.vespa.model.search.SearchCluster; import java.util.Map; @@ -23,10 +22,9 @@ public class NoPrefixForIndexes implements Validator { @Override public void validate(Context context) { for (SearchCluster cluster : context.model().getSearchClusters()) { - if (cluster instanceof IndexedSearchCluster) { - IndexedSearchCluster sc = (IndexedSearchCluster) cluster; - for (DocumentDatabase docDb : sc.getDocumentDbs()) { - DerivedConfiguration sdConfig = docDb.getDerivedConfiguration(); + for (DocumentDatabase docDb : cluster.getDocumentDbs()) { + DerivedConfiguration sdConfig = docDb.getDerivedConfiguration(); + if ( ! sdConfig.isStreaming() ) { Schema schema = sdConfig.getSchema(); for (ImmutableSDField field : schema.allConcreteFields()) { if (field.doesIndexing()) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java index 03076b64d0c..736665b2184 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java @@ -69,7 +69,7 @@ public class RankSetupValidator implements Validator { String schemaDir = clusterDir + schemaName + "/"; writeConfigs(schemaDir, docDb); writeExtraVerifyRankSetupConfig(schemaDir, docDb); - if (!validate(context, "dir:" + schemaDir, sc, schemaName, cfgDir, sc.isStreaming())) { + if (!validate(context, "dir:" + schemaDir, sc, schemaName, cfgDir, docDb.getDerivedConfiguration().isStreaming())) { return; } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidator.java index 6e21adc4fe4..cd8094f8c12 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SearchDataTypeValidator.java @@ -31,15 +31,11 @@ public class SearchDataTypeValidator implements Validator { public void validate(Context context) { List clusters = context.model().getSearchClusters(); for (SearchCluster cluster : clusters) { - if (cluster.isStreaming()) { - continue; - } for (SchemaInfo spec : cluster.schemas().values()) { SDDocumentType docType = spec.fullSchema().getDocument(); - if (docType == null) { - continue; + if (docType != null && spec.getIndexMode() == SchemaInfo.IndexMode.INDEX) { + validateDocument(context, cluster, spec.fullSchema(), docType); } - validateDocument(context, cluster, spec.fullSchema(), docType); } } } -- cgit v1.2.3