aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-04-27 13:16:11 +0200
committerJon Bratseth <bratseth@gmail.com>2022-04-27 13:16:11 +0200
commit1c38c6e29a59eff80396f4a367245d6694f87168 (patch)
tree65f613f5b2220c3adbd67a6c741236a697272d84 /config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
parent9eddf6d78a3544843842f34a7b711a5565e7fd03 (diff)
Create schema-info for global schema info
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java37
1 files changed, 35 insertions, 2 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
index 2788b29ac0a..97468fefa58 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
@@ -2,6 +2,8 @@
package com.yahoo.vespa.model.container.search;
import com.yahoo.container.QrSearchersConfig;
+import com.yahoo.container.search.SchemaInfoConfig;
+import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig;
import com.yahoo.prelude.semantics.SemanticRulesConfig;
import com.yahoo.search.config.IndexInfoConfig;
import com.yahoo.search.pagetemplates.PageTemplatesConfig;
@@ -35,11 +37,12 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains>
QrSearchersConfig.Producer,
QueryProfilesConfig.Producer,
SemanticRulesConfig.Producer,
- PageTemplatesConfig.Producer {
+ PageTemplatesConfig.Producer,
+ SchemaInfoConfig.Producer {
public static final String QUERY_PROFILE_REGISTRY_CLASS = CompiledQueryProfileRegistry.class.getName();
- private ApplicationContainerCluster owningCluster;
+ private final ApplicationContainerCluster owningCluster;
private final List<SearchCluster> searchClusters = new LinkedList<>();
private final Options options;
@@ -119,6 +122,36 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains>
}
@Override
+ public void getConfig(SchemaInfoConfig.Builder builder) {
+ Map<String, SearchCluster.SchemaInfo> allSchemas = new LinkedHashMap<>();
+ for (SearchCluster sc : searchClusters)
+ allSchemas.putAll(sc.schemas());
+
+ for (var schemaEntry : allSchemas.entrySet()) {
+ var schemaBuilder = new SchemaInfoConfig.Schema.Builder();
+ schemaBuilder.name(schemaEntry.getKey());
+ addRankProfilesConfig(schemaEntry.getValue(), schemaBuilder);
+ builder.schema(schemaBuilder);
+ }
+ }
+
+ protected void addRankProfilesConfig(SearchCluster.SchemaInfo schema, SchemaInfoConfig.Schema.Builder schemaBuilder) {
+ for (SearchCluster.RankProfileInfo rankProfile : schema.rankProfiles().values()) {
+ var rankProfileConfig = new SchemaInfoConfig.Schema.Rankprofile.Builder();
+ rankProfileConfig.name(rankProfile.name());
+ rankProfileConfig.hasSummaryFeatures(rankProfile.hasSummaryFeatures());
+ rankProfileConfig.hasRankFeatures(rankProfile.hasRankFeatures());
+ for (var input : rankProfile.inputs().entrySet()) {
+ var inputConfig = new SchemaInfoConfig.Schema.Rankprofile.Input.Builder();
+ inputConfig.name(input.getKey().toString());
+ inputConfig.type(input.getValue().toString());
+ rankProfileConfig.input(inputConfig);
+ }
+ schemaBuilder.rankprofile(rankProfileConfig);
+ }
+ }
+
+ @Override
public void getConfig(QrSearchersConfig.Builder builder) {
for (int i = 0; i < searchClusters.size(); i++) {
SearchCluster sys = findClusterWithId(searchClusters, i);