Configure a search and indexing provider

Abstract

Configuring a search and indexing provider in xDB.

When you configure servers you also need to choose a search and indexing provider. You can choose Lucene, Solr or a combination of the two depending on your business purpose and the type of server architecture you want to implement.

Depending on which provider you choose there is a different set of configuration steps to follow. If you use Lucene follow the steps in this topic and disable all Solr configuration files. If you use Solr follow the steps in this topic and disable all Lucene configuration files.

Useful links:

Solr recommendations

Important

We strongly recommend that you use Solr in all scaled environments.

Solr is also always required if you have a dedicated processing server and/or multiple content management servers. Content management servers use the Analytics index to search for contacts in the Experience Profile. To enable this, the content management server must have access to a search index. Lucene is a file based indexing system, which means if the index is not located on the server that the request is coming from you have to ensure that indexes across all servers remain in sync. Solr supports calls over HTTP(S) which means that the sitecore_analytics_index is available to all servers in the environment that require it (content management and processing servers).

It is technically possible to configure Lucene on a scaled environment by using file replication or UNC to synchronize indexes across all servers but we do not recommend this approach.

Note

If you are running the xDB Cloud Edition this already includes an integrated indexing service for contact search.

To configure the Lucene search and indexing provider:

  1. Download the spreadsheet that lists of all the configuration files that you must enable or disable for each server type.

    Note

    This spreadsheet is also available to download from each server configuration topic.

  2. Click the drop down in the Search Provider Used column.

  3. Clear all the default selections.

  4. Select Base and Lucene is used.

  5. Click OK.

This filter enables you to see a list of all the configuration files you need to enable or disable if you are using Lucene as your search and indexing provider.

To configure the Solr search and indexing provider:

  1. Download the spreadsheet that lists of all the configuration files that you must enable or disable for each server type.

    • For Sitecore 8.1, Update 1, and Update 2, download the Config Enable Disable Excel spreadsheet for Sitecore 8.1.

    • For Sitecore 8.1 Update 3, download the Config Enable Disable Excel spreadsheet for Sitecore 8.1 Update 3.

    Note

    This spreadsheet is also available to download from each server configuration topic.

  2. Click the drop down in the Search Provider Used column.

  3. Clear all the default selections.

  4. Select Base and Solr is used.

  5. Click OK.

This filter enables you to see a list of all the configuration files you need to enable or disable if you are using Solr as your search and indexing provider.

First ensure that you have enabled all Solr configuration files required on a content delivery server. If you use multiple cores, no further configuration is necessary.

Note

Use the 64-bit version of the Java Virtual Machine (JVM) for production servers. Solr allocates 512 MB of memory by default. If you require Solr to have access to more memory you can adjust these limits when Solr starts up. See the official Solr documentation for more information.

Multiple Solr cores

For optimal performance we recommend that you always use multiple cores for your indexes. If you store all indexes in the same core, when you update an index the contents of all the other indexes in the same core are also cleared. As it is possible to rebuild indexes individually, some indexes will be left empty after rebuild. If you store each default index in a separate Solr core the names of these cores should match the names of the Sitecore indexes.

Note

Multiple Solr cores may improve the performance of your search and indexing. For example, you should use separate cores for each index in a production environment and only share indexes on a single core in a development environment. The Solr website provides more detailed guidance and advice when configuring Solr.

Renaming Solr cores

You can change the default Solr core names to your own custom names. If you want to change the default Solr core names and use your own custom names, then you also need to change the names in each Sitecore Solr configuration file.

To set a Solr core for a Sitecore index:

  1. In the App_Config\Include folder, open the configuration file where the Sitecore index is declared. For example, in the Sitecore.ContentSearch.Solr.Index.Core.config file.

  2. Navigate to the section where the index is declared: configuration/sitecore/contentSearch/configuration/indexes/:

    <index id="..." type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, 
     Sitecore.ContentSearch.SolrProvider">
       <param desc="name">$(id)</param>
       <param desc="core">$(id)</param>
    
  3. Change value of the core parameter to the custom name of the Solr core you want to use.

    Follow the same procedure for each Solr configuration file where you want to change the Solr core name.