diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-04-27 13:16:11 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-04-27 13:16:11 +0200 |
commit | 1c38c6e29a59eff80396f4a367245d6694f87168 (patch) | |
tree | 65f613f5b2220c3adbd67a6c741236a697272d84 /config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java | |
parent | 9eddf6d78a3544843842f34a7b711a5565e7fd03 (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.java | 37 |
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); |