support.intershop.com Open in urlscan Pro
195.110.60.37  Public Scan

Submitted URL: https://support.intershop.com/kb/Y29327
Effective URL: https://support.intershop.com/kb/index.php/Display/Y29327
Submission: On July 11 via manual from DK — Scanned from DK

Form analysis 1 forms found in the DOM

Name: NavSearchFormGET /kb/index.php

<form action="/kb/index.php" method="get" name="NavSearchForm"><input type="hidden" name="c" value="Search"><input type="hidden" name="qoff" value="0">
  <div class="flex-rows-center">
    <div class="flex-11a" style="padding-right:5px"><input maxlength="200" autocomplete="on" style="width:100%" type="text" name="qtext"></div>
    <div class="flex-00a"><input title="Search" type="submit" value="Search"></div>
  </div>
</form>

Text Content

The Intershop Customer Support website uses only technically necessary cookies.
We do not track visitors or have visitors tracked by 3rd parties. Further
information on privacy can be found in the Intershop Privacy Policy and Legal
Notice.
OK
 * Feature Request
 * Feedback
 *     
 * Log On

 * Customer Support
 * Knowledge Base
 * Product Resources
 * Tickets

 * Personal Library

 * 
 * Knowledge Base

 * Menu
 * Sitemap

Related Documents
Overview - Intershop Commerce Management
Overview - Infrastructure, Scaling and Performance
Overview - Build, Assembly and Deployment
●
Concept - Continuous Delivery Tools (valid to 7.10)
●
Concept - Gradle Assembly Tools
●
Concept - Gradle Build Tools
●
Concept - Gradle Deployment Tools
●
Concept - Planning an Intershop 7 Deployment
●
Cookbook - Custom Fix Recipes (valid to 7.4 CI)
●
Cookbook - Deployment of Solr Search Adapters
●
Cookbook - Deployment Tools ICM 7.10
●
Cookbook - Deployment Tools ICM 7.8
●
Cookbook - Deployment Tools ICM 7.9
●
Cookbook - Encryption
●
Cookbook - Gradle Assembly Tools
●
Cookbook - Gradle Assembly Tools (valid to 7.8)
●
Cookbook - Gradle Build Tools
●
Cookbook - Gradle Deployment Tools (7.4 CI - ICM 7.7)
●
Cookbook - Gradle Developer Workflow
●
Cookbook - Gradle Developer Workflow (valid to Gradle Tools 2.7)
●
Cookbook - Setup CI Infrastructure
●
Cookbook - Setup CI Infrastructure (valid to Gradle Tools 2.3)
●
Cookbook - Setup CI Infrastructure (valid to Gradle Tools 2.7)
●
Cookbook - Setup CI Infrastructure (valid to GradleTools 1.1)
●
Cookbook - Setup CI Infrastructure (valid to GradleTools 2.1)
●
Cookbook - Solr Cloud Server
●
Guide - Deployment Solr Cloud Server
●
Guide - General Database Setup (valid to 7.10)
●
Guide - Quick Database Setup With DBCA Templates
●
Guide - Quick Project Setup
●
Guide - Quick Project Setup (valid to Gradle Tools 2.7)
●
Guide - Quick Project Setup (valid to Gradle Tools 2.11)
●
Guide - Setup Oracle XE as Intershop Development Database (valid to 7.10)
Overview - Public Release Notes - Gradle Tools
●
Reference - Gradle Assembly Tools
●
Reference - Gradle Build Tools
●
Reference - Gradle Deployment Tools
●
Support Article - Authenticate a User Against an LDAP System
●
Support Article - Build Configuration Updated to Gradle Tools Version 2.11
●
Support Article - Build Fails With an Exception Concerning Gradlew
●
Support Article - Change Server Properties (UAT/PROD) for CaaS Customers
●
Support Article - Configure a Custom Deployment Logic after a Defined System
Task
●
Support Article - Configure an Alternative Phantom JS Driver Download URL
●
Support Article - Creating Another Application Within an Already Existing
Channel
●
Support Article - CSV Mapping Template Handling
●
Support Article - Deployment Stops While Looking for Oracle 19 Drivers
●
Support Article - Gradlew Commands Fail with Stack Map Frame Exception
●
Support Article - Install Intershop 7.4 CI on Windows
●
Support Article - Installation and Basic Configuration of Apache Solr Search on
a Dedicated Apache Tomcat Server Instance for ICM
●
Support Article - Keep Existing Development Environments Working After Importing
Intershop 7.5.2 / 7.5.3 to the Nexus
●
Support Article - OpenSSL Error Unable to Load Config Info From
/usr/local/ssl/openssl.cnf
●
Support Article - Preparing a Rolling Deployment Without Downtime
●
Support Article - Re-Deployment of Intershop 7.4 CI Overwrites the Valid
"encryption.properties"
●
Support Article - Simple Deployment of an ICM Demo Server
●
Support Article - Tomcat Listener JreMemoryLeakPreventionListener Causes a Full
Garbage Collection Every Hour
●
Video Tutorial - Continuous Integration (valid to Intershop 7.4 CI)
●
Video Tutorial - Intershop CI Structure Overview
●
Video Tutorial - Prepare Your Artifact Repository Server (valid to 7.10)
●
Video Tutorial - Simple Deployment of a Production System
●
Video Tutorial - Simple Setup of a Development-System (valid to 7.10)
Document Properties
Kbid
Y29327
Last Modified
31-May-2022
Added to KB
12-Feb-2020
Public Access
Everyone
Status
Online
Doc Type
Guidelines, Concepts & Cookbooks
Product
ICM 7.10
Related Product
 * Release - SOLR4 Search Adapter 29.0.3
 * Release - SOLR4 Search Adapter 29.0.2
 * Release - SOLR4 Search Adapter 29.0.4
 * Solr Cloud Search Adapter 3
 * Solr Cloud Search Adapter 2
 * Release - Solr Cloud Search Adapter 3.0.5
 * Release - Solr Cloud Search Adapter 3.2.0

