summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-05-13 08:51:25 +0200
committerJon Bratseth <bratseth@gmail.com>2022-05-13 08:51:25 +0200
commitefc33e32e7a3afe91d50b963a2adce00b799c223 (patch)
tree1676ce2c8614dd9aac72444d0eb1fdc2ed1f1ae5
parentfa7c1ee9d68b01d4501f08b9ea937f066fb3e45e (diff)
Derive constants from global profiles
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java7
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java4
-rw-r--r--config-model/src/test/derived/schemainheritance/parent.sd11
-rw-r--r--config-model/src/test/derived/schemainheritance/ranking-constants.cfg6
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java1
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;
}