summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2024-03-26 12:44:04 +0100
committerTor Egge <Tor.Egge@online.no>2024-03-26 12:44:04 +0100
commite0c4e2e95a760863b6b7737a41fe58e3857b6486 (patch)
treea39f01dc4c54caa8cf74fb5253b6d4c93c46ed62 /config-model/src/main/java
parent32ad1a732962c9ea9d7b0693dfa880ef74e9ddd0 (diff)
Add streaming search validator warnings for predicate and uri fields.
Diffstat (limited to 'config-model/src/main/java')
-rw-r--r--config-model/src/main/java/com/yahoo/schema/processing/PredicateProcessor.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/StreamingValidator.java23
2 files changed, 24 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/processing/PredicateProcessor.java b/config-model/src/main/java/com/yahoo/schema/processing/PredicateProcessor.java
index 26107ad2dca..2a654991835 100644
--- a/config-model/src/main/java/com/yahoo/schema/processing/PredicateProcessor.java
+++ b/config-model/src/main/java/com/yahoo/schema/processing/PredicateProcessor.java
@@ -45,7 +45,7 @@ public class PredicateProcessor extends Processor {
for (SDField field : schema.allConcreteFields()) {
if (field.getDataType() == DataType.PREDICATE) {
if (validate && field.doesIndexing()) {
- fail(schema, field, "Use 'attribute' instead of 'index'. This will require a refeed if you have upgraded.");
+ fail(schema, field, "Use 'attribute' instead of 'index'.");
}
if (field.doesAttributing()) {
Attribute attribute = field.getAttributes().get(field.getName());
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 96b13782a7d..bcaf09426f6 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
@@ -31,6 +31,7 @@ public class StreamingValidator implements Validator {
if (schemaInfo.getIndexMode() == SchemaInfo.IndexMode.STREAMING) {
var deployLogger = context.deployState().getDeployLogger();
warnStreamingAttributes(cluster.getClusterName(), schemaInfo.fullSchema(), deployLogger);
+ warnStreamingIndexFields(cluster.getClusterName(), schemaInfo.fullSchema(), deployLogger);
warnStreamingGramMatching(cluster.getClusterName(), schemaInfo.fullSchema(), deployLogger);
failStreamingDocumentReferences(cluster.getClusterName(), cluster.getDocumentDB(schemaInfo.name()).getDerivedConfiguration(), context);
}
@@ -74,6 +75,11 @@ public class StreamingValidator implements Validator {
}
}
return;
+ } else if (sd.getDataType() == DataType.PREDICATE) {
+ logger.logApplicationPackage(Level.WARNING,
+ "For search cluster '" + cluster + "', streaming schema '" + schema +
+ "', SD field '" + sd.getName() +
+ "': field type predicate is not supported for streaming search");
}
}
@@ -89,4 +95,21 @@ public class StreamingValidator implements Validator {
}
}
+ private static void warnStreamingIndexFields(String cluster, Schema schema, DeployLogger logger) {
+ for (ImmutableSDField sd : schema.allConcreteFields()) {
+ if (sd.doesIndexing()) {
+ warnStreamingIndexField(cluster, schema.getName(), sd, logger);
+ }
+ }
+ }
+
+ private static void warnStreamingIndexField(String cluster, String schema, ImmutableSDField sd, DeployLogger logger) {
+ if (sd.getDataType() == DataType.URI) {
+ logger.logApplicationPackage(Level.WARNING,
+ "For search cluster '" + cluster + "', streaming schema '" + schema +
+ "', SD field '" + sd.getName() +
+ "': field type uri is not supported for streaming search, it will be handled as a string field");
+
+ }
+ }
}