mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 01:54:22 +00:00
Merge pull request #10627 from tdonohue/update_to_solr_9
Update to Solr 9 compatibility
This commit is contained in:
@@ -93,7 +93,7 @@ services:
|
||||
additional_contexts:
|
||||
solrconfigs: ./dspace/solr/
|
||||
args:
|
||||
SOLR_VERSION: "${SOLR_VER:-8.11}"
|
||||
SOLR_VERSION: "${SOLR_VER:-9.8}"
|
||||
networks:
|
||||
dspacenet:
|
||||
ports:
|
||||
@@ -105,10 +105,15 @@ services:
|
||||
volumes:
|
||||
# Keep Solr data directory between reboots
|
||||
- solr_data:/var/solr/data
|
||||
# NOTE: We are not running Solr as "root", but we need root permissions to copy our cores to the mounted
|
||||
# /var/solr/data directory. Then we start Solr as the "solr" user.
|
||||
user: root
|
||||
# Initialize all DSpace Solr cores then start Solr:
|
||||
# * First, run precreate-core to create the core (if it doesn't yet exist). If exists already, this is a no-op
|
||||
# * Second, copy configsets to this core:
|
||||
# Updates to Solr configs require the container to be rebuilt/restarted: `docker compose -p d7 up -d --build dspacesolr`
|
||||
# * Third, ensure all new folders are owned by "solr" user
|
||||
# * Finally, start Solr as the "solr" user via the provided solr-foreground script
|
||||
entrypoint:
|
||||
- /bin/bash
|
||||
- '-c'
|
||||
@@ -126,7 +131,8 @@ services:
|
||||
cp -r /opt/solr/server/solr/configsets/qaevent/* qaevent
|
||||
precreate-core suggestion /opt/solr/server/solr/configsets/suggestion
|
||||
cp -r /opt/solr/server/solr/configsets/suggestion/* suggestion
|
||||
exec solr -f
|
||||
chown -R solr:solr /var/solr
|
||||
runuser -u solr -- solr-foreground
|
||||
volumes:
|
||||
assetstore:
|
||||
pgdata:
|
||||
|
@@ -21,7 +21,7 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.SequenceGenerator;
|
||||
import jakarta.persistence.Table;
|
||||
import org.apache.solr.common.StringUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.dspace.content.DSpaceObject;
|
||||
import org.dspace.core.Context;
|
||||
import org.dspace.core.HibernateProxyHelper;
|
||||
|
@@ -181,6 +181,11 @@ public abstract class IndexFactoryImpl<T extends IndexableObject, S> implements
|
||||
*/
|
||||
protected void addFacetIndex(SolrInputDocument document, String field, String sortValue, String authority,
|
||||
String fvalue) {
|
||||
// If facet value is null/blank, then we cannot index
|
||||
if (StringUtils.isBlank(fvalue)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// the separator for the filter can be eventually configured
|
||||
String separator = DSpaceServicesFactory.getInstance().getConfigurationService()
|
||||
.getProperty("discovery.solr.facets.split.char");
|
||||
|
@@ -27,7 +27,7 @@ import com.google.common.io.Files;
|
||||
import com.opencsv.CSVReader;
|
||||
import com.opencsv.exceptions.CsvException;
|
||||
import org.apache.commons.lang3.function.TriFunction;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.dspace.AbstractIntegrationTestWithDatabase;
|
||||
import org.dspace.builder.CollectionBuilder;
|
||||
import org.dspace.builder.CommunityBuilder;
|
||||
@@ -52,7 +52,7 @@ public class MetadataExportFilteredItemsReportIT extends AbstractIntegrationTest
|
||||
private int[][] itemCountPerSubjectThenPerAuthor = {{12, 15}, {9, 4}};
|
||||
|
||||
private String filename;
|
||||
private Logger logger = Logger.getLogger(MetadataExportFilteredItemsReportIT.class);
|
||||
private Logger logger = org.apache.logging.log4j.LogManager.getLogger();
|
||||
private ConfigurationService configurationService = DSpaceServicesFactory.getInstance().getConfigurationService();
|
||||
|
||||
@Override
|
||||
|
@@ -26,10 +26,11 @@
|
||||
<luceneMatchVersion>8.8.1</luceneMatchVersion>
|
||||
|
||||
<!-- Include contributed libraries that we use in DSpace. -->
|
||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lib/'
|
||||
regex='icu4j-.*\.jar'/>
|
||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lucene-libs/'
|
||||
regex='lucene-analyzers-icu-.*\.jar'/>
|
||||
<!-- NOTE: When using Solr >=9.8, you MUST start Solr with `-Dsolr.config.lib.enabled=true` for this to work -->
|
||||
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||
regex='icu4j-.*\.jar' />
|
||||
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||
regex='lucene-analysis-icu-.*\.jar' />
|
||||
|
||||
<dataDir>${solr.data.dir:}</dataDir>
|
||||
|
||||
|
@@ -26,10 +26,11 @@
|
||||
<luceneMatchVersion>8.8.1</luceneMatchVersion>
|
||||
|
||||
<!-- Include contributed libraries that we use in DSpace. -->
|
||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lib/'
|
||||
regex='icu4j-.*\.jar'/>
|
||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lucene-libs/'
|
||||
regex='lucene-analyzers-icu-.*\.jar'/>
|
||||
<!-- NOTE: When using Solr >=9.8, you MUST start Solr with `-Dsolr.config.lib.enabled=true` for this to work -->
|
||||
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||
regex='icu4j-.*\.jar' />
|
||||
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||
regex='lucene-analysis-icu-.*\.jar' />
|
||||
|
||||
<dataDir>${solr.data.dir:}</dataDir>
|
||||
|
||||
|
@@ -24,12 +24,13 @@
|
||||
-->
|
||||
<config>
|
||||
<luceneMatchVersion>8.8.1</luceneMatchVersion>
|
||||
|
||||
|
||||
<!-- Include contributed libraries that we use in DSpace. -->
|
||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lib/'
|
||||
regex='icu4j-.*\.jar'/>
|
||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lucene-libs/'
|
||||
regex='lucene-analyzers-icu-.*\.jar'/>
|
||||
<!-- NOTE: When using Solr >=9.8, you MUST start Solr with `-Dsolr.config.lib.enabled=true` for this to work -->
|
||||
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||
regex='icu4j-.*\.jar' />
|
||||
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||
regex='lucene-analysis-icu-.*\.jar' />
|
||||
|
||||
<dataDir>${solr.data.dir:}</dataDir>
|
||||
|
||||
|
@@ -7,14 +7,18 @@
|
||||
#
|
||||
|
||||
# To build use root as context for (easier) access to solr cfgs
|
||||
# docker build --build-arg SOLR_VERSION=8.11 -f ./dspace/src/main/docker/dspace-solr/Dockerfile .
|
||||
# docker build --build-arg SOLR_VERSION=9.8 -f ./dspace/src/main/docker/dspace-solr/Dockerfile .
|
||||
# This will be published as dspace/dspace-solr:$DSPACE_VERSION
|
||||
|
||||
ARG SOLR_VERSION=8.11
|
||||
ARG SOLR_VERSION=9.8
|
||||
|
||||
FROM docker.io/solr:${SOLR_VERSION}-slim
|
||||
# NOTE: Cannot use the "-slim" image because it doesn't include the extra modules needed for DSpace (e.g. icu4j)
|
||||
FROM docker.io/solr:${SOLR_VERSION}
|
||||
|
||||
ENV AUTHORITY_CONFIGSET_PATH=/opt/solr/server/solr/configsets/authority/conf \
|
||||
# Customize SOLR_OPTS to enable "<lib>" tags in solrconfig.xml files
|
||||
# Also set several environment variables to save configset paths used below
|
||||
ENV SOLR_OPTS="-Dsolr.config.lib.enabled=true" \
|
||||
AUTHORITY_CONFIGSET_PATH=/opt/solr/server/solr/configsets/authority/conf \
|
||||
OAI_CONFIGSET_PATH=/opt/solr/server/solr/configsets/oai/conf \
|
||||
SEARCH_CONFIGSET_PATH=/opt/solr/server/solr/configsets/search/conf \
|
||||
STATISTICS_CONFIGSET_PATH=/opt/solr/server/solr/configsets/statistics/conf \
|
||||
|
Reference in New Issue
Block a user