summaryrefslogtreecommitdiffstats
path: root/config-model/src/test/java/com/yahoo/schema
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/test/java/com/yahoo/schema')
-rw-r--r--config-model/src/test/java/com/yahoo/schema/derived/AbstractExportingTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/schema/derived/IndexInfoTestCase.java55
-rw-r--r--config-model/src/test/java/com/yahoo/schema/derived/SchemaToDerivedConfigExporter.java2
-rw-r--r--config-model/src/test/java/com/yahoo/schema/parser/SchemaParserTestCase.java17
-rw-r--r--config-model/src/test/java/com/yahoo/schema/processing/IndexingScriptRewriterTestCase.java9
5 files changed, 83 insertions, 2 deletions
diff --git a/config-model/src/test/java/com/yahoo/schema/derived/AbstractExportingTestCase.java b/config-model/src/test/java/com/yahoo/schema/derived/AbstractExportingTestCase.java
index 3bb129a4c32..7686289f11c 100644
--- a/config-model/src/test/java/com/yahoo/schema/derived/AbstractExportingTestCase.java
+++ b/config-model/src/test/java/com/yahoo/schema/derived/AbstractExportingTestCase.java
@@ -52,7 +52,7 @@ public abstract class AbstractExportingTestCase extends AbstractSchemaTestCase {
.deployLogger(logger)
.rankProfileRegistry(builder.getRankProfileRegistry())
.queryProfiles(builder.getQueryProfileRegistry())
- .build());
+ .build(), false);
return export(dirName, builder, config);
}
diff --git a/config-model/src/test/java/com/yahoo/schema/derived/IndexInfoTestCase.java b/config-model/src/test/java/com/yahoo/schema/derived/IndexInfoTestCase.java
new file mode 100644
index 00000000000..09450fa8023
--- /dev/null
+++ b/config-model/src/test/java/com/yahoo/schema/derived/IndexInfoTestCase.java
@@ -0,0 +1,55 @@
+package com.yahoo.schema.derived;
+
+import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.search.config.IndexInfoConfig;
+import com.yahoo.vespa.model.VespaModel;
+import com.yahoo.vespa.model.content.utils.ApplicationPackageBuilder;
+import com.yahoo.vespa.model.content.utils.ContentClusterBuilder;
+import com.yahoo.vespa.model.content.utils.DocType;
+import com.yahoo.vespa.model.content.utils.SchemaBuilder;
+import org.junit.jupiter.api.Test;
+
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class IndexInfoTestCase {
+ private static final String F = "f";
+ @Test
+ void testThatIndexingEnablesNormalizing() {
+ var cmds = createIndexCmds(false);
+ assertEquals(8, cmds.size());
+ assertEquals(1, cmds.stream().filter(c -> c.indexname().equals(F) && c.command().equals("normalize")).count());
+ }
+ @Test
+ void testThatStreamingDisablesNormalizing() {
+ var cmds = createIndexCmds(true);
+ assertEquals(7, cmds.size());
+ assertEquals(0, cmds.stream().filter(c -> c.indexname().equals(F) && c.command().equals("normalize")).count());
+ }
+
+ private static List<IndexInfoConfig.Indexinfo.Command> createIndexCmds(boolean isStreaming) {
+ final String SD = "sda";
+ String documentContent = "field " + F + " type string {indexing:index | summary}";
+ var cfg = createIndexInfo(SD, documentContent, isStreaming);
+ assertEquals(SD, cfg.indexinfo(0).name());
+ return cfg.indexinfo(0).command();
+ }
+
+ private static IndexInfoConfig createIndexInfo(String schemaName, String sdContent, boolean isStreaming) {
+ var model = createModel(schemaName, sdContent);
+ var schema = model.getSearchClusters().get(0).schemas().get(schemaName);
+ var indexInfo = new IndexInfo(schema.fullSchema(), isStreaming);
+ IndexInfoConfig.Builder builder = new IndexInfoConfig.Builder();
+ indexInfo.getConfig(builder);
+ return builder.build();
+ }
+
+ private static VespaModel createModel(String schemaName, String sdContent) {
+ var builder = new DeployState.Builder();
+ return new ApplicationPackageBuilder()
+ .addCluster(new ContentClusterBuilder().name("content").docTypes(List.of(DocType.index(schemaName))))
+ .addSchemas(new SchemaBuilder().name(schemaName).content(sdContent).build())
+ .buildCreator().create(builder);
+ }
+}
diff --git a/config-model/src/test/java/com/yahoo/schema/derived/SchemaToDerivedConfigExporter.java b/config-model/src/test/java/com/yahoo/schema/derived/SchemaToDerivedConfigExporter.java
index b219d84f108..2beab3d5ea9 100644
--- a/config-model/src/test/java/com/yahoo/schema/derived/SchemaToDerivedConfigExporter.java
+++ b/config-model/src/test/java/com/yahoo/schema/derived/SchemaToDerivedConfigExporter.java
@@ -46,7 +46,7 @@ public class SchemaToDerivedConfigExporter {
.deployLogger(logger)
.rankProfileRegistry(builder.getRankProfileRegistry())
.queryProfiles(builder.getQueryProfileRegistry())
- .build());
+ .build(), false);
exportConfig(dirPath, derived, builder);
}
}
diff --git a/config-model/src/test/java/com/yahoo/schema/parser/SchemaParserTestCase.java b/config-model/src/test/java/com/yahoo/schema/parser/SchemaParserTestCase.java
index c014f77d59a..5a2dc218da7 100644
--- a/config-model/src/test/java/com/yahoo/schema/parser/SchemaParserTestCase.java
+++ b/config-model/src/test/java/com/yahoo/schema/parser/SchemaParserTestCase.java
@@ -120,6 +120,23 @@ public class SchemaParserTestCase {
assertEquals("onnx(mymodel)", rp1.getGlobalPhaseExpression().get());
}
+ @Test
+ void maxOccurrencesCanBeParsed() throws Exception {
+ String input = joinLines
+ ("schema foo {",
+ " document foo {",
+ " field bar type string {",
+ " indexing: summary | index",
+ " match { max-occurrences: 11 }",
+ " }",
+ " }",
+ "}");
+ ParsedSchema schema = parseString(input);
+ var field = schema.getDocument().getFields().get(0);
+ assertEquals("bar", field.name());
+ assertEquals(11, field.matchSettings().getMaxTermOccurrences().get());
+ }
+
void checkFileParses(String fileName) throws Exception {
var schema = parseFile(fileName);
assertNotNull(schema);
diff --git a/config-model/src/test/java/com/yahoo/schema/processing/IndexingScriptRewriterTestCase.java b/config-model/src/test/java/com/yahoo/schema/processing/IndexingScriptRewriterTestCase.java
index 87e91acfb67..c2cc28ea6b3 100644
--- a/config-model/src/test/java/com/yahoo/schema/processing/IndexingScriptRewriterTestCase.java
+++ b/config-model/src/test/java/com/yahoo/schema/processing/IndexingScriptRewriterTestCase.java
@@ -147,6 +147,15 @@ public class IndexingScriptRewriterTestCase extends AbstractSchemaTestCase {
createPredicateField("test", DataType.PREDICATE, "{ attribute; }", 2, OptionalLong.of(0L), OptionalLong.of(1023L)));
}
+ @Test
+ void requireThatMaxTermOccurrencesIsPropagated() {
+ var field = new SDField("test", DataType.STRING);
+ field.getMatching().maxTermOccurrences(10);
+ field.parseIndexingScript("{ summary | index }");
+ assertIndexingScript("{ input test | tokenize normalize stem:\"BEST\" max-occurrences:10 | summary test | index test; }",
+ field);
+ }
+
private static void assertIndexingScript(String expectedScript, SDField unprocessedField) {
assertEquals(expectedScript,
processField(unprocessedField).toString());