Sitecore Solr Integration

Sitecore Solr Integration

What are we trying to achieve? : Sitecore Solr Integration

What versions are being used for integration? : Sitecore 8.2, Solr 5.1

Is there any compatibility matrix for Sitecore Solr Integration? : Yes, Sitecore Solr Compatibility matrix is here.

How do we achieve this? : Please follow the documentation below.

Sitecore  Solr  Integration Steps:

1-        Solr Installation

2-        Solr Configuration, Creating cores  and building the Indices 

3-        Misc. Configurations

 

A-       Solr Installation :

–             Solr versions before 5.0  were not stand alone servers, so to install them                   as a service we needed software like Jetty as service helper to manage                     the Solr as service

–             With 5.0 version and ahead now Solr itself runs as a standalone service.

–             So if you decide how you want to manage Solr –

o    as a service  – you will need another software NSSM to act as service helper

o    standalone – you can execute Solrservice.exe from the installation folder

–             In this documentation we will try to use Solr as a service.

–             Below will be the list of requirements

o    NSSM – Solr service helper

  • Download NSSM and copy to d:solrnssm.
  • We only need nssm.exe for our purpose.
  • We will create a few PowerShell/Batch files for NSSM to install, start, stop, restart or uninstall Solr.
  • To install Solr
    • Install.ps1
  • To start Solr
    • Start.ps1
  • To stop Solr
    • Stop.bat
  • To restart Solr
    • Retart.ps1
  • To Un-Install Solr
    • UnInstall.bat
  • Please see the snapshot below the files under folder d:solrnssm :
nssm
  • What is in Install.ps1

cd “D:solrnssm”

nssm install “Solr5.1.0”  “D:solrSolr5.1solr_start.bat”

Note: NSSM is installing Solr as service name “Solr5.1.0” by executing the batch file solr_start.bat.

 

  • What is in solr_start.bat

cd “D:solrsolr-5.1.0server”

java -Xms64M -Xmx256M -Djetty.port=8999  -Djava.util.logging.config.file=etc/logging.properties -jar D:solrsolr-5.1.0serverstart.jar

Note: start.jar is executed using specified port and memory arguments.

 

  • What is in Restart.bat

net stop Solr5.1.0

net start Solr5.1.0

Note: First stop the Solr by name “Solr5.1.0”, then start it.

 

  • What is in Start.ps1

net start Solr5.1.0

Note: First start the Solr by name “Solr5.1.0”

 

  • What is in Stop.bat

net stop Solr5.1.0

Note: First stop the Solr by name “Solr5.1.0”

 

  • What is in UnInstall.bat

nssm remove Solr5.1.0 confirm

Note: Removes “Solr5.1.0” service

 

B-        Solr Configuration :

–             Use Install.ps1 and Start.ps1 scripts to install and start the Solr service.

–             You can see the following screen when Solr runs successfully.

 

–             Now let’s configure Solr config files

o    Go to folder – “serversolrconfigsetsbasic_configsconf “ to config the file below:

  • Schema.xml
  • You can generate the Schema file using the Sitecore.
  • See screenshot below:

  • Also configure the<field> and <dynamicfield> tags under <fields> tag , <fieldType> elements in a <types> tag  and any <types>: <fieldType name=”pint”  to class=”solr.TrieIntField“/>

 

 

  • Finally save the file

 

o    Go to folder – “serversolr “ to config the files below:

  • Solr.xml
  • This file is used for configuring the main Solor config settings

 

 

  • SolrCores.xml
  • This file is used for configuring the cores
  • The following coresneeds to be configured:

o    sitecore_web_index

o    sitecore_master_index

o    sitecore_core_index

o    sitecore_analytics_index

o    social_messages_web

o    social_messages_master

o    sitecore_marketing_asset_index_master

o    sitecore_marketing_asset_index_web

o    sitecore_testing_index

o    sitecore_suggested_test_index

o    sitecore_fxm_master_index

o    sitecore_fxm_web_index

o    sitecore_list_index

  • See snapshot below:

 

 

o    To add new core :

  • Use the add button on Solor Admin panel:

  • Or Alternative use the CREATE method exposed by the service:
  • The call will be something like this:

$port=8787

$instanceRoot=”D:SolrSolr5.1”

$name=”Sitecore_master_rebuild_index”

http://localhost:$port/solr/admin/cores?action=CREATE&name=$name&instanceDir=$instanceRootserversolrconfigsetsbasic_configs&schema=schema.xml&config=solrconfig.xml&dataDir=$instanceRootserversolrcores$namedata

 

o    To Rebuild the indexes :

  • Use Sitecore Indexing manager to index .

  • Rebuild indexes will look like this:

 

C-        Misc. Configurations :

  1. Configure Sitecore to Use Solr instead of Lucene.
  2. Install Solr Support package
  3. Install Solr support package from Sitecore

o   Unzip the Sole support package and get all the binaries from it and copy to the Sitecore bin folder, The following binaries will be copied:

  • Castle Windsor
  • Unity
  • Ninject
  • Autofac

 

  1. Enable Solr Configs
  • Remove the .example suffix from any configs having ‘Solr’ word in file name from the path websiteApp_ConfigInclude

 

                                                            iii.        Disable Lucene Configs

  • Add .disabled suffix to any configs having ‘Lucene’ word in file name from the path websiteApp_ConfigInclude

 

 

After having done this configuration, you should be good to go.

 

Advertisements

Author: Mohd Naeem

I am a Sitecore, Amazon Web Services and Microsoft Certified Technology Specialist with over 15 plus year of experience and have served as Sitecore Consultant at organizations like Mary Kay Inc, Frontier Communications, GoDaddy and EZCorp. My main technology areas are Sitecore, AWS, Bigdata…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s