aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/derived
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2022-01-28 20:04:37 +0100
committerGitHub <noreply@github.com>2022-01-28 20:04:37 +0100
commite6b4f1c48ab18761bb5be0e784d7345930feb14e (patch)
tree51b439f10f1fff03f048767d92a2f0c8c5240edd /config-model/src/main/java/com/yahoo/searchdefinition/derived
parent0f8ca9097666a56fb8a99841562c451411a7df80 (diff)
parentbd7b7bcf5b8d3ac710032f66e891caa90a4334a1 (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')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/FieldRankSettings.java12
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java6
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java10
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);