Out of the box Solr integration for Sitecore 7.x, 8.0 and 8.1 supports Solr 4.x and does not work with SolrCloud that was introduced in Solr 4.10.x versions and was fully implemented in Solr 5.x.
This patch is not an official Sitecore solution to integration with SolrCloud but rather an experimental work that aims to fill in the gap while an official solution is built.
This repo contains Sitecore patch 449298. The patch extends OOTB Solr integration with Sitecore to add basic support for SolrCloud using
SwitchOnRebuildSolrSearchIndex index type.
When one configures SolrCloud instance to be used with Sitecore, one needs to have a load balancer to sit in front of SolrCloud instance and configure Sitecore to talk to common end point configured in the load balancer.
There are a few options that one can use to secure Solr admin interfaces:
- Configure reverse proxy server that would control access to Solr admin URLs. It could be IIS on Windows or an http container on Linux (apache, resin, etc.)
- Use patch 438539 that implements basic authentication using SolrNet HttpWebRequestFactory.
- If one requires Kerberos authenticaiton, consider implementing your own HttpWebRequestFactory that would work over Kerberos protocol.
Sitecore Solr integration uses SolrNet assembly to work with Solr instance. This patch requires an IoC container that injects proper implementations for SolrNet interfaces. It depends on patch Sitecore.Support.405677.
This patch does not work without one of IoC container integrations implemented by 405677.
The patch was developed with Solr 5.2.1 and tested up to Solr 5.5.1.
This patch works only with SolrCloud instance configured to use
ClassicIndexSchemaFactory which means
schema.xml file must be used. Make sure
schemaFactory configuration in
solrconfig.xml file looks like this:
Main configuration settings for the patch can be found in
Sitecore.Support.449298.config file. Here are the configuration settings that come with the patch:
ContentSearch.Solr.Connection.RestartWhenEstablishedsets recovery strategy when Solr connection is established. Default and recommended value:
AlwaysSitecore gets restarted every time when Solr connection is re-established.
InitialFailSitecore gets restarted only if Solr connection wasn't available during initial application start.
OffSitecore doesn't get restarted. Solr connection may not be initialized if it was not available during initial application start.
ContentSearch.Solr.PropertyStoreDatabasespecifies database name to save alias-collection mappings. Default value:
ContentSearch.Solr.IndexingInstanceassigns the instance name of dedicated Sitecore installation for indexing operations. When empty, all indexing operations are triggered on this Sitecore instance. Default value:
When dedicated indexing instance is established, all instances should have the name of dedicated indexing instance set in this setting.
ContentSearch.Solr.OptimizeOnRebuild.Enabledif enabled, runs index optimization command once rebuild is completed. Default and recommended value:
ContentSearch.Solr.ReadOnlyStrategyspecifies strategy that is used for read only indexes. Default value:
ContentSearch.Solr.EnforceAliasCreationif enabled, index aliases will be created on Solr side during index initialization process. Default value:
The patch uses a scheduled task that checks whether the Solr instance up and running and can react when it comes back online according to the behavior set by
Other configuration files
Sitecore.Support.449298.SwitchOnRebuild.IndexConfig.ReuseCollection.config.example are provide as examples how to configure SwitchOnRebuild Solr index. Explore these files to understand index configuration changes that need to be implemented to patch index definitions.
The patch includes the following files:
This patch is licensed under the Sitecore Corporation A/S License.
Downloads are available via GitHub Releases.