Performance optimizations when using Solr


Description

When using Solr as the search provider for Sitecore, there are a variety of Sitecore settings that can be tuned to improve performance. Symptoms might include high memory consumption by Sitecore services, slow average response times for the xConnect search services, or the inability of Solr to complete durable back-ups of the xDB index. 

Note: These are Sitecore specific settings, not Solr ones. Refer to the Solr documentation as the reference on configuring Solr.

Solution

ContentSearch.SearchMaxResults

Controls the number of search results the search provider is requested to retrieve.

A large number of requested documents puts a strain on the Solr server, the network, and Sitecore, which has to deserialize all the results.

The value of the setting can be overridden on per-query basis using Take or Page LINQ extensions.
We recommend you always specify the number of requested documents in the query.

As a safety net, you might want to reduce the value of the ContentSearch.SearchMaxResults setting.
The exact value must be carefully evaluated as part of the overall Sitecore implementation and thoroughly tested as part of the development process.

Note that ContentSearch.SearchMaxResults must be set in all Sitecore XP instances.

MaximumCommitMilliseconds

Controls how often xDB index data is committed in Solr.

Sitecore XP can place a heavy load on the xConnect search service in certain high traffic scenarios. When using Solr as the search provider, the implementation might observe high average response times for the xConnect search service. This can be addressed by tuning this setting.

If a performance issue is observed, MaximumCommitMilliseconds setting can be changed to a bigger value in the \App_data\jobs\continuous\IndexWorker\App_data\Config\Sitecore\SearchIndexer\sc.Xdb.Collection.IndexWriter.SOLR.xml file for the xConnect search service:

<MaximumCommitMilliseconds>600000</MaximumCommitMilliseconds>

Note: If having close to real-time updates of xDB index is critical for the solution, the setting must be as close to the default value as possible. 

Notes

For more information about the xConnect search indexing service, see the following:

For more about setting up Solr for Sitecore XP and the maximum search results: