summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@oath.com>2018-01-24 12:44:21 +0000
committerTor Egge <Tor.Egge@oath.com>2018-01-24 13:20:28 +0000
commit9935cf92522a2fe86c780e89df4e2ea2a43ee3d0 (patch)
treee28e18e5d617f6c1efd882bc0f6e675f1d80d787 /config-model
parent737a37d0ed82df358c0ff551cae3ce67c45c4633 (diff)
Set tensor types for imported tensors in rank profile.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/processing/multifieldresolver/RankProfileTypeSettingsProcessor.java19
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);