[CST-10641] fixes and improvement for LDN Messages Discovery

This commit is contained in:
Stefano Maffei
2023-12-29 14:31:40 +01:00
parent 336791e001
commit 7c286e7b77
2 changed files with 188 additions and 9 deletions

View File

@@ -84,14 +84,15 @@ public class LDNMessageEntityIndexFactoryImpl extends IndexFactoryImpl<Indexable
doc.addField("notification_id", ldnMessage.getID()); doc.addField("notification_id", ldnMessage.getID());
doc.addField("queue_status_i", ldnMessage.getQueueStatus()); doc.addField("queue_status_i", ldnMessage.getQueueStatus());
doc.addField("queue_status_s", LDNMessageEntity.getQueueStatus(ldnMessage)); doc.addField("queue_status_s", LDNMessageEntity.getQueueStatus(ldnMessage));
doc.addField("notification_id", ldnMessage.getID());
Item item = (Item) ldnMessage.getObject(); Item item = (Item) ldnMessage.getObject();
if (item != null) { if (item != null) {
addFacetIndex(doc, "object", item.getID().toString(), itemService.getMetadata(item, "dc.title")); addFacetIndex(doc, "object", item.getID().toString(), itemService.getMetadata(item, "dc.title"));
addFacetIndex(doc, "relateditem", item.getID().toString(), itemService.getMetadata(item, "dc.title"));
} }
item = (Item) ldnMessage.getContext(); item = (Item) ldnMessage.getContext();
if (item != null) { if (item != null) {
addFacetIndex(doc, "context", item.getID().toString(), itemService.getMetadata(item, "dc.title")); addFacetIndex(doc, "context", item.getID().toString(), itemService.getMetadata(item, "dc.title"));
addFacetIndex(doc, "relateditem", item.getID().toString(), itemService.getMetadata(item, "dc.title"));
} }
NotifyServiceEntity origin = ldnMessage.getOrigin(); NotifyServiceEntity origin = ldnMessage.getOrigin();
if (origin != null) { if (origin != null) {

View File

@@ -121,11 +121,13 @@
<entry key="NOTIFY.incoming.processed" value-ref="NOTIFY.incoming.processed"/> <entry key="NOTIFY.incoming.processed" value-ref="NOTIFY.incoming.processed"/>
<entry key="NOTIFY.incoming.failure" value-ref="NOTIFY.incoming.failure"/> <entry key="NOTIFY.incoming.failure" value-ref="NOTIFY.incoming.failure"/>
<entry key="NOTIFY.incoming.untrusted" value-ref="NOTIFY.incoming.untrusted"/> <entry key="NOTIFY.incoming.untrusted" value-ref="NOTIFY.incoming.untrusted"/>
<entry key="NOTIFY.incoming.involvedItems" value-ref="NOTIFY.incoming.involvedItems"/>
<!-- COAR NOTIFY LDN MESSAGES outgoing configuration --> <!-- COAR NOTIFY LDN MESSAGES outgoing configuration -->
<entry key="NOTIFY.outgoing.delivered" value-ref="NOTIFY.outgoing.delivered"/> <entry key="NOTIFY.outgoing.delivered" value-ref="NOTIFY.outgoing.delivered"/>
<entry key="NOTIFY.outgoing.queued" value-ref="NOTIFY.outgoing.queued"/> <entry key="NOTIFY.outgoing.queued" value-ref="NOTIFY.outgoing.queued"/>
<entry key="NOTIFY.outgoing.queued_for_retry" value-ref="NOTIFY.outgoing.queued_for_retry"/> <entry key="NOTIFY.outgoing.queued_for_retry" value-ref="NOTIFY.outgoing.queued_for_retry"/>
<entry key="NOTIFY.outgoing.failure" value-ref="NOTIFY.outgoing.failure"/> <entry key="NOTIFY.outgoing.failure" value-ref="NOTIFY.outgoing.failure"/>
<entry key="NOTIFY.outgoing.involvedItems" value-ref="NOTIFY.outgoing.involvedItems"/>
</map> </map>
</property> </property>
<property name="toIgnoreMetadataFields"> <property name="toIgnoreMetadataFields">
@@ -2140,11 +2142,25 @@
<!--Which sidebar facets are to be displayed --> <!--Which sidebar facets are to be displayed -->
<property name="sidebarFacets"> <property name="sidebarFacets">
<list> <list>
<ref bean="searchFilterNotifyRelatedItem" />
<ref bean="searchFilterNotifyOrigin" />
<ref bean="searchFilterNotifyTarget" />
<ref bean="searchFilterNotifyQueueStatus" />
<ref bean="searchFilterNotifyActivityStreamType" />
<ref bean="searchFilterNotifyCoarNotifyType" />
<ref bean="searchFilterNotifyNotificationType" />
</list> </list>
</property> </property>
<!--The search filters which can be used on the discovery search page --> <!--The search filters which can be used on the discovery search page -->
<property name="searchFilters"> <property name="searchFilters">
<list> <list>
<ref bean="searchFilterNotifyRelatedItem" />
<ref bean="searchFilterNotifyOrigin" />
<ref bean="searchFilterNotifyTarget" />
<ref bean="searchFilterNotifyQueueStatus" />
<ref bean="searchFilterNotifyActivityStreamType" />
<ref bean="searchFilterNotifyCoarNotifyType" />
<ref bean="searchFilterNotifyNotificationType" />
</list> </list>
</property> </property>
<!--The sort filters for the discovery search--> <!--The sort filters for the discovery search-->
@@ -2153,6 +2169,11 @@
<property name="sortFields"> <property name="sortFields">
<list> <list>
<ref bean="sortLastModified"/> <ref bean="sortLastModified"/>
<ref bean="sortLastModifiedAsc"/>
<ref bean="sortQueueLastStartTimeDesc"/>
<ref bean="sortQueueLastStartTimeAsc"/>
<ref bean="sortQueueAttemptsDesc"/>
<ref bean="sortQueueAttemptsAsc"/>
</list> </list>
</property> </property>
</bean> </bean>
@@ -2192,7 +2213,7 @@
</property> </property>
</bean> </bean>
<bean id="NOTIFY.incoming.accepted" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig"> <bean id="NOTIFY.incoming.accepted" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.incoming">
<property name="id" value="NOTIFY.incoming.accepted"/> <property name="id" value="NOTIFY.incoming.accepted"/>
<property name="defaultFilterQueries"> <property name="defaultFilterQueries">
<list> <list>
@@ -2206,7 +2227,7 @@
</property> </property>
</bean> </bean>
<bean id="NOTIFY.incoming.processed" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig"> <bean id="NOTIFY.incoming.processed" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.incoming">
<property name="id" value="NOTIFY.incoming.processed"/> <property name="id" value="NOTIFY.incoming.processed"/>
<property name="defaultFilterQueries"> <property name="defaultFilterQueries">
<list> <list>
@@ -2218,7 +2239,7 @@
</property> </property>
</bean> </bean>
<bean id="NOTIFY.incoming.failure" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig"> <bean id="NOTIFY.incoming.failure" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.incoming">
<property name="id" value="NOTIFY.incoming.failure"/> <property name="id" value="NOTIFY.incoming.failure"/>
<property name="defaultFilterQueries"> <property name="defaultFilterQueries">
<list> <list>
@@ -2230,7 +2251,7 @@
</property> </property>
</bean> </bean>
<bean id="NOTIFY.incoming.untrusted" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig"> <bean id="NOTIFY.incoming.untrusted" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.incoming">
<property name="id" value="NOTIFY.incoming.untrusted"/> <property name="id" value="NOTIFY.incoming.untrusted"/>
<property name="defaultFilterQueries"> <property name="defaultFilterQueries">
<list> <list>
@@ -2242,6 +2263,18 @@
</property> </property>
</bean> </bean>
<bean id="NOTIFY.incoming.involvedItems" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.incoming">
<property name="id" value="NOTIFY.incoming.involvedItems"/>
<property name="defaultFilterQueries">
<list>
<!--Only find LDNMessageEntity -->
<value>search.resourcetype:Item</value>
<value>{!join from=relateditem_authority to=search.resourceid fromIndex=${solr.multicorePrefix}search}notification_type:#{T(org.dspace.app.ldn.LDNMessageEntity).TYPE_INCOMING}</value>
<value>-withdrawn:true AND -discoverable:false</value>
</list>
</property>
</bean>
<bean id="NOTIFY.outgoing" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig"> <bean id="NOTIFY.outgoing" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig">
<property name="id" value="NOTIFY.outgoing"/> <property name="id" value="NOTIFY.outgoing"/>
<property name="defaultFilterQueries"> <property name="defaultFilterQueries">
@@ -2253,7 +2286,7 @@
</property> </property>
</bean> </bean>
<bean id="NOTIFY.outgoing.delivered" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig"> <bean id="NOTIFY.outgoing.delivered" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.outgoing">
<property name="id" value="NOTIFY.outgoing.delivered"/> <property name="id" value="NOTIFY.outgoing.delivered"/>
<property name="defaultFilterQueries"> <property name="defaultFilterQueries">
<list> <list>
@@ -2265,7 +2298,7 @@
</property> </property>
</bean> </bean>
<bean id="NOTIFY.outgoing.queued" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig"> <bean id="NOTIFY.outgoing.queued" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.outgoing">
<property name="id" value="NOTIFY.outgoing.queued"/> <property name="id" value="NOTIFY.outgoing.queued"/>
<property name="defaultFilterQueries"> <property name="defaultFilterQueries">
<list> <list>
@@ -2277,7 +2310,7 @@
</property> </property>
</bean> </bean>
<bean id="NOTIFY.outgoing.queued_for_retry" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig"> <bean id="NOTIFY.outgoing.queued_for_retry" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.outgoing">
<property name="id" value="NOTIFY.outgoing.queued_for_retry"/> <property name="id" value="NOTIFY.outgoing.queued_for_retry"/>
<property name="defaultFilterQueries"> <property name="defaultFilterQueries">
<list> <list>
@@ -2289,7 +2322,7 @@
</property> </property>
</bean> </bean>
<bean id="NOTIFY.outgoing.failure" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="ldnMessageEntityBaseConfig"> <bean id="NOTIFY.outgoing.failure" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.outgoing">
<property name="id" value="NOTIFY.outgoing.failure"/> <property name="id" value="NOTIFY.outgoing.failure"/>
<property name="defaultFilterQueries"> <property name="defaultFilterQueries">
<list> <list>
@@ -2300,6 +2333,18 @@
</list> </list>
</property> </property>
</bean> </bean>
<bean id="NOTIFY.outgoing.involvedItems" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype" parent="NOTIFY.outgoing">
<property name="id" value="NOTIFY.outgoing.involvedItems"/>
<property name="defaultFilterQueries">
<list>
<!--Only find LDNMessageEntity -->
<value>search.resourcetype:Item</value>
<value>{!join from=relateditem_authority to=search.resourceid fromIndex=${solr.multicorePrefix}search}notification_type:#{T(org.dspace.app.ldn.LDNMessageEntity).TYPE_OUTGOING}</value>
<value>-withdrawn:true AND -discoverable:false</value>
</list>
</property>
</bean>
<bean id="tagCloudConfiguration" class="org.dspace.discovery.configuration.TagCloudConfiguration"> <bean id="tagCloudConfiguration" class="org.dspace.discovery.configuration.TagCloudConfiguration">
<!-- Should display the score of each tag next to it? Default: false --> <!-- Should display the score of each tag next to it? Default: false -->
@@ -3017,6 +3062,111 @@
</property> </property>
</bean> </bean>
<bean id="searchFilterNotifyRelatedItem" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
<property name="indexFieldName" value="relateditem"/>
<property name="metadataFields">
<list>
<value>relateditem</value>
</list>
</property>
<property name="facetLimit" value="5"/>
<property name="sortOrderSidebar" value="COUNT"/>
<property name="sortOrderFilterPage" value="COUNT"/>
<property name="isOpenByDefault" value="true"/>
<property name="pageSize" value="10"/>
<property name="exposeMinAndMaxValue" value="true"/>
</bean>
<bean id="searchFilterNotifyOrigin" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
<property name="indexFieldName" value="origin"/>
<property name="metadataFields">
<list>
<value>origin</value>
</list>
</property>
<property name="facetLimit" value="5"/>
<property name="sortOrderSidebar" value="COUNT"/>
<property name="sortOrderFilterPage" value="COUNT"/>
<property name="isOpenByDefault" value="true"/>
<property name="pageSize" value="10"/>
<property name="exposeMinAndMaxValue" value="true"/>
</bean>
<bean id="searchFilterNotifyTarget" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
<property name="indexFieldName" value="target"/>
<property name="metadataFields">
<list>
<value>target</value>
</list>
</property>
<property name="facetLimit" value="5"/>
<property name="sortOrderSidebar" value="COUNT"/>
<property name="sortOrderFilterPage" value="COUNT"/>
<property name="isOpenByDefault" value="true"/>
<property name="pageSize" value="10"/>
<property name="exposeMinAndMaxValue" value="true"/>
</bean>
<bean id="searchFilterNotifyQueueStatus" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
<property name="indexFieldName" value="queue_status_s"/>
<property name="metadataFields">
<list>
<value>queue_status_s</value>
</list>
</property>
<property name="facetLimit" value="5"/>
<property name="sortOrderSidebar" value="COUNT"/>
<property name="sortOrderFilterPage" value="COUNT"/>
<property name="isOpenByDefault" value="true"/>
<property name="pageSize" value="10"/>
<property name="exposeMinAndMaxValue" value="true"/>
</bean>
<bean id="searchFilterNotifyActivityStreamType" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
<property name="indexFieldName" value="activity_stream_type"/>
<property name="metadataFields">
<list>
<value>activity_stream_type</value>
</list>
</property>
<property name="facetLimit" value="5"/>
<property name="sortOrderSidebar" value="COUNT"/>
<property name="sortOrderFilterPage" value="COUNT"/>
<property name="isOpenByDefault" value="true"/>
<property name="pageSize" value="10"/>
<property name="exposeMinAndMaxValue" value="true"/>
</bean>
<bean id="searchFilterNotifyCoarNotifyType" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
<property name="indexFieldName" value="coar_notify_type"/>
<property name="metadataFields">
<list>
<value>coar_notify_type</value>
</list>
</property>
<property name="facetLimit" value="5"/>
<property name="sortOrderSidebar" value="COUNT"/>
<property name="sortOrderFilterPage" value="COUNT"/>
<property name="isOpenByDefault" value="true"/>
<property name="pageSize" value="10"/>
<property name="exposeMinAndMaxValue" value="true"/>
</bean>
<bean id="searchFilterNotifyNotificationType" class="org.dspace.discovery.configuration.DiscoverySearchFilterFacet">
<property name="indexFieldName" value="notification_type"/>
<property name="metadataFields">
<list>
<value>notification_type</value>
</list>
</property>
<property name="facetLimit" value="5"/>
<property name="sortOrderSidebar" value="COUNT"/>
<property name="sortOrderFilterPage" value="COUNT"/>
<property name="isOpenByDefault" value="true"/>
<property name="pageSize" value="10"/>
<property name="exposeMinAndMaxValue" value="true"/>
</bean>
<!--Sort properties--> <!--Sort properties-->
<bean id="sortScore" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration"> <bean id="sortScore" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
<property name="defaultSortOrder" value="desc"/> <property name="defaultSortOrder" value="desc"/>
@@ -3097,6 +3247,34 @@
<property name="defaultSortOrder" value="desc"/> <property name="defaultSortOrder" value="desc"/>
</bean> </bean>
<bean id="sortLastModifiedAsc" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
<property name="metadataField" value="lastModified" />
<property name="type" value="date" />
<property name="defaultSortOrder" value="asc"/>
</bean>
<bean id="sortQueueLastStartTimeDesc" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
<property name="metadataField" value="queue_last_start_time" />
<property name="type" value="date" />
<property name="defaultSortOrder" value="desc"/>
</bean>
<bean id="sortQueueLastStartTimeAsc" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
<property name="metadataField" value="queue_last_start_time" />
<property name="type" value="date" />
<property name="defaultSortOrder" value="asc"/>
</bean>
<bean id="sortQueueAttemptsDesc" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
<property name="metadataField" value="queue_attempts" />
<property name="defaultSortOrder" value="desc"/>
</bean>
<bean id="sortQueueAttemptsAsc" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
<property name="metadataField" value="queue_attempts" />
<property name="defaultSortOrder" value="asc"/>
</bean>
<bean id="sortTitleAsc" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration"> <bean id="sortTitleAsc" class="org.dspace.discovery.configuration.DiscoverySortFieldConfiguration">
<property name="metadataField" value="dc.title"/> <property name="metadataField" value="dc.title"/>
<property name="defaultSortOrder" value="asc"/> <property name="defaultSortOrder" value="asc"/>