diff --git a/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRefSetMemberSearchRequest.java b/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRefSetMemberSearchRequest.java index 7ee0ebe8d5..d5e4e65b85 100644 --- a/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRefSetMemberSearchRequest.java +++ b/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRefSetMemberSearchRequest.java @@ -42,9 +42,7 @@ import com.b2international.snowowl.snomed.datastore.converter.SnomedReferenceSetMemberConverter; import com.b2international.snowowl.snomed.datastore.index.entry.SnomedDocument; import com.b2international.snowowl.snomed.datastore.index.entry.SnomedRefSetMemberIndexEntry; -import com.google.common.collect.ImmutableSortedMap; -import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; +import com.google.common.collect.*; /** * @since 4.5 @@ -53,6 +51,16 @@ public final class SnomedRefSetMemberSearchRequest extends SnomedSearchRequest REPLACE_VALUE_FIELD = ImmutableMultimap.builder() + .putAll(SnomedRf2Headers.FIELD_VALUE, + SnomedRefSetMemberIndexEntry.Fields.BOOLEAN_VALUE, + SnomedRefSetMemberIndexEntry.Fields.DECIMAL_VALUE, + SnomedRefSetMemberIndexEntry.Fields.INTEGER_VALUE, + SnomedRefSetMemberIndexEntry.Fields.STRING_VALUE, + SnomedRefSetMemberIndexEntry.Fields.DATA_TYPE) + .build(); + private static final SortedMap> SUPPORTED_MEMBER_FIELDS = ImmutableSortedMap.>naturalOrder() // String types, ECL support .put(SnomedRf2Headers.FIELD_REFERENCED_COMPONENT_ID, new SnomedRefsetMemberFieldQueryHandler<>(String.class, SnomedRefSetMemberIndexEntry.Expressions::referencedComponentIds, true)) @@ -147,6 +155,11 @@ protected Class getDocumentType() { return SnomedRefSetMemberIndexEntry.class; } + @Override + protected Multimap collectFieldsToLoadReplacements() { + return REPLACE_VALUE_FIELD; + } + @Override protected Expression prepareQuery(BranchContext context) { final Collection referencedComponentIds = getCollection(OptionKey.REFERENCED_COMPONENT, String.class); diff --git a/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRelationshipSearchRequest.java b/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRelationshipSearchRequest.java index c1cdd485d1..0463cd9eca 100644 --- a/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRelationshipSearchRequest.java +++ b/snomed/com.b2international.snowowl.snomed.datastore/src/com/b2international/snowowl/snomed/datastore/request/SnomedRelationshipSearchRequest.java @@ -44,8 +44,12 @@ */ final class SnomedRelationshipSearchRequest extends SnomedComponentSearchRequest { + // Requesting the "value" field should load "numericValue", "stringValue" and "valueType" instead private static final Multimap REPLACE_VALUE_FIELD = ImmutableMultimap.builder() - .putAll(SnomedRelationship.Fields.VALUE, SnomedRelationshipIndexEntry.Fields.NUMERIC_VALUE, SnomedRelationshipIndexEntry.Fields.STRING_VALUE, SnomedRelationshipIndexEntry.Fields.VALUE_TYPE) + .putAll(SnomedRelationship.Fields.VALUE, + SnomedRelationshipIndexEntry.Fields.NUMERIC_VALUE, + SnomedRelationshipIndexEntry.Fields.STRING_VALUE, + SnomedRelationshipIndexEntry.Fields.VALUE_TYPE) .build(); enum OptionKey {