diff options
Diffstat (limited to 'config-model/src/test/java/com/yahoo/schema')
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()); |