diff --git a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java index ffc3f3960..5dc1c164c 100644 --- a/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java +++ b/search-services/alfresco-search/src/main/java/org/alfresco/solr/SolrInformationServer.java @@ -2321,14 +2321,24 @@ public class SolrInformationServer implements InformationServer } } - void mltextProperty(QName propertyQName, MLTextPropertyValue value, final BiConsumer valueHolder) + void mltextProperty(QName propertyQName, MLTextPropertyValue value, final BiConsumer valueHolder, boolean merge) { AlfrescoSolrDataModel dataModel = AlfrescoSolrDataModel.getInstance(); List fields = dataModel.getIndexedFieldNamesForProperty(propertyQName).getFields(); String storedFieldName = dataModel.getStoredMLTextField(propertyQName); - valueHolder.accept(storedFieldName, getLocalisedValues(value)); + List localisedValues = getLocalisedValues(value); + + if (merge) + { + localisedValues.forEach(val -> valueHolder.accept(storedFieldName, val)); + } + else + { + valueHolder.accept(storedFieldName, localisedValues); + } + fields.stream() .filter(FieldInstance::isSort) .forEach(field -> addMLTextProperty(valueHolder, field, value)); @@ -2406,7 +2416,7 @@ public class SolrInformationServer implements InformationServer } else if (value instanceof MLTextPropertyValue) { - mltextProperty(propertyQName,(MLTextPropertyValue) value, setAndCollect); + mltextProperty(propertyQName,(MLTextPropertyValue) value, setAndCollect, false); } else if (value instanceof ContentPropertyValue) { @@ -2431,7 +2441,8 @@ public class SolrInformationServer implements InformationServer } else if (singleValue instanceof MLTextPropertyValue) { - mltextProperty(propertyQName,(MLTextPropertyValue) singleValue, addAndCollect); + boolean merge = (document instanceof PartialSolrInputDocument); + mltextProperty(propertyQName,(MLTextPropertyValue) singleValue, addAndCollect, merge); } else if (singleValue instanceof ContentPropertyValue) {