diff options
author | Tor Egge <Tor.Egge@oath.com> | 2018-01-24 12:44:21 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@oath.com> | 2018-01-24 13:20:28 +0000 |
commit | 9935cf92522a2fe86c780e89df4e2ea2a43ee3d0 (patch) | |
tree | e28e18e5d617f6c1efd882bc0f6e675f1d80d787 | |
parent | 737a37d0ed82df358c0ff551cae3ce67c45c4633 (diff) |
Set tensor types for imported tensors in rank profile.
-rw-r--r-- | config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java index fda850087df..292f01a3308 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java @@ -10,6 +10,8 @@ import com.yahoo.searchdefinition.RankProfile; import com.yahoo.searchdefinition.RankProfileRegistry; import com.yahoo.searchdefinition.Search; import com.yahoo.searchdefinition.document.Attribute; +import com.yahoo.searchdefinition.document.ImportedField; +import com.yahoo.searchdefinition.document.ImportedFields; import com.yahoo.searchdefinition.document.SDField; import com.yahoo.searchdefinition.processing.Processor; import com.yahoo.vespa.model.container.search.QueryProfiles; @@ -17,6 +19,7 @@ import com.yahoo.vespa.model.container.search.QueryProfiles; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.Optional; /** * Class that processes a search instance and sets type settings on all rank profiles. @@ -36,6 +39,7 @@ public class RankProfileTypeSettingsProcessor extends Processor { @Override public void process() { processAttributeFields(); + processImportedFields(); processQueryProfileTypes(); } @@ -49,6 +53,21 @@ public class RankProfileTypeSettingsProcessor extends Processor { } } + private void processImportedFields() { + Optional<ImportedFields> importedFields = search.importedFields(); + if (importedFields.isPresent()) { + importedFields.get().fields().forEach((fieldName, field) -> processImportedField(field)); + } + } + + private void processImportedField(ImportedField field) { + SDField targetField = field.targetField(); + Attribute attribute = targetField.getAttributes().get(targetField.getName()); + if (attribute != null && attribute.tensorType().isPresent()) { + addAttributeTypeToRankProfiles(field.fieldName(), attribute.tensorType().get().toString()); + } + } + private void addAttributeTypeToRankProfiles(String attributeName, String attributeType) { for (RankProfile profile : rankProfileRegistry.allRankProfiles()) { profile.addAttributeType(attributeName, attributeType); |