Document Tree
Document Properties
Kbid
29X223
Last Modified
07-Jul-2023
Added to KB
09-Sep-2019
Public Access
Everyone
Status
Online
Doc Type
Release Notes
Product
  • ICM 7.10
  • ICM 11
  • Solr
Public Release Note - SolrCloud Search Service Adapter 2

Introduction

The SolrCloud Search Service Adapter connects the Intershop Commerce Management (ICM) with a Solr server that runs in cloud mode. It replaces the Solr search service adapter delivered with the ICM release and uses a more recent version of Solr and its features. The search index configuration and maintenance in Intershop Commerce Management is almost the same but uses the Schema API and Configsets API provided by the newer Solr server version. Thus, the Solr Server is separated and independent of the ICM application server cluster.

References

Version Information and Dependencies

Intershop Commerce Management

SolrCloud Search Service Adapter

Solr Server

7.10.10+

2.0.3 - 2.1.2

8.2.x

7.10.10+

2.2.1

8.2 to 8.6.2

7.10.23+ - 7.10.30.0+

2.3.0 - 2.3.5

8.2 to 8.7.0

7.10.23+ - 7.10.30.0+

2.3.6

8.2 to 8.11

Due to Solr™ Security News | 2021-12-10, Apache Solr affected by Apache Log4J CVE-2021-44228, it is recommended to use Solr version >=8.11.1 or to follow the mitigation advices provided in the security news article.

Solr Versions 8.9.0 and higher only work with adapter version 2.3.6.

In 8.8.0 there is a backward compatibility issue with SolrJ, see SOLR-15145.

Solr 8.6.3 and higher requires additional configuration, see ISSEA-167 - Can't Create a Configset - Solr Cloud 8.6.3 8.7.

Listed Solr server versions were tested to work with the listed SolrCloud Adapter version. In general, minor and patch version upgrades of the Solr server are usually compatible with the adapter.


The following table lists the cartridges contained in the SolrCloud Adapter:

Cartridge

Description

Required

ac_solr_cloud

The main implementation cartridge of the adapter defining and registering the search service.

(tick)

ac_solr_cloud_bo

Additional functionality for the Commerce Management application. It provides additional configuration options for the index management, especially for suggest and spell-check.

(tick)

solrcloud_config

Additional configuration to be deployed to share.

(tick)

Deployment

The cartridges need to be deployed as a replacement of the Solr cartridges delivered by default (ac_search_solr, ac_search_solr_bo). These are part of the ICM component set f_business or (better to say) intershop7 assembly. Starting with ICM version 7.10.16.6, the Responsive Starter Store is preconfigured to use the SolrCloud Search Service Adapter by default. Please see the Cookbook - Deployment of Solr Search Adapters on how to setup your project using ICM 7.10.16.6 and higher. For previous ICM versions please follow the Recipe - Setup Project Using Solr Cloud. The deployment of the SolrCloud Adapter 2.0.0 requires additional deployment of solrcloud_config. Add the 'com.intershop.solrcloud:solrcloud_config' line to the includes of the share host type.

The SolrCloud Search Service Adapter requires a Solr server that runs in cloud mode. Please see the Guide - Deployment Solr Cloud Server on how to setup a Solr server for development or production. This guide also provides information on how to configure ICM to use a Solr server.

Data Replication

The data replication of indexes has changed with this adapter implementation. The standard ICM file replication is not used anymore to replicate the index data. Instead, the adapter comes with its own replication decorator that uses the backup/restore collection API functionality of Solr. Please see Guide - Solr Replication for the description and configuration of the index replication with the SolrCloud server.

Data replication with a Solr Cloud cluster requires to mount a shared file system at the same path on each Solr node. The ICM must configure the property solr.cloudBackupLocation to point to this shared location.

Changelog

Release 2.3.6

To fix issues while closing SolrClient objects in a cache implemented with the common ICM cache framework (71243 AlreadyClosedException), the component SolrClientCache is no longer used and is deprecated.

