Skip to main content

Disable Sitecore content testing functionality for CMS mode only

Content tests let you test alternative variants of your website's content to find out which pages, components, or combinations of components are the most effective with visitors. The content or components that you are comparing in a test should be designed to achieve the same goal. 

Content testing is not working properly with CMS mode only. In other words, if you are disabling the analytical function (xDB).

First of all, let me list down the software versions that I used in this article
  • Sitecore Experience Platform 8.1 rev. 160519 (8.1 Update-3)
  • Solr 4.10.4 - recommended Solr version for Sitecore 8.1
To disable content testing you should patch one of the Sitecore settings called ContentTesting.AutomaticContentTesting.Enabled. You will need to set this value to false


Moreover, you can find few exceptions on crawling log files

4352 12:15:39 WARN  Could not compute value for ComputedIndexField: impact for indexable: sitecore://master/{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}?lang=en&ver=1
Exception: System.Reflection.TargetInvocationException
Message: Exception has been thrown by the target of an invocation.
Source: mscorlib
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Sitecore.Reflection.ReflectionUtil.CreateObject(Type type, Object[] parameters)
   at Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper)
   at Sitecore.Configuration.Factory.GetInnerObject(XmlNode paramNode, String[] parameters, Boolean assert)
   at Sitecore.Configuration.Factory.AssignProperties(XmlNode configNode, String[] parameters, Object obj, Boolean assert, Boolean deferred, IFactoryHelper helper)
   at Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper)
   at Sitecore.Configuration.Factory.CreateObject(String configPath, String[] parameters, Boolean assert)
   at Sitecore.Analytics.Reporting.ReportingQueryBase..ctor(ReportDataProviderBase reportProvider, CachingPolicy cachingPolicy)
   at Sitecore.ContentTesting.Analytics.Reporting.TimeRangeItemBasedReportingQuery..ctor(ID queryItemId, ReportDataProviderBase reportProvider, CachingPolicy cachingPolicy)
   at Sitecore.ContentTesting.Analytics.Reporting.TestPotentialQuery..ctor(ReportDataProviderBase reportProvider)
   at Sitecore.ContentTesting.ContentSearch.ComputedIndexFields.TestPotentialMetricBase.ComputeFieldValue(IIndexable indexable)
   at Sitecore.ContentSearch.SolrProvider.SolrDocumentBuilder.AddComputedIndexField(IComputedIndexField computedIndexField, ParallelLoopState parallelLoopState, ConcurrentQueue`1 exceptions)

Nested Exception

Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
Source: Sitecore.Analytics.MongoDB
   at Sitecore.Analytics.Reporting.MongoDbReportDataSource..ctor(String connectionStringName)

These exceptions are related to three computed fields that Sitecore is trying to index them. You can find these fields on the below files 
  • \App_Config\Include\ContentTesting\Sitecore.ContentTesting.Solr.IndexConfiguration.config - If you are using Solr
  • \App_Config\Include\ContentTesting\Sitecore.ContentTesting.Lucene.IndexConfiguration.config - if you are using Lucene
Fields names are:
  • impact
  • potential
  • recommendation
In order to remove these exceptions you have to remove these lines form the above mentioned files, or follow the Sitecore best practices and create a separate config file under Include folder that will be responsible for removing these fields.

I've created these config files to make it easier for you :)
  • If you are using Solr, please use zz.Disable.Content.Testing.Solr.config
  • If you are using Lucene, please use zz.Disable.Content.Testing.Lucene.config 
Downloads:

Comments

Popular posts from this blog

Sitecore setup using Solr master/slave index replication

Solr is a great search engine that Sitecore recommends. Solr is highly reliable and scalable, providing distributed indexing, replication and load-balanced querying, centralized configuration and more. In this article, I will explain how to setup Solr master/slave index replication and configure Sitecore in order to use it. Note: I assume that Solr is in place and Sitecore basic configuration is implemented as explain in Sitecore documentation ( https://doc.sitecore.net/sitecore_experience_platform/81/setting_up_and_maintaining/search_and_indexing/walkthrough_setting_up_solr ) First of all, let me list down the list of software versions that I used in this article Sitecore Experience Platform 8.1 rev. 160519 (8.1 Update-3) Solr 4.10.4 - recommended Solr version for Sitecore 8.1 What is Solr Index Replication? Index Replication distributes complete copies of a master index to one or more slave servers. The master server continues to manage updates to the index. All...