64809: Update discovery configuration indexing

This commit is contained in:
Kristof De Langhe
2019-09-09 14:40:48 +02:00
parent d8a7852388
commit ba39f6e4fb
4 changed files with 38 additions and 9 deletions

View File

@@ -11,8 +11,10 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.dspace.content.Collection;
import org.dspace.content.DSpaceObject;
@@ -140,26 +142,26 @@ public class SearchUtils {
private static List<DiscoveryConfiguration> getAllDiscoveryConfigurations(String prefix,
List<Collection> collections, Item item)
throws SQLException {
Map<String, DiscoveryConfiguration> result = new HashMap<String, DiscoveryConfiguration>();
Set<DiscoveryConfiguration> result = new HashSet<>();
for (Collection collection : collections) {
DiscoveryConfiguration configuration = getDiscoveryConfiguration(prefix, collection);
if (!result.containsKey(configuration.getId())) {
result.put(configuration.getId(), configuration);
}
result.add(configuration);
}
//Add alwaysIndex configurations
DiscoveryConfigurationService configurationService = getConfigurationService();
result.addAll(configurationService.getIndexAlwaysConfigurations());
//Also add one for the default
addConfigurationIfExists(result, prefix);
return Arrays.asList(result.values().toArray(new DiscoveryConfiguration[result.size()]));
return Arrays.asList(result.toArray(new DiscoveryConfiguration[result.size()]));
}
private static void addConfigurationIfExists(Map<String, DiscoveryConfiguration> result, String confName) {
private static void addConfigurationIfExists(Set<DiscoveryConfiguration> result, String confName) {
DiscoveryConfiguration configurationExtra = getDiscoveryConfigurationByName(confName);
if (!result.containsKey(configurationExtra.getId())) {
result.put(configurationExtra.getId(), configurationExtra);
}
result.add(configurationExtra);
}
}

View File

@@ -51,6 +51,15 @@ public class DiscoveryConfiguration implements InitializingBean {
private DiscoveryHitHighlightingConfiguration hitHighlightingConfiguration;
private DiscoveryMoreLikeThisConfiguration moreLikeThisConfiguration;
private boolean spellCheckEnabled;
private boolean indexAlways = false;
public boolean isIndexAlways() {
return indexAlways;
}
public void setIndexAlways(boolean indexAlways) {
this.indexAlways = indexAlways;
}
public String getId() {
return id;

View File

@@ -7,6 +7,7 @@
*/
package org.dspace.discovery.configuration;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -75,6 +76,17 @@ public class DiscoveryConfigurationService {
}
}
public List<DiscoveryConfiguration> getIndexAlwaysConfigurations() {
List<DiscoveryConfiguration> configs = new ArrayList<>();
for(String key : map.keySet()) {
DiscoveryConfiguration config = map.get(key);
if(config.isIndexAlways()) {
configs.add(config);
}
}
return configs;
}
public static void main(String[] args) {
System.out.println(DSpaceServicesFactory.getInstance().getServiceManager().getServicesNames().size());
DiscoveryConfigurationService mainService = DSpaceServicesFactory.getInstance().getServiceManager()

View File

@@ -516,6 +516,7 @@
<bean id="publication" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype">
<property name="id" value="publication"/>
<property name="indexAlways" value="true"/>
<!--Which sidebar facets are to be displayed-->
<property name="sidebarFacets">
<list>
@@ -586,6 +587,7 @@
<bean id="person" class="org.dspace.discovery.configuration.DiscoveryConfiguration" scope="prototype">
<property name="id" value="person"/>
<property name="indexAlways" value="true"/>
<!--Which sidebar facets are to be displayed-->
<property name="sidebarFacets">
<list>
@@ -649,6 +651,7 @@
<bean id="organization" class="org.dspace.discovery.configuration.DiscoveryConfiguration"
scope="prototype">
<property name="id" value="organization"/>
<property name="indexAlways" value="true"/>
<!--Which sidebar facets are to be displayed-->
<property name="sidebarFacets">
<list>
@@ -713,6 +716,7 @@
<bean id="publicationIssue" class="org.dspace.discovery.configuration.DiscoveryConfiguration"
scope="prototype">
<property name="id" value="publicationIssue"/>
<property name="indexAlways" value="true"/>
<!--Which sidebar facets are to be displayed-->
<property name="sidebarFacets">
<list>
@@ -773,6 +777,7 @@
<bean id="publicationVolume" class="org.dspace.discovery.configuration.DiscoveryConfiguration"
scope="prototype">
<property name="id" value="publicationVolume"/>
<property name="indexAlways" value="true"/>
<!--Which sidebar facets are to be displayed-->
<property name="sidebarFacets">
<list>
@@ -832,6 +837,7 @@
<bean id="periodical" class="org.dspace.discovery.configuration.DiscoveryConfiguration"
scope="prototype">
<property name="id" value="periodical"/>
<property name="indexAlways" value="true"/>
<!--Which sidebar facets are to be displayed-->
<property name="sidebarFacets">
<list>