If customized code is used, SolrClientCache must be replaced with SolrServerProvider instead.

Bugfixes

ID

Title

64443

Index Replication fails - Invalid backup - Solr 8.9.0

70139

Replication for New Search Index/EDIT Deleted Search Index/LIVE fails

71243

AlreadyClosedException when updating Solr search index (refix 70688)

Release 2.3.5

Bugfixes

ID

Title

70688

AlreadyClosedException during Search Index Build

Release 2.3.4

Bugfixes

Release 2.3.3

Bugfixes

Release 2.3.2

Bugfixes

Release 2.3.1

Improvements

Bugfixes

Release 2.3.0

Updated Intershop Commerce Management Base Version

The base ICM version of the adapter is now 7.10.23.1 The adapter is built and tested with this version. Thus it is recommended to update ICM 7.10.23.1 or higher to use this adapter.

Custom Code Migration

With reworking the SolrCloudClient caching to use a single client object, the following changes were required. Custom code based on these classes must be changed:

  • com.intershop.adapter.search_solr.server.SolrServerProvider
    Removed methods: get(SolrIndex index) and get(Domain domain, String indexName, String node) Always use the added method get() instead.

  • com.intershop.adapter.search_solr.server.Server was moved to com.intershop.adapter.search_solr.server.SolrServer

  • Methods that send requests to the Solr server that require a collection name do have an additional string parameter. The collection name is to be retrieved with SolrCollectionAdmin.getCollectionName(domainName, indexID).

  • Instead of:

    Old Code

    	QueryResponse queryResponse = provider.get(idx).query(solrQuery, METHOD.POST);

    use:

    New Code

    	String collectionName = SolrCollectionAdmin.getCollectionName(idx.getDomain().getDomainName(), idx.getIndexID());	
    	QueryResponse queryResponse = provider.get().query(collectionName, solrQuery, METHOD.POST);


The BackupAndRestoreSolrCloudIndexesDecorator was changed:

  • The deprecated method com.intershop.adapter.search_solr.server.staging.BackupAndRestoreSolrCloudIndexesDecorator#readAndInstantiateSearchIndexesOfSite(Domain site) is removed.

  • The BackupAndRestoreSolrCloudIndexesDecorator keeps track of the backed up edit system indexes now. Indexes that are deleted in the edit system are not available in the backup anymore and will be deleted in the live system as well. In addition, the restored collections are now checked to contain the document count of the backup. The respective methods for restoring the index in the decorator and in the com.intershop.adapter.search_solr.server.impl.SolrCollectionAdmin do have an additional parameter expectedNumFound and old restore methods are deprecated now. (ISSEA-155 - Data Replication Fails Trying to Restore Live Index Deleted on Edit)

Improvements

Bug Fixes

Release 2.2.1

Bug Fixes

Release 2.2.0

Solr Server 8.6

The Solr Server version 8.6.0 in conjunction with data replication requires to set the backup location as an allowed path for the Solr server cluster. You can specify the allowed paths by setting a system property via environment in the startup script:

solr.in.sh

SOLR_OPTS="$SOLR_OPTS -Dsolr.allowPaths=/mnt/solr_backup"

Please see also the respective Solr Upgrade Notes.

Improvements

Bug Fixes

Release 2.1.2

Bug Fixes

Release 2.1.1

Bug Fixes

Release 2.1.0

Improvements

Bug Fixes

Release 2.0.3

Bug Fixes

Release 2.0.2

Improvements

Bug Fixes

Release 2.0.0

Improvements

Bug Fixes


Disclaimer
The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.
Home
Knowledge Base
Product Releases
Log on to continue
This Knowledge Base document is reserved for registered customers.
Log on with your Intershop Entra ID to continue.
Write an email to supportadmin@intershop.de if you experience login issues,
or if you want to register as customer.