Document Tree
Document Properties
Kbid
29Y873
Last Modified
17-Jun-2024
Added to KB
12-May-2021
Public Access
Everyone
Status
Online
Doc Type
Release Notes
Product
  • ICM 7.10
  • Solr
Public Release Note - SolrCloud Search Service Adapter 3

Introduction

The SolrCloud Search Service Adapter connects the Intershop Commerce Management (ICM) with a Solr server that runs in cloud mode. The search index configuration and maintenance in the ICM back office uses the Schema- and ConfigSet-REST-APIs provided by the newer Solr server version. Thus, the Solr Server is separate and independent of the ICM application server cluster.

References

Version Information and Dependencies

Intershop Commerce Management

SolrCloud Search Service Adapter

Solr Server

7.10.31+

3.0.0 - 3.0.1

8.2 - 8.6.3

7.10.31 - 7.10.37

3.0.3 - 3.0.7

8.6.3 - 8.11

7.10.38+

3.1.0 - 3.6.3

8.11

7.10.41.0+

3.8.0

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 advice given in the security news article.

There is a backward compatibility issue with SolrJ (SOLR-15145). Solr 8.6.3/Solr 8.7+ requires additional configuration: (ISSEA-167 - Can't Create a Configset - Solr Cloud 8.6.3 8.7).

The 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

Please see Cookbook - Deployment of Solr Search Adapters on how to set up your project.

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

Solr server versions higher than 8.6.2 require setting up authentication or enabling upload of config sets from the ICM application server.

solr.in.sh

SOLR_OPTS="$SOLR_OPTS -Dsolr.disableConfigSetsCreateAuthChecks=true"

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 SolrCloud cluster requires mounting 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.

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

solr.in.sh

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

Changelog

Release 3.8.0

Bugfixes

ID

Title

96731

Move Solr schema synchronization to configuration saving/indexing

Release 3.7.1

Notes

This release is built with ICM 7.10.41.0 and contains the same bug fixes as release 3.6.3.

Bugfixes

ID

Title

94700

No update of ish-config.xml after search index config changes

Release 3.6.3

Bugfixes

ID

Title

94700

No update of ish-config.xml after search index config changes

Release 3.6.2

Bugfixes

ID

Title

92323

ConcurrentModificationException in BackupAndRestoreSolrCloudIndexesDecorator during staging

Release 3.6.1

Bugfixes

ID

Title

91139

Object suggest index build - offline content index causes NullPointerException

Release 3.6.0

Features

ID

Title

90316

Support multiple value attributes in object suggest search indexing

85890

Improve DELETE request handling

Bugfixes

ID

Title

90245

SKU is not usable as separate entry in object suggest type search

Release 3.5.2

Bugfixes

ID

Title

88378

Automatic search index update after product deletion via back office is not reflected in search index list

87853

Restore collection fails with ServerException

87729

Concurrent upload of default config set fails with "configuration already exists in zookeeper"

Release 3.5.0

Notes

When using custom code that extends or overrides the BackupAndRestoreSolrCloudIndexesDecorator you need to be aware of the changed signature of the switchAliases method. The method switchAliases(HashMap<Domain, Set<String>> processedIndexesByDomain) is deprecated and the new method switchAliases(Map<Domain, Set<String>> processedIndexesByDomain) is used now (87520).

A new property solr.RebuildInconsistentIndexes controls the behavior with inconsistent indexes during the replication of indexes. If the property is set to true, inconsistent indexes are attempted to be rebuilt during the replication. The default is false, so the replication will fail if inconsistent indexes are detected as it was the default behavior before (86951).

Features

ID

Title

87503

Parallelize restore & backup of search indexes during replication

86951

Rebuild inconsistent search indexes during replication

Bugfixes

ID

Title

87520

Replication fails on BackupAndRestoreSolrCloudIndexesDecorator.onPostReplicationHook due to Solr Cloud OverseerCollectionMessageHandler.waitForCoreNodeName method exception

Release 3.4.1

Bugfixes

ID

Title

86162

Wrong collection alias set when entry in aliases is missing before replication but a collection exists

86068

Collection named like the alias is not deleted

85538

Solr Cloud adapter code throws "Closing JDBC connection via finalize method" exception

83786

‘Index locked’ message is missing

Release 3.4.0

Notes

Fix 82573 required changing the signature of method public void addHit in class om.intershop.adapter.search_solr.internal.objectsuggest.SuggestCollector from public void addHit(SolrInputDocument inputDoc) to public void addHit(SolrInputDocument inputDoc, Object docFlagValue). Custom implementations that extend this class need to pass the onlineFlag document value as additional parameter to correctly count online hits only.

Features

ID

Title

83458

Asynchronous multi-threaded sending of SolrInputDocument batches

83270

Upgrade SolrCloud adapter to use SolrJ 8.11.2

Bugfixes

ID

Title

82573

Object suggest index counts offline products

82501

SolrFilterAttributeEntry endless loop in getLevel with invalid category paths

82181

Index build fails with 'collection not found'

Release 3.2.5

Notes

Synonyms are uploaded as full synonyms via _schema_analysis_synonyms_default.json if and only if the Solr server has enabled authentication.

This is checked by the Solr Adapter. An Upload request is used instead of multiple requests if the needed single operations exceed 15 deletes (81264).

Bugfixes

ID

Title

82501

SolrFilterAttributeEntry endless loop in getLevel with invalid category paths

82181

Index build fails with 'collection not found'

81915

Deleting index from back office does not delete Solr config set

81266

Synonyms with a keyword containing a '%' percent sign cannot be deleted

81264

Synonyms import can cause read timeout

Release 3.2.4

Bugfixes

ID

Title

81125

Undefined fields after replication causing unavailability of storefront on Live

81091

Adding orchanging Solr synonyms in ICM back office can lead to error pages

Release 3.2.3

Bugfixes

ID

Title

70256

Inconsistent search results after search index replication in Solr cluster with multiple nodes/replicas

78724

Solr index build creates too much "info" logs

Release 3.2.2

Bugfixes

ID

Title

76036

Remove deprecated ProductAV2 data provider

78205

A Limit Count other than "-1" for the "Category" filter causes catalogs in the storefront to disappear

77247

ManagedSynonymGraphFilterFactory not initialized correctly after replication of index to Live

38842

[IS-22341] Solr: No Show all/Show less generated for category filter

Release 3.2.1

Bugfixes

ID

Title

75911

Change of query stop words does not reload the affected Solr collection

74958

Updating synonym handling issues in back office

49953

Content search in storefront leads to missing titles for helpdesk topics

Release 3.2.0

Features

Configuration of Solr Cloud Server Connection

The Solr server connection configuration can use an alternative property to connect to the server without using the Zookeeper host list. This connection property can contain a single common service endpoint (e.g., a Solr Server Kubernetes setup with Solr Operator) or a list of Solr server nodes.

ac_solr_cloud.properties

# A Solr server URL or a list of Solr server URLs running in SolrCloud mode (separated by ',' or ';')
# Default: none - if not present, solr.zooKeeperHostList is used
#solr.cloudSolrServerURLs=http://localhost:8983/solr

The URLs must start with the protocol (http/https) and must include the context path.(/solr)

BackupAndRestoreDecorator is bound via Guice (74700)

The deployment of the Solr cloud adapter does not overwrite the staging.properties to add the decorator. The decorator is bound to the processor via Guice framework now.

Updated SolrJ Client Library

We updated the used client library to current version 8.11.1. Older versions will have conflicts with the dependencies of ICM vs SolrJ dependencies.

Bugfixes

ID

Title

74517

Pagination of variation products does not work (via product REST resource)

74431

Performance of Solr queries with group.facet=true is bad

Performance of Result Grouping Queries (74431)

The default behavior of counting filter entries for product variations has changed. Due to the heavy performance impact of the group.facet parameter with a higher number of products and higher number of facets, the parameter is not used anymore to calculate the counts. This will affect search index configurations indexing product variations with GroupMasterUUID. In addition, group.facet has also limitations with calculating counts for numeric data types.

However, to retain the previous behavior, it is recommended to add the parameter to the Solr query with code that extends the default SolrIndexExtension implementation via Guice.

Release 3.1.0

This release is based upon ICM 7.10.38 LTS and is not compatible anymore with 7.10.32 LTS releases.

Features

The used query parser changed from Dismax to EDismax. Queries can directly use extended syntax such as wildcards and boolean operators. Fielded search and multi-word synonyms are supported now.

Full index build (re-build) now uses a separate collection to fully build the index beside the currently used online index. Aliasing is used to switch over atomically to the newly built collection. The collection naming scheme has changed to include the time suffix: <cluster-index-prefix><domain-name>-<index-id><yyyyMMddHHmmss>. The previous collection is kept and is deleted after a new successful index re-build. This allows to switch back the alias to the previous collection (manually). Please note as there are now two collections on the Solr server for one index on the ICM side, the resource usage will be higher on the Solr server side.

ID

Title

70384

Make the Solr index build job more robust (Aliasing + Time Suffixed Collections)

60289

[ISSEA-175] Replace dismax with edismax

Bugfixes

ID

Title

69807

Error message in Solr log: <jmx> is no longer supported

69805

Warn message in Solr Adapter log "FieldType SpatialRecursivePrefixTreeFieldType does not allow omitNorms to be specified in schema"

61994

[IS-32405] Solr Adapter reads all collections from Solr

Release 3.1 also contains bug fixes from 3.0.x releases up to 3.0.5.

Release 3.0.7

Bugfixes

ID

Title

77247

ManagedSynonymGraphFilterFactory not initialized correctly after replication of index to Live

Release 3.0.6

Bugfixes

ID

Title

75911

Change of query stop words does not reload the affected Solr collection

74958

Updating synonym handling issues in back office

Release 3.0.5

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

70612

Suggested search terms disappear again due to wrong default target data type of QueryTerm in SFObject Search Suggest Solr Index

71243

AlreadyClosedException when updating Solr search index

71440

New Java product search fallback to query search does not work

Release 3.0.4

Bugfixes

70139

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

70256

Inconsistent Search Results after Search Index Replication in Solr Cluster with Multiple Nodes/Replicas

Release 3.0.3

 Bugfixes

64443

Index replication fails - invalid backup - Solr 8.9.0

65087

Replicated Solr schema changes are not visible - Solr 8.8+

69230

Initial index replication fails with 'Collection Not Found'

Release 3.0.1

Bugfixes

64594

NPE in CatalogFilterViewingHelper::isCurrentlyVisible in case the given CatalogCategory is "null"

63472

[ISSEA-188] BackupAndRestoreDecorator is not added to the SearchIndexesStagingProcessor

63822

[ISSEA-191] Replication failure - deletion of not existing configset fails

Release 3.0.0

This release is dedicated to ICM releases 7.10.31 and higher (Tomcat 9 Release). The adapter release contains the required dependency changes for Tomcat 9. There are no functional or API changes in the adapter compared to adapter release 2.3.4.


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.