Skip to content

Commit ec9a39b

Browse files
committed
account for cvoc multiples
1 parent 7fa4a4d commit ec9a39b

File tree

1 file changed

+6
-5
lines changed
  • src/main/java/edu/harvard/iq/dataverse/api

1 file changed

+6
-5
lines changed

src/main/java/edu/harvard/iq/dataverse/api/Index.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import java.lang.reflect.Field;
4545
import java.util.ArrayList;
4646
import java.util.List;
47+
import java.util.Map;
4748
import java.util.Set;
4849
import java.util.concurrent.ExecutionException;
4950
import java.util.concurrent.Future;
@@ -451,11 +452,11 @@ public Response clearOrphans(@QueryParam("sync") String sync) {
451452
public String getSolrSchema() {
452453

453454
StringBuilder sb = new StringBuilder();
454-
455-
for (DatasetFieldType datasetField : datasetFieldService.findAllOrderedByName()) {
455+
Map<Long, JsonObject> cvocTermUriMap = datasetFieldSvc.getCVocConf(true);
456+
for (DatasetFieldType datasetFieldType : datasetFieldService.findAllOrderedByName()) {
456457
//ToDo - getSolrField() creates/returns a new object - just get it once and re-use
457-
String nameSearchable = datasetField.getSolrField().getNameSearchable();
458-
SolrField.SolrType solrType = datasetField.getSolrField().getSolrType();
458+
String nameSearchable = datasetFieldType.getSolrField().getNameSearchable();
459+
SolrField.SolrType solrType = datasetFieldType.getSolrField().getSolrType();
459460
String type = solrType.getType();
460461
if (solrType.equals(SolrField.SolrType.EMAIL)) {
461462
/**
@@ -474,7 +475,7 @@ public String getSolrSchema() {
474475
*/
475476
logger.info("email type detected (" + nameSearchable + ") See also https://github.com/IQSS/dataverse/issues/759");
476477
}
477-
String multivalued = datasetField.getSolrField().isAllowedToBeMultivalued().toString();
478+
String multivalued = Boolean.toString(datasetFieldType.getSolrField().isAllowedToBeMultivalued()|| cvocTermUriMap.containsKey(datasetFieldType.getId()));
478479
// <field name="datasetId" type="text_general" multiValued="false" stored="true" indexed="true"/>
479480
sb.append(" <field name=\"" + nameSearchable + "\" type=\"" + type + "\" multiValued=\"" + multivalued + "\" stored=\"true\" indexed=\"true\"/>\n");
480481
}

0 commit comments

Comments
 (0)