diff options
author | Arne H Juul <arnej@yahooinc.com> | 2022-03-07 08:47:54 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-03-07 09:11:00 +0000 |
commit | 09651c891ee73c4ec0b5f142096f308078b8a530 (patch) | |
tree | 0c13b0a60eaa4f9de4110f5c15129786a2476e31 /config-model/src/main/java/com/yahoo | |
parent | a167752728eb4a1c47fdc59f3b12f2ab2d27118e (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.java | 6 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/parser/ParsedRankProfile.java | 7 |
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) { |