diff options
author | Harald Musum <musum@verizonmedia.com> | 2022-01-28 20:04:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-28 20:04:37 +0100 |
commit | e6b4f1c48ab18761bb5be0e784d7345930feb14e (patch) | |
tree | 51b439f10f1fff03f048767d92a2f0c8c5240edd /config-model/src/main/java/com/yahoo/searchdefinition/derived | |
parent | 0f8ca9097666a56fb8a99841562c451411a7df80 (diff) | |
parent | bd7b7bcf5b8d3ac710032f66e891caa90a4334a1 (diff) |
Merge pull request #20979 from vespa-engine/bratseth/rank-profile-multiple-inheritance
Bratseth/rank profile multiple inheritance
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/derived')
3 files changed, 12 insertions, 16 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/FieldRankSettings.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/FieldRankSettings.java index c6f59fbe596..2a2950f71e9 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/FieldRankSettings.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/FieldRankSettings.java @@ -4,11 +4,9 @@ package com.yahoo.searchdefinition.derived; import com.yahoo.collections.Pair; import java.util.ArrayList; -import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.logging.Logger; /** * The rank settings of a field used for native rank features. @@ -17,9 +15,7 @@ import java.util.logging.Logger; */ public class FieldRankSettings { - private static final Logger logger = Logger.getLogger(FieldRankSettings.class.getName()); - - private String fieldName; + private final String fieldName; private final Map<String, NativeTable> tables = new LinkedHashMap<>(); @@ -30,7 +26,7 @@ public class FieldRankSettings { public void addTable(NativeTable table) { NativeTable existing = tables.get(table.getType().getName()); if (existing != null) { - logger.info("Using already specified rank table " + existing + " for field " + fieldName + ", not " + table); + // TODO: Throw? return; } tables.put(table.getType().getName(), table); @@ -60,8 +56,7 @@ public class FieldRankSettings { public List<Pair<String, String>> deriveRankProperties() { List<Pair<String, String>> properties = new ArrayList<>(); - for (Iterator<NativeTable> i = tables.values().iterator(); i.hasNext();) { - NativeTable table = i.next(); + for (NativeTable table : tables.values()) { if (isFieldMatchTable(table)) properties.add(new Pair<>("nativeFieldMatch." + table.getType().getName() + "." + fieldName, table.getName())); if (isAttributeMatchTable(table)) @@ -72,6 +67,7 @@ public class FieldRankSettings { return properties; } + @Override public String toString() { return "rank settings of field " + fieldName; } 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 86c1d478974..bcebdf3a916 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 @@ -73,9 +73,9 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ } private boolean areDependenciesReady(RankProfile rank, RankProfileRegistry registry) { - return (rank.getInheritedName() == null) || - rankProfiles.containsKey(rank.getInheritedName()) || - (rank.schema() != null && registry.resolve(rank.schema().getDocument(), rank.getInheritedName()) != null); + return rank.inheritedNames().isEmpty() || + rankProfiles.keySet().containsAll(rank.inheritedNames()) || + (rank.schema() != null && rank.inheritedNames().stream().allMatch(name -> registry.resolve(rank.schema().getDocument(), name) != null)); } private void deriveRankProfiles(RankProfileRegistry rankProfileRegistry, 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 a64f0939677..75703c33f07 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 @@ -156,8 +156,7 @@ public class RawRankProfile implements RankProfilesConfig.Producer { /** * Creates a raw rank profile from the given rank profile */ - Deriver(RankProfile compiled, AttributeFields attributeFields, ModelContext.Properties deployProperties) - { + Deriver(RankProfile compiled, AttributeFields attributeFields, ModelContext.Properties deployProperties) { rankprofileName = compiled.name(); attributeTypes = compiled.getAttributeTypes(); queryFeatureTypes = compiled.getQueryFeatureTypes(); @@ -277,14 +276,15 @@ public class RawRankProfile implements RankProfilesConfig.Producer { private void deriveRankTypeSetting(RankProfile rankProfile, AttributeFields attributeFields) { for (Iterator<RankProfile.RankSetting> i = rankProfile.rankSettingIterator(); i.hasNext(); ) { RankProfile.RankSetting setting = i.next(); - if (!setting.getType().equals(RankProfile.RankSetting.Type.RANKTYPE)) continue; + if (setting.getType() != RankProfile.RankSetting.Type.RANKTYPE) continue; deriveNativeRankTypeSetting(setting.getFieldName(), (RankType) setting.getValue(), attributeFields, - hasDefaultRankTypeSetting(rankProfile, setting.getFieldName())); + hasDefaultRankTypeSetting(rankProfile, setting.getFieldName())); } } - private void deriveNativeRankTypeSetting(String fieldName, RankType rankType, AttributeFields attributeFields, boolean isDefaultSetting) { + private void deriveNativeRankTypeSetting(String fieldName, RankType rankType, AttributeFields attributeFields, + boolean isDefaultSetting) { if (isDefaultSetting) return; NativeRankTypeDefinition definition = nativeRankTypeDefinitions.getRankTypeDefinition(rankType); |