summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java1
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java55
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/Search.java13
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/DerivedConfiguration.java3
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java29
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java13
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java20
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java88
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java18
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/DocumentDatabase.java7
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java1
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClient.java1
14 files changed, 77 insertions, 181 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java b/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java
index efd9ed5e88f..6ac73ad45a9 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/ImmutableSearch.java
@@ -28,7 +28,6 @@ public interface ImmutableSearch {
Reader getRankingExpression(String fileName);
ApplicationPackage applicationPackage();
RankingConstants rankingConstants();
- RankExpressionFiles rankExpressionFiles();
OnnxModels onnxModels();
Stream<ImmutableSDField> allImportedFields();
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java
index 61fd2e3fb41..74a9ef25615 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankProfile.java
@@ -78,8 +78,6 @@ public class RankProfile implements Cloneable {
/** The ranking expression to be used for second phase */
private RankingExpression secondPhaseRanking = null;
- private Set<String> externalFileExpressions = new HashSet<>();
-
/** Number of hits to be reranked in second phase, -1 means use default */
private int rerankCount = -1;
@@ -165,10 +163,6 @@ public class RankProfile implements Cloneable {
return search != null ? search.rankingConstants() : model.rankingConstants();
}
- public RankExpressionFiles rankExpressionFiles() {
- return search != null ? search.rankExpressionFiles() : model.rankExpressionFiles();
- }
-
public Map<String, OnnxModel> onnxModels() {
return search != null ? search.onnxModels().asMap() : Collections.emptyMap();
}
@@ -374,41 +368,9 @@ public class RankProfile implements Cloneable {
this.firstPhaseRanking = rankingExpression;
}
- public String getFirstPhaseFile() {
- String name = FIRST_PHASE;
- if (externalFileExpressions.contains(name)) {
- return rankExpressionFiles().get(name).getFileName();
- }
- if ((firstPhaseRanking == null) && (getInherited() != null)) {
- return getInherited().getFirstPhaseFile();
- }
- return null;
- }
-
- public String getSecondPhaseFile() {
- String name = SECOND_PHASE;
- if (externalFileExpressions.contains(name)) {
- return rankExpressionFiles().get(name).getFileName();
- }
- if ((secondPhaseRanking == null) && (getInherited() != null)) {
- return getInherited().getSecondPhaseFile();
- }
- return null;
- }
-
- public String getExpressionFile(String name) {
- if (externalFileExpressions.contains(name)) {
- return rankExpressionFiles().get(name).getFileName();
- }
- if (getInherited() != null) {
- return getInherited().getExpressionFile(name);
- }
- return null;
- }
-
public void setFirstPhaseRanking(String expression) {
try {
- this.firstPhaseRanking = parseRankingExpression(FIRST_PHASE, expression);
+ this.firstPhaseRanking = parseRankingExpression("firstphase", expression);
}
catch (ParseException e) {
throw new IllegalArgumentException("Illegal first phase ranking function", e);
@@ -701,25 +663,18 @@ public class RankProfile implements Cloneable {
}
}
- private static String extractFileName(String expression) {
+ private Reader openRankingExpressionReader(String expName, String expression) {
+ if ( ! expression.startsWith("file:")) return new StringReader(expression);
+
String fileName = expression.substring("file:".length()).trim();
if ( ! fileName.endsWith(ApplicationPackage.RANKEXPRESSION_NAME_SUFFIX))
fileName = fileName + ApplicationPackage.RANKEXPRESSION_NAME_SUFFIX;
- return fileName;
- }
-
- private Reader openRankingExpressionReader(String expName, String expression) {
- if ( ! expression.startsWith("file:")) return new StringReader(expression);
-
- String fileName = extractFileName(expression);
File file = new File(fileName);
- if ( ! file.isAbsolute() && file.getPath().contains("/")) // See ticket 4102122
+ if ( ! (file.isAbsolute()) && file.getPath().contains("/")) // See ticket 4102122
throw new IllegalArgumentException("In " + getName() +", " + expName + ", ranking references file '" + file +
"' in subdirectory, which is not supported.");
- rankExpressionFiles().add(new RankExpressionFile(expName, fileName));
- externalFileExpressions.add(expName);
return search.getRankingExpression(fileName);
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java
index a90cc7c9450..9b7434dccab 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java
@@ -15,7 +15,6 @@ import com.yahoo.searchdefinition.document.TemporaryImportedFields;
import com.yahoo.searchdefinition.document.annotation.SDAnnotationType;
import com.yahoo.vespa.documentmodel.DocumentSummary;
import com.yahoo.vespa.documentmodel.SummaryField;
-import com.yahoo.vespa.model.AbstractService;
import java.io.Reader;
import java.util.ArrayList;
@@ -79,9 +78,6 @@ public class Search implements ImmutableSearch {
/** The explicitly defined summaries of this search definition. _Must_ preserve order. */
private final Map<String, DocumentSummary> summaries = new LinkedHashMap<>();
- /** External rank expression files of this */
- private final RankExpressionFiles rankExpressionFiles = new RankExpressionFiles();
-
/** Ranking constants of this */
private final RankingConstants rankingConstants = new RankingConstants();
@@ -176,20 +172,11 @@ public class Search implements ImmutableSearch {
}
@Override
- public RankExpressionFiles rankExpressionFiles() { return rankExpressionFiles; }
-
- @Override
public RankingConstants rankingConstants() { return rankingConstants; }
@Override
public OnnxModels onnxModels() { return onnxModels; }
- public void sendTo(Collection<? extends AbstractService> services) {
- rankingConstants.sendTo(services);
- rankExpressionFiles.sendTo(services);
- onnxModels.sendTo(services);
- }
-
public Optional<TemporaryImportedFields> temporaryImportedFields() {
return temporaryImportedFields;
}
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 52d99c523ea..4d6ce783947 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
@@ -85,8 +85,7 @@ public class DerivedConfiguration {
summaries = new Summaries(search, deployLogger);
summaryMap = new SummaryMap(search);
juniperrc = new Juniperrc(search);
- rankProfileList = new RankProfileList(search, search.rankingConstants(), search.rankExpressionFiles(), attributeFields,
- rankProfileRegistry, queryProfiles, importedModels, deployProperties);
+ rankProfileList = new RankProfileList(search, search.rankingConstants(), attributeFields, rankProfileRegistry, queryProfiles, importedModels, deployProperties);
indexingScript = new IndexingScript(search);
indexInfo = new IndexInfo(search);
indexSchema = new IndexSchema(search);
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 c0a4117de3e..5337d58fb82 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
@@ -6,8 +6,6 @@ import com.yahoo.config.model.api.ModelContext;
import com.yahoo.search.query.profile.QueryProfileRegistry;
import com.yahoo.searchdefinition.OnnxModel;
import com.yahoo.searchdefinition.OnnxModels;
-import com.yahoo.searchdefinition.RankExpressionFile;
-import com.yahoo.searchdefinition.RankExpressionFiles;
import com.yahoo.searchdefinition.RankProfileRegistry;
import com.yahoo.searchdefinition.RankingConstant;
import com.yahoo.searchdefinition.RankingConstants;
@@ -16,7 +14,6 @@ import com.yahoo.searchdefinition.RankProfile;
import com.yahoo.searchdefinition.Search;
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.model.AbstractService;
import java.util.Collection;
@@ -28,21 +25,21 @@ import java.util.logging.Logger;
*
* @author bratseth
*/
-public class RankProfileList extends Derived implements RankProfilesConfig.Producer {
+public class RankProfileList extends Derived implements RankProfilesConfig.Producer,
+ RankingConstantsConfig.Producer,
+ OnnxModelsConfig.Producer {
private static final Logger log = Logger.getLogger(RankProfileList.class.getName());
private final Map<String, RawRankProfile> rankProfiles = new java.util.LinkedHashMap<>();
private final RankingConstants rankingConstants;
- private final RankExpressionFiles rankExpressionFiles;
private final OnnxModels onnxModels;
public static RankProfileList empty = new RankProfileList();
private RankProfileList() {
- rankingConstants = new RankingConstants();
- rankExpressionFiles = new RankExpressionFiles();
- onnxModels = new OnnxModels();
+ this.rankingConstants = new RankingConstants();
+ this.onnxModels = new OnnxModels();
}
/**
@@ -53,7 +50,6 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ
*/
public RankProfileList(Search search,
RankingConstants rankingConstants,
- RankExpressionFiles rankExpressionFiles,
AttributeFields attributeFields,
RankProfileRegistry rankProfileRegistry,
QueryProfileRegistry queryProfiles,
@@ -61,8 +57,7 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ
ModelContext.Properties deployProperties) {
setName(search == null ? "default" : search.getName());
this.rankingConstants = rankingConstants;
- this.rankExpressionFiles = rankExpressionFiles;
- onnxModels = search == null ? new OnnxModels() : search.onnxModels(); // as ONNX models come from parsing rank expressions
+ this.onnxModels = search == null ? new OnnxModels() : search.onnxModels(); // as ONNX models come from parsing rank expressions
deriveRankProfiles(rankProfileRegistry, queryProfiles, importedModels, search, attributeFields, deployProperties);
}
@@ -95,9 +90,11 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ
return rankProfiles.get(name);
}
- public void sendTo(Collection<? extends AbstractService> services) {
+ public void sendConstantsTo(Collection<? extends AbstractService> services) {
rankingConstants.sendTo(services);
- rankExpressionFiles.sendTo(services);
+ }
+
+ public void sendOnnxModelsTo(Collection<? extends AbstractService> services) {
onnxModels.sendTo(services);
}
@@ -111,10 +108,7 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ
}
}
- public void getConfig(RankingExpressionsConfig.Builder builder) {
- rankExpressionFiles.asMap().values().forEach((expr) -> builder.expression.add(new RankingExpressionsConfig.Expression.Builder().name(expr.getName()).fileref(expr.getFileReference())));
- }
-
+ @Override
public void getConfig(RankingConstantsConfig.Builder builder) {
for (RankingConstant constant : rankingConstants.asMap().values()) {
if ("".equals(constant.getFileReference()))
@@ -127,6 +121,7 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ
}
}
+ @Override
public void getConfig(OnnxModelsConfig.Builder builder) {
for (OnnxModel model : onnxModels.asMap().values()) {
if ("".equals(model.getFileReference()))
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java
index a829989a281..4aa0a9daaca 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java
@@ -232,11 +232,12 @@ public class RawRankProfile implements RankProfilesConfig.Producer {
SerializationContext context = new SerializationContext(functionExpressions, null, functionProperties);
for (Map.Entry<String, RankProfile.RankingExpressionFunction> e : functions.entrySet()) {
String propertyName = RankingExpression.propertyName(e.getKey());
- if (context.serializedFunctions().containsKey(propertyName)) continue;
-
+ if (context.serializedFunctions().containsKey(propertyName)) {
+ continue;
+ }
String expressionString = e.getValue().function().getBody().getRoot().toString(new StringBuilder(), context, null, null).toString();
- context.addFunctionSerialization(propertyName, expressionString);
+ context.addFunctionSerialization(RankingExpression.propertyName(e.getKey()), expressionString);
for (Map.Entry<String, TensorType> argumentType : e.getValue().function().argumentTypes().entrySet())
context.addArgumentTypeSerialization(e.getKey(), argumentType.getKey(), argumentType.getValue());
if (e.getValue().function().returnType().isPresent())
@@ -352,8 +353,8 @@ public class RawRankProfile implements RankProfilesConfig.Producer {
properties.add(new Pair<>(property.getName(), property.getValue()));
}
}
- properties.addAll(deriveRankingPhaseRankProperties(firstPhaseRanking, rankProfile.getFirstPhaseFile(), RankProfile.FIRST_PHASE));
- properties.addAll(deriveRankingPhaseRankProperties(secondPhaseRanking, rankProfile.getSecondPhaseFile(), RankProfile.SECOND_PHASE));
+ properties.addAll(deriveRankingPhaseRankProperties(firstPhaseRanking, "firstphase"));
+ properties.addAll(deriveRankingPhaseRankProperties(secondPhaseRanking, "secondphase"));
for (FieldRankSettings settings : fieldRankSettings.values()) {
properties.addAll(settings.deriveRankProperties());
}
@@ -420,7 +421,7 @@ public class RawRankProfile implements RankProfilesConfig.Producer {
return properties;
}
- private List<Pair<String, String>> deriveRankingPhaseRankProperties(RankingExpression expression, String fileName, String phase) {
+ private List<Pair<String, String>> deriveRankingPhaseRankProperties(RankingExpression expression, String phase) {
List<Pair<String, String>> properties = new ArrayList<>();
if (expression == null) return properties;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
index 85ff134b385..d90a6614501 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
@@ -30,7 +30,6 @@ import com.yahoo.config.model.producer.UserConfigRepo;
import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.container.QrConfig;
-import com.yahoo.searchdefinition.RankExpressionFiles;
import com.yahoo.searchdefinition.RankProfile;
import com.yahoo.searchdefinition.RankProfileRegistry;
import com.yahoo.searchdefinition.RankingConstants;
@@ -126,9 +125,6 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
/** The global ranking constants of this model */
private final RankingConstants rankingConstants = new RankingConstants();
- /** External rank expression files of this */
- private final RankExpressionFiles rankExpressionFiles = new RankExpressionFiles();
-
/** The validation overrides of this. This is never null. */
private final ValidationOverrides validationOverrides;
@@ -181,14 +177,12 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
createGlobalRankProfiles(deployState.getDeployLogger(), deployState.getImportedModels(),
deployState.rankProfileRegistry(), deployState.getQueryProfiles());
- rankProfileList = new RankProfileList(null, // null search -> global
- rankingConstants,
- rankExpressionFiles,
- AttributeFields.empty,
- deployState.rankProfileRegistry(),
- deployState.getQueryProfiles().getRegistry(),
- deployState.getImportedModels(),
- deployState.getProperties());
+ this.rankProfileList = new RankProfileList(null, // null search -> global
+ rankingConstants, AttributeFields.empty,
+ deployState.rankProfileRegistry(),
+ deployState.getQueryProfiles().getRegistry(),
+ deployState.getImportedModels(),
+ deployState.getProperties());
HostSystem hostSystem = root.hostSystem();
if (complete) { // create a completed, frozen model
@@ -262,8 +256,6 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
/** Returns the global ranking constants of this */
public RankingConstants rankingConstants() { return rankingConstants; }
- public RankExpressionFiles rankExpressionFiles() { return rankExpressionFiles; }
-
/** Creates a mutable model with no services instantiated */
public static VespaModel createIncomplete(DeployState deployState) throws IOException, SAXException {
return new VespaModel(new NullConfigModelRegistry(), deployState, false,
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java
index d87c6596fa4..7049213ddab 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/RankSetupValidator.java
@@ -8,8 +8,6 @@ import com.yahoo.log.InvalidLogFormatException;
import com.yahoo.log.LogMessage;
import com.yahoo.path.Path;
import com.yahoo.searchdefinition.OnnxModel;
-import com.yahoo.searchdefinition.RankExpressionFile;
-import com.yahoo.vespa.config.search.core.RankingExpressionsConfig;
import com.yahoo.vespa.defaults.Defaults;
import com.yahoo.yolean.Exceptions;
import com.yahoo.system.ProcessExecuter;
@@ -40,6 +38,7 @@ import java.util.logging.Logger;
import java.util.logging.Level;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
* Validate rank setup for all search clusters (rank-profiles, index-schema, attributes configs), validating done
@@ -117,61 +116,50 @@ public class RankSetupValidator extends Validator {
}
private void writeConfigs(String dir, AbstractConfigProducer<?> producer) throws IOException {
- RankProfilesConfig.Builder rpcb = new RankProfilesConfig.Builder();
- ((RankProfilesConfig.Producer) producer).getConfig(rpcb);
- RankProfilesConfig rpc = new RankProfilesConfig(rpcb);
- writeConfig(dir, RankProfilesConfig.getDefName() + ".cfg", rpc);
-
- IndexschemaConfig.Builder iscb = new IndexschemaConfig.Builder();
- ((IndexschemaConfig.Producer) producer).getConfig(iscb);
- IndexschemaConfig isc = new IndexschemaConfig(iscb);
- writeConfig(dir, IndexschemaConfig.getDefName() + ".cfg", isc);
-
- AttributesConfig.Builder acb = new AttributesConfig.Builder();
- ((AttributesConfig.Producer) producer).getConfig(acb);
- AttributesConfig ac = new AttributesConfig(acb);
- writeConfig(dir, AttributesConfig.getDefName() + ".cfg", ac);
-
- RankingConstantsConfig.Builder rccb = new RankingConstantsConfig.Builder();
- ((RankingConstantsConfig.Producer) producer).getConfig(rccb);
- RankingConstantsConfig rcc = new RankingConstantsConfig(rccb);
- writeConfig(dir, RankingConstantsConfig.getDefName() + ".cfg", rcc);
-
- RankingExpressionsConfig.Builder recb = new RankingExpressionsConfig.Builder();
- ((RankingExpressionsConfig.Producer) producer).getConfig(recb);
- RankingExpressionsConfig rec = new RankingExpressionsConfig(recb);
- writeConfig(dir, RankingExpressionsConfig.getDefName() + ".cfg", rec);
-
- OnnxModelsConfig.Builder omcb = new OnnxModelsConfig.Builder();
- ((OnnxModelsConfig.Producer) producer).getConfig(omcb);
- OnnxModelsConfig omc = new OnnxModelsConfig(omcb);
- writeConfig(dir, OnnxModelsConfig.getDefName() + ".cfg", omc);
-
- ImportedFieldsConfig.Builder ifcb = new ImportedFieldsConfig.Builder();
- ((ImportedFieldsConfig.Producer) producer).getConfig(ifcb);
- ImportedFieldsConfig ifc = new ImportedFieldsConfig(ifcb);
- writeConfig(dir, ImportedFieldsConfig.getDefName() + ".cfg", ifc);
+ RankProfilesConfig.Builder rpcb = new RankProfilesConfig.Builder();
+ ((RankProfilesConfig.Producer) producer).getConfig(rpcb);
+ RankProfilesConfig rpc = new RankProfilesConfig(rpcb);
+ writeConfig(dir, RankProfilesConfig.getDefName() + ".cfg", rpc);
+
+ IndexschemaConfig.Builder iscb = new IndexschemaConfig.Builder();
+ ((IndexschemaConfig.Producer) producer).getConfig(iscb);
+ IndexschemaConfig isc = new IndexschemaConfig(iscb);
+ writeConfig(dir, IndexschemaConfig.getDefName() + ".cfg", isc);
+
+ AttributesConfig.Builder acb = new AttributesConfig.Builder();
+ ((AttributesConfig.Producer) producer).getConfig(acb);
+ AttributesConfig ac = new AttributesConfig(acb);
+ writeConfig(dir, AttributesConfig.getDefName() + ".cfg", ac);
+
+ RankingConstantsConfig.Builder rccb = new RankingConstantsConfig.Builder();
+ ((RankingConstantsConfig.Producer) producer).getConfig(rccb);
+ RankingConstantsConfig rcc = new RankingConstantsConfig(rccb);
+ writeConfig(dir, RankingConstantsConfig.getDefName() + ".cfg", rcc);
+
+ OnnxModelsConfig.Builder omcb = new OnnxModelsConfig.Builder();
+ ((OnnxModelsConfig.Producer) producer).getConfig(omcb);
+ OnnxModelsConfig omc = new OnnxModelsConfig(omcb);
+ writeConfig(dir, OnnxModelsConfig.getDefName() + ".cfg", omc);
+
+ ImportedFieldsConfig.Builder ifcb = new ImportedFieldsConfig.Builder();
+ ((ImportedFieldsConfig.Producer) producer).getConfig(ifcb);
+ ImportedFieldsConfig ifc = new ImportedFieldsConfig(ifcb);
+ writeConfig(dir, ImportedFieldsConfig.getDefName() + ".cfg", ifc);
}
private void writeExtraVerifyRanksetupConfig(String dir, DocumentDatabase db) throws IOException {
String configName = "verify-ranksetup.cfg";
String configContent = "";
- List<String> config = new ArrayList<>();
// Assist verify-ranksetup in finding the actual ONNX model files
- for (OnnxModel model : db.getDerivedConfiguration().getSearch().onnxModels().asMap().values()) {
- String modelPath = getFileRepositoryPath(model.getFilePath(), model.getFileReference());
- config.add(String.format("file[%d].ref \"%s\"", config.size() / 2, model.getFileReference()));
- config.add(String.format("file[%d].path \"%s\"", config.size() / 2, modelPath));
- }
-
- for (RankExpressionFile expr : db.getDerivedConfiguration().getSearch().rankExpressionFiles().asMap().values()) {
- String modelPath = getFileRepositoryPath(expr.getFilePath(), expr.getFileReference());
- config.add(String.format("file[%d].ref \"%s\"", config.size() / 2, expr.getFileReference()));
- config.add(String.format("file[%d].path \"%s\"", config.size() / 2, modelPath));
- }
-
- if ( ! config.isEmpty() ) {
+ Map<String, OnnxModel> models = db.getDerivedConfiguration().getSearch().onnxModels().asMap();
+ if (models.values().size() > 0) {
+ List<String> config = new ArrayList<>(models.values().size() * 2);
+ for (OnnxModel model : models.values()) {
+ String modelPath = getFileRepositoryPath(model.getFilePath(), model.getFileReference());
+ config.add(String.format("file[%d].ref \"%s\"", config.size() / 2, model.getFileReference()));
+ config.add(String.format("file[%d].path \"%s\"", config.size() / 2, modelPath));
+ }
configContent = StringUtilities.implodeMultiline(config);
}
IOUtils.writeFile(dir + configName, configContent, false);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
index 317ed0f66c7..4e78f44d0fe 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
@@ -25,7 +25,6 @@ import com.yahoo.search.config.QrStartConfig;
import com.yahoo.vespa.config.search.RankProfilesConfig;
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.model.admin.metricsproxy.MetricsProxyContainer;
import com.yahoo.vespa.model.container.component.BindingPattern;
import com.yahoo.vespa.model.container.component.Component;
@@ -59,7 +58,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
RankProfilesConfig.Producer,
RankingConstantsConfig.Producer,
OnnxModelsConfig.Producer,
- RankingExpressionsConfig.Producer,
ServletPathsConfig.Producer,
ContainerMbusConfig.Producer,
MetricsProxyApiConfig.Producer,
@@ -235,10 +233,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
if (modelEvaluation != null) modelEvaluation.getConfig(builder);
}
- public void getConfig(RankingExpressionsConfig.Builder builder) {
- if (modelEvaluation != null) modelEvaluation.getConfig(builder);
- }
-
@Override
public void getConfig(ContainerMbusConfig.Builder builder) {
if (mbusParams != null) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java
index 37bfb8821c3..510d2fe3d99 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java
@@ -7,7 +7,6 @@ import com.yahoo.searchdefinition.derived.RankProfileList;
import com.yahoo.vespa.config.search.RankProfilesConfig;
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.model.container.component.Handler;
import com.yahoo.vespa.model.container.component.SystemBindingPattern;
@@ -19,12 +18,10 @@ import java.util.Objects;
*
* @author bratseth
*/
-
-public class ContainerModelEvaluation implements
- RankProfilesConfig.Producer,
- RankingConstantsConfig.Producer,
- OnnxModelsConfig.Producer,
- RankingExpressionsConfig.Producer {
+public class ContainerModelEvaluation implements RankProfilesConfig.Producer,
+ RankingConstantsConfig.Producer,
+ OnnxModelsConfig.Producer
+{
private final static String BUNDLE_NAME = "model-evaluation";
private final static String EVALUATOR_NAME = ModelsEvaluator.class.getName();
@@ -41,7 +38,8 @@ public class ContainerModelEvaluation implements
}
public void prepare(List<ApplicationContainer> containers) {
- rankProfileList.sendTo(containers);
+ rankProfileList.sendConstantsTo(containers);
+ rankProfileList.sendOnnxModelsTo(containers);
}
@Override
@@ -59,10 +57,6 @@ public class ContainerModelEvaluation implements
rankProfileList.getConfig(builder);
}
- public void getConfig(RankingExpressionsConfig.Builder builder) {
- rankProfileList.getConfig(builder);
- }
-
public static Handler<?> getHandler() {
Handler<?> handler = new Handler<>(new ComponentModel(REST_HANDLER_NAME, null, BUNDLE_NAME));
handler.addServerBindings(
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java
index 3ca5b9e3a0a..705c48d1c9b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java
@@ -39,7 +39,8 @@ public abstract class AbstractSearchCluster extends AbstractConfigProducer<Abstr
public void prepareToDistributeFiles(List<SearchNode> backends) {
for (SchemaSpec sds : localSDS) {
- sds.getSearchDefinition().getSearch().sendTo(backends);
+ sds.getSearchDefinition().getSearch().rankingConstants().sendTo(backends);
+ sds.getSearchDefinition().getSearch().onnxModels().sendTo(backends);
}
}
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 9f0ff7db9f8..8d4c1675bbf 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
@@ -12,7 +12,6 @@ import com.yahoo.vespa.config.search.SummaryConfig;
import com.yahoo.vespa.config.search.SummarymapConfig;
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.configdefinition.IlscriptsConfig;
@@ -27,7 +26,6 @@ public class DocumentDatabase extends AbstractConfigProducer<DocumentDatabase> i
AttributesConfig.Producer,
RankProfilesConfig.Producer,
RankingConstantsConfig.Producer,
- RankingExpressionsConfig.Producer,
OnnxModelsConfig.Producer,
IndexschemaConfig.Producer,
JuniperrcConfig.Producer,
@@ -77,11 +75,6 @@ public class DocumentDatabase extends AbstractConfigProducer<DocumentDatabase> i
}
@Override
- public void getConfig(RankingExpressionsConfig.Builder builder) {
- derivedCfg.getRankProfileList().getConfig(builder);
- }
-
- @Override
public void getConfig(RankingConstantsConfig.Builder builder) {
derivedCfg.getRankProfileList().getConfig(builder);
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java b/config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java
index 9f18cfb4bd9..e32ad274325 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/ml/ModelEvaluationTest.java
@@ -98,7 +98,6 @@ public class ModelEvaluationTest {
RankingConstantsConfig constantsConfig = new RankingConstantsConfig(cb);
RankingExpressionsConfig.Builder ce = new RankingExpressionsConfig.Builder();
- cluster.getConfig(ce);
RankingExpressionsConfig expressionsConfig = ce.build();
OnnxModelsConfig.Builder ob = new OnnxModelsConfig.Builder();
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClient.java
index 45384f78d4c..858a2c84e02 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClient.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ZooKeeperClient.java
@@ -120,7 +120,6 @@ public class ZooKeeperClient {
if (sds.isEmpty()) return;
// TODO: Change to SCHEMAS_DIR after March 2020
- // TODO: When it does also check RankExpressionFile.sendTo
Path zkPath = getZooKeeperAppPath(ConfigCurator.USERAPP_ZK_SUBPATH).append(ApplicationPackage.SEARCH_DEFINITIONS_DIR);
configCurator.createNode(zkPath.getAbsolute());
// Ensures that ranking expressions and other files are also written