diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-05-13 08:51:25 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-05-13 08:51:25 +0200 |
commit | efc33e32e7a3afe91d50b963a2adce00b799c223 (patch) | |
tree | 1676ce2c8614dd9aac72444d0eb1fdc2ed1f1ae5 | |
parent | fa7c1ee9d68b01d4501f08b9ea937f066fb3e45e (diff) |
Derive constants from global profiles
5 files changed, 24 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java index 31b6d4c3201..50029613b2e 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java @@ -12,6 +12,7 @@ import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Schema; import com.yahoo.searchdefinition.derived.validation.Validation; import com.yahoo.vespa.config.search.AttributesConfig; +import com.yahoo.vespa.config.search.core.RankingConstantsConfig; import com.yahoo.vespa.model.container.search.QueryProfiles; import java.io.IOException; @@ -127,6 +128,12 @@ public class DerivedConfiguration implements AttributesConfig.Producer { exportCfg(new QueryProfiles(queryProfileRegistry, (level, message) -> {}).getConfig(), toDirectory + "/" + "query-profiles.cfg"); } + public void exportConstants(String toDirectory) throws IOException { + RankingConstantsConfig.Builder b = new RankingConstantsConfig.Builder(); + rankProfileList.getConfig(b); + exportCfg(b.build(), toDirectory + "/" + "ranking-constants.cfg"); + } + private static void exportCfg(ConfigInstance instance, String fileName) throws IOException { Writer writer = null; try { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java index 745d9cfeb96..f9c1f76a35d 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java @@ -74,9 +74,11 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ Map<Reference, RankProfile.Constant> constantsFromSchema, DeployState deployState) { Map<Reference, RankProfile.Constant> allFileConstants = new HashMap<>(); - addFileConstants(constantsFromSchema.values(), allFileConstants, schema != null ? schema.toString() : "global"); + addFileConstants(constantsFromSchema.values(), allFileConstants, schema != null ? schema.toString() : "[global]"); for (var profile : deployState.rankProfileRegistry().rankProfilesOf(schema)) addFileConstants(profile.getConstants().values(), allFileConstants, profile.toString()); + for (var profile : deployState.rankProfileRegistry().rankProfilesOf(null)) + addFileConstants(profile.getConstants().values(), allFileConstants, profile.toString()); return new FileDistributedConstants(deployState.getFileRegistry(), allFileConstants.values()); } diff --git a/config-model/src/test/derived/schemainheritance/parent.sd b/config-model/src/test/derived/schemainheritance/parent.sd index 51b11dad444..4d247a570a6 100644 --- a/config-model/src/test/derived/schemainheritance/parent.sd +++ b/config-model/src/test/derived/schemainheritance/parent.sd @@ -23,11 +23,14 @@ schema parent { indexing: input pf1 | lowercase | index | attribute | summary } rank-profile parent_profile { + constants { + parent_constant tensor<float>(x{},y{}): file:constants/my_constant_tensor_file.json + } } - constant parent_constant { - file: constants/my_constant_tensor_file.json - type: tensor<float>(x{},y{}) - } +# constant parent_constant { (old syntax equivalent to the above) +# file: constants/my_constant_tensor_file.json +# type: tensor<float>(x{},y{}) +# } onnx-model parent_model { file: small_constants_and_functions.onnx } diff --git a/config-model/src/test/derived/schemainheritance/ranking-constants.cfg b/config-model/src/test/derived/schemainheritance/ranking-constants.cfg new file mode 100644 index 00000000000..9b34e3f1837 --- /dev/null +++ b/config-model/src/test/derived/schemainheritance/ranking-constants.cfg @@ -0,0 +1,6 @@ +constant[].name "parent_constant" +constant[].fileref "constants/my_constant_tensor_file.json" +constant[].type "tensor<float>(x{},y{})" +constant[].name "child_constant" +constant[].fileref "constants/my_constant_tensor_file.json" +constant[].type "tensor<float>(x{},y{})" diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java index 992d770d851..615f6be5b4f 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java @@ -71,6 +71,7 @@ public abstract class AbstractExportingTestCase extends AbstractSchemaTestCase { .produce(builder.getModel(), new DocumentmanagerConfig.Builder()), path); DerivedConfiguration.exportDocuments(new DocumentTypes().produce(builder.getModel(), new DocumenttypesConfig.Builder()), path); DerivedConfiguration.exportQueryProfiles(builder.getQueryProfileRegistry(), path); + config.exportConstants(path); return config; } |