summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-03-07 08:47:54 +0000
committerArne H Juul <arnej@yahooinc.com>2022-03-07 09:11:00 +0000
commit09651c891ee73c4ec0b5f142096f308078b8a530 (patch)
tree0c13b0a60eaa4f9de4110f5c15129786a2476e31 /config-model/src/main/java/com/yahoo
parenta167752728eb4a1c47fdc59f3b12f2ab2d27118e (diff)
allow function replacement
* for backwards-compatibility, allow a rank-profile function to be replaced (with a warning) * also, allow multiple attribute settings for same attribute
Diffstat (limited to 'config-model/src/main/java/com/yahoo')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedField.java6
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedRankProfile.java7
2 files changed, 6 insertions, 7 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedField.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedField.java
index 5ee73abc28d..5bcfa841bae 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedField.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedField.java
@@ -121,10 +121,8 @@ class ParsedField extends ParsedBlock {
void setStemming(Stemming stemming) { this.stemming = stemming; }
void setWeight(int weight) { this.weight = weight; }
- void addAttribute(ParsedAttribute attribute) {
- String attrName = attribute.name();
- verifyThat(! attributes.containsKey(attrName), "already has attribute", attrName);
- attributes.put(attrName, attribute);
+ ParsedAttribute attributeFor(String attrName) {
+ return attributes.computeIfAbsent(attrName, n -> new ParsedAttribute(n));
}
void setIndexingOperation(ParsedIndexingOp idxOp) {
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedRankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedRankProfile.java
index 0801b613530..f028685b71a 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedRankProfile.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedRankProfile.java
@@ -113,9 +113,10 @@ class ParsedRankProfile extends ParsedBlock {
fieldsRankWeight.put(field, weight);
}
- void addFunction(ParsedRankFunction func) {
- verifyThat(! functions.containsKey(func.name()), "already has function", func.name());
- functions.put(func.name(), func);
+ ParsedRankFunction addOrReplaceFunction(ParsedRankFunction func) {
+ // allowed with warning
+ // verifyThat(! functions.containsKey(func.name()), "already has function", func.name());
+ return functions.put(func.name(), func);
}
void addMutateOperation(MutateOperation.Phase phase, String attrName, String operation) {