summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java')
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/AttributeFields.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/PlatformBundles.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/LocalProvider.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/DocumentDatabase.java57
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java118
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java108
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java99
9 files changed, 179 insertions, 232 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/derived/AttributeFields.java b/config-model/src/main/java/com/yahoo/schema/derived/AttributeFields.java
index 57e5097556a..e747235dc3c 100644
--- a/config-model/src/main/java/com/yahoo/schema/derived/AttributeFields.java
+++ b/config-model/src/main/java/com/yahoo/schema/derived/AttributeFields.java
@@ -16,7 +16,6 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
-import java.util.stream.Collectors;
import static com.yahoo.schema.document.ComplexAttributeFieldUtils.isArrayOfSimpleStruct;
import static com.yahoo.schema.document.ComplexAttributeFieldUtils.isMapOfPrimitiveType;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java
index 78dd6213e21..654c81f0519 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java
@@ -6,10 +6,15 @@ import com.yahoo.config.model.producer.TreeConfigProducer;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.search.config.QrStartConfig;
import com.yahoo.vespa.model.container.ContainerCluster;
+import com.yahoo.vespa.model.container.PlatformBundles;
import com.yahoo.vespa.model.container.component.Handler;
import com.yahoo.vespa.model.container.component.SystemBindingPattern;
+import java.nio.file.Path;
import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
/**
* @author hmusum
@@ -40,4 +45,11 @@ public class LogserverContainerCluster extends ContainerCluster<LogserverContain
addComponent(logHandler);
}
+ @Override
+ protected Set<Path> unnecessaryPlatformBundles() {
+ return Stream.concat(PlatformBundles.VESPA_SECURITY_BUNDLES.stream(),
+ PlatformBundles.VESPA_ZK_BUNDLES.stream())
+ .collect(Collectors.toSet());
+ }
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/PlatformBundles.java b/config-model/src/main/java/com/yahoo/vespa/model/container/PlatformBundles.java
index 0f09036b544..13e6ee6684d 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/PlatformBundles.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/PlatformBundles.java
@@ -59,6 +59,7 @@ public class PlatformBundles {
SEARCH_AND_DOCPROC_BUNDLE,
"docprocs",
LINGUISTICS_BUNDLE_NAME,
+ "lucene-linguistics",
EVALUATION_BUNDLE_NAME,
INTEGRATION_BUNDLE_NAME,
ONNXRUNTIME_BUNDLE_NAME
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/LocalProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/LocalProvider.java
index 5cf3ce1d306..dfef6eac3b3 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/LocalProvider.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/searchchain/LocalProvider.java
@@ -72,8 +72,7 @@ public class LocalProvider extends Provider implements
@Override
public ChainSpecification getChainSpecification() {
- ChainSpecification spec =
- super.getChainSpecification();
+ ChainSpecification spec = super.getChainSpecification();
return new ChainSpecification(spec.componentId, spec.inheritance, spec.phases(),
disableStemmingIfStreaming(spec.componentReferences));
}
@@ -84,10 +83,9 @@ public class LocalProvider extends Provider implements
return searcherReferences;
} else {
Set<ComponentSpecification> filteredSearcherReferences = new LinkedHashSet<>(searcherReferences);
- filteredSearcherReferences.remove(
- toGlobalComponentId(
- new ComponentId("com.yahoo.prelude.querytransform.StemmingSearcher")).
- toSpecification());
+ filteredSearcherReferences
+ .remove(toGlobalComponentId(new ComponentId("com.yahoo.prelude.querytransform.StemmingSearcher"))
+ .toSpecification());
return filteredSearcherReferences;
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
index fc5b5c25e6d..cd3103d20ab 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
@@ -398,9 +398,8 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
if (hasIndexingModeStreaming(type)) {
hasAnyNonIndexedCluster = true;
- ddbB.inputdoctypename(type.getFullName().getName())
- .configid(findStreamingCluster(docTypeName).get().getDocumentDBConfigId())
- .mode(ProtonConfig.Documentdb.Mode.Enum.STREAMING);
+ findStreamingCluster(docTypeName).get().fillDocumentDBConfig(type.getFullName().getName(), ddbB);
+ ddbB.mode(ProtonConfig.Documentdb.Mode.Enum.STREAMING);
} else if (hasIndexingModeIndexed(type)) {
getIndexed().fillDocumentDBConfig(type.getFullName().getName(), ddbB);
} else {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/DocumentDatabase.java b/config-model/src/main/java/com/yahoo/vespa/model/search/DocumentDatabase.java
index 1494eae7426..32ac5d0f4ed 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/DocumentDatabase.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/DocumentDatabase.java
@@ -15,6 +15,8 @@ import com.yahoo.vespa.config.search.core.OnnxModelsConfig;
import com.yahoo.vespa.config.search.core.RankingConstantsConfig;
import com.yahoo.vespa.config.search.core.RankingExpressionsConfig;
import com.yahoo.vespa.config.search.summary.JuniperrcConfig;
+import com.yahoo.vespa.config.search.vsm.VsmfieldsConfig;
+import com.yahoo.vespa.config.search.vsm.VsmsummaryConfig;
import com.yahoo.vespa.configdefinition.IlscriptsConfig;
/**
@@ -34,7 +36,10 @@ public class DocumentDatabase extends AnyConfigProducer implements
JuniperrcConfig.Producer,
SummaryConfig.Producer,
ImportedFieldsConfig.Producer,
- SchemaInfoConfig.Producer {
+ SchemaInfoConfig.Producer,
+ VsmsummaryConfig.Producer,
+ VsmfieldsConfig.Producer
+{
private final String schemaName;
private final DerivedConfiguration derivedCfg;
@@ -56,41 +61,19 @@ public class DocumentDatabase extends AnyConfigProducer implements
public DerivedConfiguration getDerivedConfiguration() {
return derivedCfg;
}
-
- @Override
- public void getConfig(IndexInfoConfig.Builder builder) { derivedCfg.getIndexInfo().getConfig(builder); }
-
- @Override
- public void getConfig(IlscriptsConfig.Builder builder) { derivedCfg.getIndexingScript().getConfig(builder); }
-
- @Override
- public void getConfig(AttributesConfig.Builder builder) { derivedCfg.getConfig(builder); }
-
- @Override
- public void getConfig(RankProfilesConfig.Builder builder) { derivedCfg.getRankProfileList().getConfig(builder); }
-
- @Override
- public void getConfig(RankingExpressionsConfig.Builder builder) { derivedCfg.getRankProfileList().getConfig(builder); }
-
- @Override
- public void getConfig(RankingConstantsConfig.Builder builder) { derivedCfg.getRankProfileList().getConfig(builder); }
-
- @Override
- public void getConfig(OnnxModelsConfig.Builder builder) { derivedCfg.getRankProfileList().getConfig(builder); }
-
- @Override
- public void getConfig(IndexschemaConfig.Builder builder) { derivedCfg.getIndexSchema().getConfig(builder); }
-
- @Override
- public void getConfig(JuniperrcConfig.Builder builder) { derivedCfg.getJuniperrc().getConfig(builder); }
-
- @Override
- public void getConfig(SummaryConfig.Builder builder) { derivedCfg.getSummaries().getConfig(builder); }
-
- @Override
- public void getConfig(ImportedFieldsConfig.Builder builder) { derivedCfg.getImportedFields().getConfig(builder); }
-
- @Override
- public void getConfig(SchemaInfoConfig.Builder builder) { derivedCfg.getSchemaInfo().getConfig(builder); }
+ @Override public void getConfig(IndexInfoConfig.Builder builder) { derivedCfg.getIndexInfo().getConfig(builder); }
+ @Override public void getConfig(IlscriptsConfig.Builder builder) { derivedCfg.getIndexingScript().getConfig(builder); }
+ @Override public void getConfig(AttributesConfig.Builder builder) { derivedCfg.getConfig(builder); }
+ @Override public void getConfig(RankProfilesConfig.Builder builder) { derivedCfg.getRankProfileList().getConfig(builder); }
+ @Override public void getConfig(RankingExpressionsConfig.Builder builder) { derivedCfg.getRankProfileList().getConfig(builder); }
+ @Override public void getConfig(RankingConstantsConfig.Builder builder) { derivedCfg.getRankProfileList().getConfig(builder); }
+ @Override public void getConfig(OnnxModelsConfig.Builder builder) { derivedCfg.getRankProfileList().getConfig(builder); }
+ @Override public void getConfig(IndexschemaConfig.Builder builder) { derivedCfg.getIndexSchema().getConfig(builder); }
+ @Override public void getConfig(JuniperrcConfig.Builder builder) { derivedCfg.getJuniperrc().getConfig(builder); }
+ @Override public void getConfig(SummaryConfig.Builder builder) { derivedCfg.getSummaries().getConfig(builder); }
+ @Override public void getConfig(ImportedFieldsConfig.Builder builder) { derivedCfg.getImportedFields().getConfig(builder); }
+ @Override public void getConfig(SchemaInfoConfig.Builder builder) { derivedCfg.getSchemaInfo().getConfig(builder); }
+ @Override public void getConfig(VsmsummaryConfig.Builder builder) { derivedCfg.getVsmSummary().getConfig(builder); }
+ @Override public void getConfig(VsmfieldsConfig.Builder builder) { derivedCfg.getVsmFields().getConfig(builder); }
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
index e20c294d135..b51185ddac2 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
@@ -1,31 +1,22 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.search;
-import com.yahoo.config.ConfigInstance;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
-import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig;
import com.yahoo.schema.DocumentOnlySchema;
import com.yahoo.schema.derived.DerivedConfiguration;
import com.yahoo.schema.derived.SchemaInfo;
-import com.yahoo.search.config.IndexInfoConfig;
-import com.yahoo.search.config.SchemaInfoConfig;
-import com.yahoo.vespa.config.search.AttributesConfig;
import com.yahoo.vespa.config.search.DispatchConfig;
import com.yahoo.vespa.config.search.DispatchConfig.DistributionPolicy;
import com.yahoo.vespa.config.search.DispatchNodesConfig;
-import com.yahoo.vespa.config.search.RankProfilesConfig;
-import com.yahoo.vespa.config.search.core.ProtonConfig;
-import com.yahoo.vespa.configdefinition.IlscriptsConfig;
import com.yahoo.vespa.model.content.DispatchTuning;
import com.yahoo.vespa.model.content.Redundancy;
import com.yahoo.vespa.model.content.SearchCoverage;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.LinkedList;
import java.util.List;
/**
@@ -35,12 +26,9 @@ public class IndexedSearchCluster extends SearchCluster implements
DispatchConfig.Producer,
DispatchNodesConfig.Producer
{
-
private Tuning tuning;
private SearchCoverage searchCoverage;
- private final List<DocumentDatabase> documentDbs = new LinkedList<>();
-
private final Redundancy.Provider redundancyProvider;
private final List<SearchNode> searchNodes = new ArrayList<>();
@@ -72,80 +60,20 @@ public class IndexedSearchCluster extends SearchCluster implements
}
public Tuning getTuning() { return tuning; }
- public void fillDocumentDBConfig(String documentType, ProtonConfig.Documentdb.Builder builder) {
- for (DocumentDatabase sdoc : documentDbs) {
- if (sdoc.getName().equals(documentType)) {
- fillDocumentDBConfig(sdoc, builder);
- return;
- }
- }
- }
-
- private void fillDocumentDBConfig(DocumentDatabase sdoc, ProtonConfig.Documentdb.Builder ddbB) {
- ddbB.inputdoctypename(sdoc.getSchemaName())
- .configid(sdoc.getConfigId());
- }
-
@Override
public void deriveFromSchemas(DeployState deployState) {
for (SchemaInfo spec : schemas().values()) {
if (spec.fullSchema() instanceof DocumentOnlySchema) continue;
- DocumentDatabase db = new DocumentDatabase(this, spec.fullSchema().getName(),
- new DerivedConfiguration(spec.fullSchema(), deployState, false));
- documentDbs.add(db);
+ var db = new DocumentDatabase(this, spec.fullSchema().getName(),
+ new DerivedConfiguration(spec.fullSchema(), deployState, false));
+ add(db);
}
}
- @Override
- public List<DocumentDatabase> getDocumentDbs() {
- return documentDbs;
- }
-
- public boolean hasDocumentDB(String name) {
- for (DocumentDatabase db : documentDbs) {
- if (db.getName().equals(name)) {
- return true;
- }
- }
- return false;
- }
-
public void setSearchCoverage(SearchCoverage searchCoverage) {
this.searchCoverage = searchCoverage;
}
- @Override
- public void getConfig(DocumentdbInfoConfig.Builder builder) {
- for (DocumentDatabase db : documentDbs) {
- DocumentdbInfoConfig.Documentdb.Builder docDb = new DocumentdbInfoConfig.Documentdb.Builder();
- docDb.name(db.getName());
- builder.documentdb(docDb);
- }
- }
-
- @Override
- public void getConfig(IndexInfoConfig.Builder builder) {
- new Join(documentDbs).getConfig(builder);
- }
-
- @Override
- public void getConfig(SchemaInfoConfig.Builder builder) {
- new Join(documentDbs).getConfig(builder);
- }
-
- @Override
- public void getConfig(IlscriptsConfig.Builder builder) {
- new Join(documentDbs).getConfig(builder);
- }
-
- public void getConfig(AttributesConfig.Builder builder) {
- new Join(documentDbs).getConfig(builder);
- }
-
- public void getConfig(RankProfilesConfig.Builder builder) {
- new Join(documentDbs).getConfig(builder);
- }
-
private static DistributionPolicy.Enum toDistributionPolicy(DispatchTuning.DispatchPolicy tuning) {
return switch (tuning) {
case ADAPTIVE: yield DistributionPolicy.ADAPTIVE;
@@ -207,44 +135,4 @@ public class IndexedSearchCluster extends SearchCluster implements
return "Indexing cluster '" + getClusterName() + "'";
}
- /**
- * Class used to retrieve combined configuration from multiple document databases.
- * It is not a direct {@link ConfigInstance.Producer} of those configs,
- * that is handled (by delegating to this) by the {@link IndexedSearchCluster}
- * which is the parent to this. This avoids building the config multiple times.
- */
- private record Join(List<DocumentDatabase> docDbs) {
-
- public void getConfig(IndexInfoConfig.Builder builder) {
- for (DocumentDatabase docDb : docDbs) {
- docDb.getConfig(builder);
- }
- }
-
- public void getConfig(SchemaInfoConfig.Builder builder) {
- for (DocumentDatabase docDb : docDbs) {
- docDb.getConfig(builder);
- }
- }
-
- public void getConfig(IlscriptsConfig.Builder builder) {
- for (DocumentDatabase docDb : docDbs) {
- docDb.getConfig(builder);
- }
- }
-
- public void getConfig(AttributesConfig.Builder builder) {
- for (DocumentDatabase docDb : docDbs) {
- docDb.getConfig(builder);
- }
- }
-
- public void getConfig(RankProfilesConfig.Builder builder) {
- for (DocumentDatabase docDb : docDbs) {
- docDb.getConfig(builder);
- }
- }
-
- }
-
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
index 2ab11e31f59..732b4ba0637 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
@@ -1,6 +1,7 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.search;
+import com.yahoo.config.ConfigInstance;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.search.config.SchemaInfoConfig;
import com.yahoo.schema.derived.SchemaInfo;
@@ -8,12 +9,14 @@ import com.yahoo.vespa.config.search.AttributesConfig;
import com.yahoo.vespa.config.search.RankProfilesConfig;
import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig;
import com.yahoo.search.config.IndexInfoConfig;
+import com.yahoo.vespa.config.search.core.ProtonConfig;
import com.yahoo.vespa.configdefinition.IlscriptsConfig;
import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
import java.util.Collections;
import java.util.LinkedHashMap;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -22,8 +25,7 @@ import java.util.Map;
*
* @author arnej27959
*/
-public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer>
- implements
+public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer> implements
DocumentdbInfoConfig.Producer,
IndexInfoConfig.Producer,
IlscriptsConfig.Producer,
@@ -34,6 +36,7 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
private Double queryTimeout;
private Double visibilityDelay = 0.0;
private final Map<String, SchemaInfo> schemas = new LinkedHashMap<>();
+ private final List<DocumentDatabase> documentDbs = new LinkedList<>();
public SearchCluster(TreeConfigProducer<?> parent, String clusterName, int index) {
super(parent, "cluster." + clusterName);
@@ -44,6 +47,18 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
public void add(SchemaInfo schema) {
schemas.put(schema.name(), schema);
}
+ public void add(DocumentDatabase db) {
+ documentDbs.add(db);
+ }
+
+ public boolean hasDocumentDB(String name) {
+ for (DocumentDatabase db : documentDbs) {
+ if (db.getName().equals(name)) {
+ return true;
+ }
+ }
+ return false;
+ }
/** Returns the schemas that should be active in this cluster. Note: These are added during processing. */
public Map<String, SchemaInfo> schemas() { return Collections.unmodifiableMap(schemas); }
@@ -56,7 +71,9 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
public abstract void deriveFromSchemas(DeployState deployState);
/** Returns the document databases contained in this cluster */
- public abstract List<DocumentDatabase> getDocumentDbs();
+ public List<DocumentDatabase> getDocumentDbs() {
+ return Collections.unmodifiableList(documentDbs);
+ }
public String getClusterName() { return clusterName; }
public final String getIndexingModeName() { return getIndexingMode().getName(); }
@@ -71,9 +88,50 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
public final void setClusterIndex(int index) { this.index = index; }
public final int getClusterIndex() { return index; }
- public abstract void getConfig(AttributesConfig.Builder builder);
+ public void fillDocumentDBConfig(String documentType, ProtonConfig.Documentdb.Builder builder) {
+ for (DocumentDatabase sdoc : documentDbs) {
+ if (sdoc.getName().equals(documentType)) {
+ fillDocumentDBConfig(sdoc, builder);
+ return;
+ }
+ }
+ }
+
+ protected void fillDocumentDBConfig(DocumentDatabase sdoc, ProtonConfig.Documentdb.Builder ddbB) {
+ ddbB.inputdoctypename(sdoc.getSchemaName())
+ .configid(sdoc.getConfigId());
+ }
+
+ @Override
+ public void getConfig(DocumentdbInfoConfig.Builder builder) {
+ for (DocumentDatabase db : documentDbs) {
+ DocumentdbInfoConfig.Documentdb.Builder docDb = new DocumentdbInfoConfig.Documentdb.Builder();
+ docDb.name(db.getName());
+ builder.documentdb(docDb);
+ }
+ }
+ @Override
+ public void getConfig(IndexInfoConfig.Builder builder) {
+ new Join(documentDbs).getConfig(builder);
+ }
- public abstract void getConfig(RankProfilesConfig.Builder builder);
+ @Override
+ public void getConfig(SchemaInfoConfig.Builder builder) {
+ new Join(documentDbs).getConfig(builder);
+ }
+
+ @Override
+ public void getConfig(IlscriptsConfig.Builder builder) {
+ new Join(documentDbs).getConfig(builder);
+ }
+
+ public void getConfig(AttributesConfig.Builder builder) {
+ new Join(documentDbs).getConfig(builder);
+ }
+
+ public void getConfig(RankProfilesConfig.Builder builder) {
+ new Join(documentDbs).getConfig(builder);
+ }
@Override
public String toString() { return "search-capable cluster '" + clusterName + "'"; }
@@ -96,4 +154,44 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
}
}
+ /**
+ * Class used to retrieve combined configuration from multiple document databases.
+ * It is not a direct {@link ConfigInstance.Producer} of those configs,
+ * that is handled (by delegating to this) by the {@link IndexedSearchCluster}
+ * which is the parent to this. This avoids building the config multiple times.
+ */
+ private record Join(List<DocumentDatabase> docDbs) {
+
+ public void getConfig(IndexInfoConfig.Builder builder) {
+ for (DocumentDatabase docDb : docDbs) {
+ docDb.getConfig(builder);
+ }
+ }
+
+ public void getConfig(SchemaInfoConfig.Builder builder) {
+ for (DocumentDatabase docDb : docDbs) {
+ docDb.getConfig(builder);
+ }
+ }
+
+ public void getConfig(IlscriptsConfig.Builder builder) {
+ for (DocumentDatabase docDb : docDbs) {
+ docDb.getConfig(builder);
+ }
+ }
+
+ public void getConfig(AttributesConfig.Builder builder) {
+ for (DocumentDatabase docDb : docDbs) {
+ docDb.getConfig(builder);
+ }
+ }
+
+ public void getConfig(RankProfilesConfig.Builder builder) {
+ for (DocumentDatabase docDb : docDbs) {
+ docDb.getConfig(builder);
+ }
+ }
+
+ }
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java
index 90f74af868b..b4e09c59079 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java
@@ -4,23 +4,19 @@ package com.yahoo.vespa.model.search;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AnyConfigProducer;
import com.yahoo.config.model.producer.TreeConfigProducer;
-import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig;
import com.yahoo.schema.Schema;
import com.yahoo.schema.derived.AttributeFields;
import com.yahoo.schema.derived.DerivedConfiguration;
-import com.yahoo.search.config.IndexInfoConfig;
-import com.yahoo.search.config.SchemaInfoConfig;
import com.yahoo.vespa.config.search.AttributesConfig;
import com.yahoo.vespa.config.search.RankProfilesConfig;
import com.yahoo.vespa.config.search.SummaryConfig;
import com.yahoo.vespa.config.search.core.OnnxModelsConfig;
+import com.yahoo.vespa.config.search.core.ProtonConfig;
import com.yahoo.vespa.config.search.core.RankingConstantsConfig;
import com.yahoo.vespa.config.search.core.RankingExpressionsConfig;
+import com.yahoo.vespa.config.search.summary.JuniperrcConfig;
import com.yahoo.vespa.config.search.vsm.VsmfieldsConfig;
import com.yahoo.vespa.config.search.vsm.VsmsummaryConfig;
-import com.yahoo.vespa.configdefinition.IlscriptsConfig;
-
-import java.util.List;
/**
* A search cluster of type streaming.
@@ -29,49 +25,35 @@ import java.util.List;
* @author vegardh
*/
public class StreamingSearchCluster extends SearchCluster implements
+ AttributesConfig.Producer,
RankProfilesConfig.Producer,
RankingConstantsConfig.Producer,
RankingExpressionsConfig.Producer,
OnnxModelsConfig.Producer,
+ JuniperrcConfig.Producer,
+ SummaryConfig.Producer,
VsmsummaryConfig.Producer,
- VsmfieldsConfig.Producer,
- SummaryConfig.Producer
+ VsmfieldsConfig.Producer
{
-
private final String storageRouteSpec;
private final AttributesProducer attributesConfig;
private final String docTypeName;
- private DerivedConfiguration derivedConfig = null;
- private DocumentDatabase derivedDb = null;
-
- public StreamingSearchCluster(TreeConfigProducer<AnyConfigProducer> parent,
- String clusterName,
- int index,
- String docTypeName,
- String storageRouteSpec) {
+
+ public StreamingSearchCluster(TreeConfigProducer<AnyConfigProducer> parent, String clusterName, int index,
+ String docTypeName, String storageRouteSpec) {
super(parent, clusterName, index);
attributesConfig = new AttributesProducer(parent, docTypeName);
this.docTypeName = docTypeName;
this.storageRouteSpec = storageRouteSpec;
}
- public final String getDocumentDBConfigId() {
- return attributesConfig.getConfigId();
- }
@Override
protected IndexingMode getIndexingMode() { return IndexingMode.STREAMING; }
- public final String getStorageRouteSpec() { return storageRouteSpec; }
+ public final String getStorageRouteSpec() { return storageRouteSpec; }
public String getDocTypeName() { return docTypeName; }
- public DerivedConfiguration derived() { return derivedConfig; }
-
- @Override
- public void getConfig(DocumentdbInfoConfig.Builder builder) {
- DocumentdbInfoConfig.Documentdb.Builder docDb = new DocumentdbInfoConfig.Documentdb.Builder();
- docDb.name(derivedConfig.getSchema().getName());
- builder.documentdb(docDb);
- }
+ public DerivedConfiguration derived() { return db().getDerivedConfiguration(); }
@Override
public void deriveFromSchemas(DeployState deployState) {
@@ -82,64 +64,51 @@ public class StreamingSearchCluster extends SearchCluster implements
if ( ! schema.getName().equals(docTypeName))
throw new IllegalArgumentException("Document type name '" + docTypeName +
"' must be the same as the schema name '" + schema.getName() + "'");
- this.derivedConfig = new DerivedConfiguration(schema, deployState, true);
- this.derivedDb = new DocumentDatabase(this, docTypeName, this.derivedConfig);
+ add(new DocumentDatabase(this, docTypeName, new DerivedConfiguration(schema, deployState, true)));
}
- @Override
- public List<DocumentDatabase> getDocumentDbs() {
- if (derivedDb == null) {
- throw new IllegalArgumentException("missing derivedConfig");
- }
- return List.of(derivedDb);
+ protected void fillDocumentDBConfig(DocumentDatabase sdoc, ProtonConfig.Documentdb.Builder ddbB) {
+ super.fillDocumentDBConfig(sdoc, ddbB);
+ ddbB.configid(attributesConfig.getConfigId()); // Temporary until fully cleaned up
}
- @Override
- public void getConfig(IndexInfoConfig.Builder builder) {
- derivedConfig.getIndexInfo().getConfig(builder);
+ private DocumentDatabase db() {
+ return getDocumentDbs().get(0);
}
@Override
- public void getConfig(SchemaInfoConfig.Builder builder) {
- derivedConfig.getSchemaInfo().getConfig(builder);
+ public void getConfig(SummaryConfig.Builder builder) {
+ db().getConfig(builder);
}
@Override
- public void getConfig(IlscriptsConfig.Builder builder) {
- derivedConfig.getIndexingScript().getConfig(builder);
- }
-
- public void getConfig(AttributesConfig.Builder builder) {
- derivedConfig.getConfig(builder);
+ public void getConfig(OnnxModelsConfig.Builder builder) {
+ db().getConfig(builder);
}
@Override
- public void getConfig(RankProfilesConfig.Builder builder) {
- derivedConfig.getRankProfileList().getConfig(builder);
+ public void getConfig(RankingConstantsConfig.Builder builder) {
+ db().getConfig(builder);
}
@Override
- public void getConfig(RankingConstantsConfig.Builder builder) { derivedConfig.getRankProfileList().getConfig(builder); }
-
- @Override
- public void getConfig(RankingExpressionsConfig.Builder builder) { derivedConfig.getRankProfileList().getConfig(builder); }
-
- @Override
- public void getConfig(OnnxModelsConfig.Builder builder) { derivedConfig.getRankProfileList().getConfig(builder); }
+ public void getConfig(RankingExpressionsConfig.Builder builder) {
+ db().getConfig(builder);
+ }
@Override
- public void getConfig(VsmsummaryConfig.Builder builder) {
- derivedConfig.getVsmSummary().getConfig(builder);
+ public void getConfig(JuniperrcConfig.Builder builder) {
+ db().getConfig(builder);
}
-
+
@Override
public void getConfig(VsmfieldsConfig.Builder builder) {
- derivedConfig.getVsmFields().getConfig(builder);
+ db().getConfig(builder);
}
-
+
@Override
- public void getConfig(SummaryConfig.Builder builder) {
- derivedConfig.getSummaries().getConfig(builder);
+ public void getConfig(VsmsummaryConfig.Builder builder) {
+ db().getConfig(builder);
}
private class AttributesProducer extends AnyConfigProducer implements AttributesConfig.Producer {
@@ -150,7 +119,7 @@ public class StreamingSearchCluster extends SearchCluster implements
@Override
public void getConfig(AttributesConfig.Builder builder) {
- derivedConfig.getConfig(builder, AttributeFields.FieldSet.FAST_ACCESS);
+ derived().getConfig(builder, AttributeFields.FieldSet.FAST_ACCESS);
}
}