diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo')
2 files changed, 19 insertions, 3 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java index f2d32f85a16..9b6a86ad13e 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/processing/ImportedFieldsResolver.java @@ -2,7 +2,6 @@ package com.yahoo.searchdefinition.processing; import com.yahoo.config.application.api.DeployLogger; -import com.yahoo.document.TensorDataType; import com.yahoo.searchdefinition.DocumentReference; import com.yahoo.searchdefinition.DocumentReferences; import com.yahoo.searchdefinition.RankProfileRegistry; @@ -66,8 +65,6 @@ public class ImportedFieldsResolver extends Processor { fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Is not an attribute field. Only attribute fields supported"); } else if (targetField.doesIndexing()) { fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Is an index field. Not supported"); - } else if (targetField.getDataType() instanceof TensorDataType) { - fail(importedField, targetFieldAsString(targetFieldName, reference) + ": Is of type 'tensor'. Not supported"); } return targetField; } 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); |