Home ⋮ Knowledge Base



COOKBOOK - DEPLOYMENT OF SOLR SEARCH ADAPTERS

https://support.intershop.com/kb/Y29327
Share this document


TABLE OF CONTENTS



Table Of Contents
 * 1 Introduction
 * 2 Recipe: Continue To Use Solr4 Adapter (valid to ICM 7.10.30.2)
 * 3 Recipe: Use SolrCloud Adapter
 * 4 Recipe: Continue To Use SolrCloud Adapter
 * 5 Recipe: Dependency Changes Solr Adapter Cartridge




Product Version

7 .10

Product To Version

7 .10Status

New Labels


1 INTRODUCTION

Starting with ICM 7.10.16.6 the default search adapter included in the
responsive starter store (component set a_responsive) changed.

This cookbook provides different recipes that describe the necessary changes to
existing assemblies to use the different adapters that are provided as separate
component sets. 

For ICM 7.10.31.2+; Solr4 is not compatible anymore (see also Announcement -
Solr 4 - ICM and Tomcat 9 Compatibility). An additional update of the Solr Cloud
Connector (release 3.0.0+) is necessary.





1.1 REFERENCES

 * Guide - Deployment Solr Cloud Server
 * Recipe - Setup project using Solr Cloud


2 RECIPE: CONTINUE TO USE SOLR4 ADAPTER (VALID TO ICM 7.10.30.2)


2.1 PROBLEM

An existing project uses the Solr search adapter that was included in the
business component and this adapter should still be used. 


2.2 SOLUTION

 1. Add version properties to reference the Solr4 component set version.
 2. Include Solr host type.
 3. Include Solr cartridges from the Solr4 component set.
 4. Add deploy.gradle and apply the SolrDeploymentPlugin.
 5. Adapt dependencies of custom cartridges from
    com.intershop.business:ac_search_solr to com.intershop.solr4:ac_search_solr.


