mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-08 02:24:18 +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:
|
additional_contexts:
|
||||||
solrconfigs: ./dspace/solr/
|
solrconfigs: ./dspace/solr/
|
||||||
args:
|
args:
|
||||||
SOLR_VERSION: "${SOLR_VER:-8.11}"
|
SOLR_VERSION: "${SOLR_VER:-9.8}"
|
||||||
networks:
|
networks:
|
||||||
dspacenet:
|
dspacenet:
|
||||||
ports:
|
ports:
|
||||||
@@ -105,10 +105,15 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
# Keep Solr data directory between reboots
|
# Keep Solr data directory between reboots
|
||||||
- solr_data:/var/solr/data
|
- 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:
|
# 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
|
# * 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:
|
# * 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`
|
# 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:
|
entrypoint:
|
||||||
- /bin/bash
|
- /bin/bash
|
||||||
- '-c'
|
- '-c'
|
||||||
@@ -126,7 +131,8 @@ services:
|
|||||||
cp -r /opt/solr/server/solr/configsets/qaevent/* qaevent
|
cp -r /opt/solr/server/solr/configsets/qaevent/* qaevent
|
||||||
precreate-core suggestion /opt/solr/server/solr/configsets/suggestion
|
precreate-core suggestion /opt/solr/server/solr/configsets/suggestion
|
||||||
cp -r /opt/solr/server/solr/configsets/suggestion/* 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:
|
volumes:
|
||||||
assetstore:
|
assetstore:
|
||||||
pgdata:
|
pgdata:
|
||||||
|
@@ -21,7 +21,7 @@ import jakarta.persistence.JoinColumn;
|
|||||||
import jakarta.persistence.ManyToOne;
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.SequenceGenerator;
|
import jakarta.persistence.SequenceGenerator;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import org.apache.solr.common.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.dspace.content.DSpaceObject;
|
import org.dspace.content.DSpaceObject;
|
||||||
import org.dspace.core.Context;
|
import org.dspace.core.Context;
|
||||||
import org.dspace.core.HibernateProxyHelper;
|
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,
|
protected void addFacetIndex(SolrInputDocument document, String field, String sortValue, String authority,
|
||||||
String fvalue) {
|
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
|
// the separator for the filter can be eventually configured
|
||||||
String separator = DSpaceServicesFactory.getInstance().getConfigurationService()
|
String separator = DSpaceServicesFactory.getInstance().getConfigurationService()
|
||||||
.getProperty("discovery.solr.facets.split.char");
|
.getProperty("discovery.solr.facets.split.char");
|
||||||
|
@@ -27,7 +27,7 @@ import com.google.common.io.Files;
|
|||||||
import com.opencsv.CSVReader;
|
import com.opencsv.CSVReader;
|
||||||
import com.opencsv.exceptions.CsvException;
|
import com.opencsv.exceptions.CsvException;
|
||||||
import org.apache.commons.lang3.function.TriFunction;
|
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.AbstractIntegrationTestWithDatabase;
|
||||||
import org.dspace.builder.CollectionBuilder;
|
import org.dspace.builder.CollectionBuilder;
|
||||||
import org.dspace.builder.CommunityBuilder;
|
import org.dspace.builder.CommunityBuilder;
|
||||||
@@ -52,7 +52,7 @@ public class MetadataExportFilteredItemsReportIT extends AbstractIntegrationTest
|
|||||||
private int[][] itemCountPerSubjectThenPerAuthor = {{12, 15}, {9, 4}};
|
private int[][] itemCountPerSubjectThenPerAuthor = {{12, 15}, {9, 4}};
|
||||||
|
|
||||||
private String filename;
|
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();
|
private ConfigurationService configurationService = DSpaceServicesFactory.getInstance().getConfigurationService();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -26,10 +26,11 @@
|
|||||||
<luceneMatchVersion>8.8.1</luceneMatchVersion>
|
<luceneMatchVersion>8.8.1</luceneMatchVersion>
|
||||||
|
|
||||||
<!-- Include contributed libraries that we use in DSpace. -->
|
<!-- Include contributed libraries that we use in DSpace. -->
|
||||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lib/'
|
<!-- NOTE: When using Solr >=9.8, you MUST start Solr with `-Dsolr.config.lib.enabled=true` for this to work -->
|
||||||
regex='icu4j-.*\.jar'/>
|
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lucene-libs/'
|
regex='icu4j-.*\.jar' />
|
||||||
regex='lucene-analyzers-icu-.*\.jar'/>
|
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||||
|
regex='lucene-analysis-icu-.*\.jar' />
|
||||||
|
|
||||||
<dataDir>${solr.data.dir:}</dataDir>
|
<dataDir>${solr.data.dir:}</dataDir>
|
||||||
|
|
||||||
|
@@ -26,10 +26,11 @@
|
|||||||
<luceneMatchVersion>8.8.1</luceneMatchVersion>
|
<luceneMatchVersion>8.8.1</luceneMatchVersion>
|
||||||
|
|
||||||
<!-- Include contributed libraries that we use in DSpace. -->
|
<!-- Include contributed libraries that we use in DSpace. -->
|
||||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lib/'
|
<!-- NOTE: When using Solr >=9.8, you MUST start Solr with `-Dsolr.config.lib.enabled=true` for this to work -->
|
||||||
regex='icu4j-.*\.jar'/>
|
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lucene-libs/'
|
regex='icu4j-.*\.jar' />
|
||||||
regex='lucene-analyzers-icu-.*\.jar'/>
|
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||||
|
regex='lucene-analysis-icu-.*\.jar' />
|
||||||
|
|
||||||
<dataDir>${solr.data.dir:}</dataDir>
|
<dataDir>${solr.data.dir:}</dataDir>
|
||||||
|
|
||||||
|
@@ -24,12 +24,13 @@
|
|||||||
-->
|
-->
|
||||||
<config>
|
<config>
|
||||||
<luceneMatchVersion>8.8.1</luceneMatchVersion>
|
<luceneMatchVersion>8.8.1</luceneMatchVersion>
|
||||||
|
|
||||||
<!-- Include contributed libraries that we use in DSpace. -->
|
<!-- Include contributed libraries that we use in DSpace. -->
|
||||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lib/'
|
<!-- NOTE: When using Solr >=9.8, you MUST start Solr with `-Dsolr.config.lib.enabled=true` for this to work -->
|
||||||
regex='icu4j-.*\.jar'/>
|
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||||
<lib dir='${solr.install.dir}/contrib/analysis-extras/lucene-libs/'
|
regex='icu4j-.*\.jar' />
|
||||||
regex='lucene-analyzers-icu-.*\.jar'/>
|
<lib dir='${solr.install.dir}/modules/analysis-extras/lib/'
|
||||||
|
regex='lucene-analysis-icu-.*\.jar' />
|
||||||
|
|
||||||
<dataDir>${solr.data.dir:}</dataDir>
|
<dataDir>${solr.data.dir:}</dataDir>
|
||||||
|
|
||||||
|
@@ -7,14 +7,18 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
# To build use root as context for (easier) access to solr cfgs
|
# 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
|
# 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 \
|
OAI_CONFIGSET_PATH=/opt/solr/server/solr/configsets/oai/conf \
|
||||||
SEARCH_CONFIGSET_PATH=/opt/solr/server/solr/configsets/search/conf \
|
SEARCH_CONFIGSET_PATH=/opt/solr/server/solr/configsets/search/conf \
|
||||||
STATISTICS_CONFIGSET_PATH=/opt/solr/server/solr/configsets/statistics/conf \
|
STATISTICS_CONFIGSET_PATH=/opt/solr/server/solr/configsets/statistics/conf \
|
||||||
|
Reference in New Issue
Block a user