diff --git a/dspace-api/src/main/java/org/dspace/discovery/indexobject/LDNMessageEntityIndexFactoryImpl.java b/dspace-api/src/main/java/org/dspace/discovery/indexobject/LDNMessageEntityIndexFactoryImpl.java index 76db7f224dc9..29acddd7d7cf 100644 --- a/dspace-api/src/main/java/org/dspace/discovery/indexobject/LDNMessageEntityIndexFactoryImpl.java +++ b/dspace-api/src/main/java/org/dspace/discovery/indexobject/LDNMessageEntityIndexFactoryImpl.java @@ -10,10 +10,12 @@ import java.io.IOException; import java.sql.SQLException; import java.util.Arrays; +import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Optional; +import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.solr.common.SolrInputDocument; import org.dspace.app.ldn.LDNMessageEntity; import org.dspace.app.ldn.NotifyServiceEntity; @@ -120,8 +122,9 @@ public SolrInputDocument buildDocument(Context context, IndexableLDNNotification addFacetIndex(doc, "coar_notify_type", ldnMessage.getCoarNotifyType(), ldnMessage.getCoarNotifyType()); doc.addField("queue_attempts", ldnMessage.getQueueAttempts()); doc.addField("queue_attempts_sort", ldnMessage.getQueueAttempts()); - doc.addField("queue_last_start_time", ldnMessage.getQueueLastStartTime()); - doc.addField("queue_last_start_time_dt", ldnMessage.getQueueLastStartTime()); + + indexDateFieldForFacet(doc, ldnMessage.getQueueLastStartTime()); + doc.addField("queue_timeout", ldnMessage.getQueueTimeout()); String notificationType = LDNMessageEntity.getNotificationType(ldnMessage); addFacetIndex(doc, "notification_type", notificationType, notificationType); @@ -129,4 +132,19 @@ public SolrInputDocument buildDocument(Context context, IndexableLDNNotification return doc; } + private void indexDateFieldForFacet(SolrInputDocument doc, Date queueLastStartTime) { + if (queueLastStartTime != null) { + String value = DateFormatUtils.format(queueLastStartTime, "yyyy-MM-dd"); + doc.addField("queue_last_start_time", value); + doc.addField("queue_last_start_time_dt", queueLastStartTime); + doc.addField("queue_last_start_time_keyword", value); + doc.addField("queue_last_start_time_min", value); + doc.addField("queue_last_start_time_min_sort", value); + doc.addField("queue_last_start_time_max", value); + doc.addField("queue_last_start_time_max_sort", value); + doc.addField("queue_last_start_time.year", + Integer.parseInt(DateFormatUtils.format(queueLastStartTime, "yyyy"))); + } + } + } diff --git a/dspace/config/spring/api/discovery.xml b/dspace/config/spring/api/discovery.xml index dd12bd6f3afb..4323badccd35 100644 --- a/dspace/config/spring/api/discovery.xml +++ b/dspace/config/spring/api/discovery.xml @@ -2154,6 +2154,7 @@ + @@ -2166,6 +2167,7 @@ + @@ -3221,6 +3223,22 @@ + + + + + + + + + + + + + + + +