diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-14 12:50:07 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-14 13:14:45 +0100 |
commit | 1fe5d1e05cce1dbb712f74b13731eb56a4be1b0d (patch) | |
tree | 0f1b76ab8cf342191bf3b1b247c35f6aa8def228 /config-model/src/main/java/com/yahoo/schema/derived | |
parent | 6c76d7dfcf6df3e1f92034d114b55425071faef8 (diff) |
Add index mode to Schema
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/derived')
-rw-r--r-- | config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java | 17 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java | 21 |
2 files changed, 29 insertions, 9 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java b/config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java index b35918b3460..421f3d5a1d1 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/DerivedConfiguration.java @@ -28,7 +28,7 @@ import java.io.Writer; public class DerivedConfiguration { private final Schema schema; - private final boolean isStreaming; + private final SchemaInfo.IndexMode indexMode; private Summaries summaries; private Juniperrc juniperrc; private AttributeFields attributeFields; @@ -57,7 +57,8 @@ public class DerivedConfiguration { } DerivedConfiguration(Schema schema, RankProfileRegistry rankProfileRegistry, QueryProfileRegistry queryProfiles) { - this(schema, new DeployState.Builder().rankProfileRegistry(rankProfileRegistry).queryProfiles(queryProfiles).build(), false); + this(new DeployState.Builder().rankProfileRegistry(rankProfileRegistry).queryProfiles(queryProfiles).build(), + schema, SchemaInfo.IndexMode.INDEX); } /** @@ -67,8 +68,8 @@ public class DerivedConfiguration { * argument is live. Which means that this object will be inconsistent if the given * schema is later modified. */ - public DerivedConfiguration(Schema schema, DeployState deployState, boolean isStreaming) { - this.isStreaming = isStreaming; + public DerivedConfiguration(DeployState deployState, Schema schema, SchemaInfo.IndexMode indexMode) { + this.indexMode = indexMode; try { Validator.ensureNotNull("Schema", schema); this.schema = schema; @@ -81,9 +82,9 @@ public class DerivedConfiguration { summaries = new Summaries(schema, deployState.getDeployLogger(), deployState.getProperties().featureFlags()); juniperrc = new Juniperrc(schema); rankProfileList = new RankProfileList(schema, schema.rankExpressionFiles(), attributeFields, deployState); - indexingScript = new IndexingScript(schema, isStreaming); - indexInfo = new IndexInfo(schema, isStreaming); - schemaInfo = new SchemaInfo(schema, deployState.rankProfileRegistry(), summaries); + indexingScript = new IndexingScript(schema, isStreaming()); + indexInfo = new IndexInfo(schema, isStreaming()); + schemaInfo = new SchemaInfo(schema, indexMode, deployState.rankProfileRegistry(), summaries); indexSchema = new IndexSchema(schema); importedFields = new ImportedFields(schema); } @@ -153,7 +154,7 @@ public class DerivedConfiguration { } public boolean isStreaming() { - return isStreaming; + return indexMode == SchemaInfo.IndexMode.STREAMING; } public Summaries getSummaries() { diff --git a/config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java b/config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java index 19a045ac444..f996b2624db 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java @@ -42,13 +42,32 @@ public final class SchemaInfo extends Derived { private final Map<String, RankProfileInfo> rankProfiles; private final Summaries summaries; + private final IndexMode indexMode; - public SchemaInfo(Schema schema, RankProfileRegistry rankProfileRegistry, Summaries summaries) { + public enum IndexMode {INDEX, STREAMING, STORE_ONLY} + + public SchemaInfo(Schema schema, String indexMode, RankProfileRegistry rankProfileRegistry, Summaries summaries) { + this(schema, indexMode(indexMode), rankProfileRegistry, summaries); + } + public SchemaInfo(Schema schema, IndexMode indexMode, RankProfileRegistry rankProfileRegistry, Summaries summaries) { this.schema = schema; this.rankProfiles = Collections.unmodifiableMap(toRankProfiles(rankProfileRegistry.rankProfilesOf(schema))); this.summaries = summaries; + this.indexMode = indexMode; } + private static IndexMode indexMode(String mode) { + if (mode == null) return IndexMode.INDEX; + return switch (mode) { + case "index" -> IndexMode.INDEX; + case "streaming" -> IndexMode.STREAMING; + case "store-only" -> IndexMode.STORE_ONLY; + default -> IndexMode.STORE_ONLY; + }; + } + + public IndexMode getIndexMode() { return indexMode; } + public String name() { return schema.getName(); } @Override |