2.3 DISCUSSION

 1. Add a version properties file solr4.version to reference the used versions
    of the Solr4 component set and the used web archive containing the Solr4
    server.
    
    solr4.version
    
    com​.intershop​.solr4​:* = 29​.0​.2
    com​.intershop​:solr4war = 1​.0​.2
    

 2. Reference the created version file in your build.gradle of your component
    set by adding the following lines to the versionRecommendation - provider
    section.
    
    build.gradle
    
    versionRecommendation {
        provider {		
            // solr4 + war dependencies
            properties​('solr4', file​('solr4​.version')) {}
    ​.​.​.

 3. Include the Solr host type into the host type section within the
    build.gradle of your project assembly.
    
    project_assembly/build.gradle
    
    hostTypes {        
    
            solr {
                include ​(
                    'com​.intershop​:3rd_tomcat',
                    'com​.intershop​.infrastructure​:runtime',
                    'com​.intershop​.infrastructure​:tcm',
                    'com​.intershop​:solr4war',
                ) {
                    transitive = false
                }
    
                includeLocal = true
            }
    ​.​.​.

 4. Add the deployment of the Solr4 configuration to the share section by adding
    a line to include 'com.intershop.solr4:solr4_config' into the share
    deployment.
    
    project_assembly/build.gradle - share include
    
    	hostTypes {
    		share {
                include ​(
                    'com​.intershop​.solr4​:solr4_config',
    ​.​.​.

 5. Add the cartridges of the Solr4 component set to the cartridge list of the
    assembly by appending the cartridges to the existing cartridge list order.
    
    project_assembly/build.gradle - cartridges
    
         cartridges {
    
            def solr4ProductionCartridges = [
                'ac_search_solr',
                'ac_search_solr_bo',
            ]
    
            include​('com​.intershop​.solr4​:ac_search_solr',
                    'com​.intershop​.solr4​:ac_search_solr_bo',
                                in​:[development, test, production])
    ​.​.​.
            order = listFromAssembly​('com​.intershop​.assembly​:commerce_management_b2c') + storefrontCartridges + initCartridges + developerCartridges + testCartridges + solr4ProductionCartridges
         }

 6. To deploy the Solr host type and configurations, it is necessary to add the
    SolrDeployment plugin to your deployment. Add a deploy.gradle to your
    assembly:
    
    project_assembly/deploy.gradle
    
    apply plugin​: com​.intershop​.deploy​.intershop​.IntershopPlugins
    apply plugin​: com​.intershop​.deploy​.intershop​.SolrDeploymentPlugin
    

 7. Disable the use of the inherited deploy.gradle to use the deploy.gradle of
    your assembly by removing 'deploy.gradle' from the included artifacts:
    
    project_assembly/build.gradle
    
     assembly {
         inheritFrom​('com​.intershop​.assembly​:commerce_management_b2c') {
    -        includeArtifacts type​:['deploy-gradle', 'deploy-settings-gradle']
    +        includeArtifacts type​:['deploy-settings-gradle']
         }

 8. Instead of referring to the Solr cartridge from com.intershop.business, the
    new component Solr4 needs to be used in the build.gradle of cartridges that
    extend the Solr adapter.
    
    cartridge/build.gradle
    
    //for using base classes from the adapter
        compile group​: 'com​.intershop​.solr4', name​: 'ac_search_solr'
    
    //to directly use solrj classes
        compile ​("org​.apache​.solr​:solr-solrj​:4​.8​.1")
        {
        exclude module​: 'log4j'
        exclude module​: 'wstx-asl'
        }


3 RECIPE: USE SOLRCLOUD ADAPTER


3.1 PROBLEM

The SolrCloud search adapter should be used in a project.


3.2 SOLUTION

 1. Setup a SolrCloud server.
 2. Add version properties to reference the SolrCloud component set version.
 3. Include SolrCloud cartridges from the SolrCloud component set.
 4. Add the SolrCloud deployment plugin.


3.3 DISCUSSION

 1. To use the SolrCloud search adapter, set up and deploy a SolrCloud Server.
    Please follow the Guide - Deployment Solr Cloud Server.

 2. Add a version property file solrcloud.version to reference the used version
    of the SolrCloud component set.
    
    solrcloud.version
    
    com​.intershop​.solrcloud​:* = 2​.0​.3
    

 3. Reference the created version file in your build.gradle of your component
    set by adding the property file to the versionRecommendation - provider
    section.
    
    build.gradle
    
    versionRecommendation {
        provider {		
            // solrcloud dependencies
            properties​('solrcloud', file​('solrcloud​.version')) {}
    ​.​.​.

 4. Add the solrcloud_config to the include section of the share host type. Add
    the cartridges of the SolrCloud component set to the cartridge list of the
    assembly by appending the cartridges to the existing cartridge list order.
    
    project_assembly/build.gradle - cartridges
    
    	hostTypes {
    		share {
                include ​(
                    'com​.intershop​.solrcloud​:solrcloud_config',
    
    ​.​.​.
         cartridges {
    
            def solrcloudProductionCartridges = [
                'ac_solr_cloud',
                'ac_solr_cloud_bo',
            ]
    
            include​('com​.intershop​.solrcloud​:ac_solr_cloud',
                    'com​.intershop​.solrcloud​:ac_solr_cloud_bo',
                                in​:[development, test, production])
    ​.​.​.
            order = listFromAssembly​('com​.intershop​.assembly​:commerce_management_b2c') + storefrontCartridges + initCartridges + developerCartridges + testCartridges + solrcloudProductionCartridges
         }

 5. To configure ICM for using the SolrCloud server, it is necessary to set the
    zooKeeperHostList and clusterIndexPrefix properties in your environment
    properties. To deploy these environment properties for your ICM server,
    create a deploy.gradle file in your project assembly directory with the
    following content:
    
    project_assembly/deploy.gradle
    
    apply plugin​: com​.intershop​.deploy​.intershop​.IntershopPlugins
    apply plugin​: com​.intershop​.deploy​.intershop​.SolrCloudDeploymentPlugin
    
    deployment {
        if ​(target​.includeShare) {
            filters {
                overrideProperties​('solrCloudProperties') {
                    dir target​.shareDirectory
                    include 'system/config/cluster/appserver​.properties'
    				properties['solr​.zooKeeperHostList'] = solrcloud​.zooKeeperHostList
                    properties['solr​.clusterIndexPrefix'] = solrcloud​.clusterIndexPrefix
                }
            }
        }
    }

 6. Disable the use of the inherited deploy.gradle to use the deploy.gradle of
    your assembly.
    
    project_assembly/build.gradle
    
     assembly {
         inheritFrom​('com​.intershop​.assembly​:commerce_management_b2c') {
    -        includeArtifacts type​:['deploy-gradle', 'deploy-settings-gradle']
    +        includeArtifacts type​:['deploy-settings-gradle']
         }

 7. Add the SolrCloud extension to your settings.gradle:
    
    
    Note
    
    In a CaaS context, the settings.gradle is dynamically created by the
    Operations team. 
    However, this step is still mandatory for local development. 
    
    settings.gradle
    
    solrcloud {
    	zooKeeperHostList = 'localhost​:9983'
    	clusterIndexPrefix = 'demoICMserver'
    }
    
    If it is an update from Solr4 to SolrCloud, remove all accesses to solr()
    sections.


4 RECIPE: CONTINUE TO USE SOLRCLOUD ADAPTER


4.1 PROBLEM

In a project, the separate SolrCloud search adapter was already used and the
steps from Recipe - Setup project using Solr Cloud were applied. This adapter
should still be used.


4.2 SOLUTION

 1. Remove the exclusion of Solr host type.
 2. Remove the exclusion of cartridges.
 3. Remove the replacement of ac_search_solr cartridges with the SolrCloud
    cartridges.


4.3 DISCUSSION

 1. Adapt the build.gradle to remove the sections that exclude dependencies and
    remove the Solr host type:
    
    project_assembly/build.gradle
    
     assembly {
         inheritFrom​('com​.intershop​.assembly​:commerce_management_b2x') {
             includeArtifacts type​:['deploy-settings-gradle']
    -		excludeDependencies '3rd_solr_war_int', 'ac_search_solr', 'ac_search_solr_bo', 'ac_search_solr_test', 'ac_eureka_solr'
         }
     	
     	hostTypes {
     	
    -		solr {
    -            exclude group​:'com​.intershop', module​:'3rd_tomcat'
    -            exclude group​:'com​.intershop​.infrastructure', module​:'runtime'
    -            exclude group​:'com​.intershop​.infrastructure', module​:'tcm'
    -            exclude group​:'com​.intershop​.business', module​:'3rd_solr_war_int'
    -        }	
    
    

 2. Remove the replacement of previous Solr cartridges with the SolrCloud
    cartridges and just add the solrcloudProductionCartridges to the cartridge
    list. Please also see Recipe: Use SolrCloud Adapter. 
    
    project_assembly/build.gradle
    
    -        def commerceCartridgesCartridges = listFromAssembly​('com​.intershop​.assembly​:commerce_management_b2x')
    -        def solrCloudCartridges = commerceCartridgesCartridges​.plus​(commerceCartridgesCartridges​.indexOf​('ac_search_solr'), solrCloudProductionCartridges)
    -        solrCloudCartridges = solrCloudCartridges​.plus​(solrCloudCartridges​.indexOf​('ac_search_solr_test'), solrCloudTestCartridges)
    -       
    -        order = solrCloudCartridges+ storefrontCartridges + initCartridges + developerCartridges + testCartridges
    +        order = listFromAssembly​('com​.intershop​.assembly​:commerce_management_b2c') + storefrontCartridges + initCartridges + developerCartridges + testCartridges + solrcloudProductionCartridges 
    
    


5 RECIPE: DEPENDENCY CHANGES SOLR ADAPTER CARTRIDGE


5.1 PROBLEM

The project used the previously included search adapter cartridges and
referenced the adapter cartridge(s) in project cartridges to e.g., extend
functionality of these cartridges.


5.2 SOLUTION

In case you use a custom cartridge that extends the Solr4 Adapter the
dependencies must be changed from the group business to solr4:

cartridge/build.gradle

-    compile group​: 'com​.intershop​.business', name​: 'ac_search_solr'
+    compile group​: 'com​.intershop​.solr4', name​: 'ac_search_solr'
+    compile ​("org​.apache​.solr​:solr-solrj​:4​.8​.1")
+    {
+      exclude module​: 'log4j'
+      exclude module​: 'wstx-asl'
+    }


The project must also be adapted as described in Recipe: Continue To Use Solr4
Adapter.

If the custom cartridge extends the Solr Cloud Adapter, the dependencies should
look like:

cartridge/build.gradle

-    compile group​: 'com​.intershop​.business', name​: 'ac_search_solr'
+    compile group​: 'com​.intershop​.solrcloud', name​: 'ac_solr_cloud'
+    compile ​("org​.apache​.solr​:solr-solrj​:8​.5​.1")
+    {
+       exclude module​:'jcl-over-slf4j'
+    }



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.

Support Europe
+49 (3641)501600
support@intershop.de
Corporate Headquarters
Intershop Communications AG
Steinweg 10
07743 Jena
Germany
Support America
(415) 844-3730
support@intershop.com
 * Tech Blog
 * Corporate Website
 * Legal Notice
 * Privacy Policy
 * Desktop Version Mobile Version
 * Appearance:     

Customer Support
Home Page
How To Contact Us
ISO 9001 Certified
Support Plans
Additional Services
Product Support Matrix
Support Newsletter
Contract Datasheet
Feedback Form
Support News Archive
Knowledge Base
Home Page
Search
Personal Library
Product Resources
Home Page
Search
Custom Fixes for your Account
Difference Report
Product Support Matrix
Service Connector Matrix
Tickets
Home Page
Search
Ticket Statistics
New Ticket
Modification Request
Data Request