Return to doc.sitecore.com

  Config file changes in Sitecore CMS and DMS 7.2 rev. 140228 compared to CMS and DMS 7.1 rev. 140130


This update requires you to make changes to the following files:

Depending on search provider you should also update appropriate files below:

The clean configuration files for Sitecore CMS and DMS 7.2 rev. 140228 can be downloaded using the following links:

Changes to Web.config

Tip: Most customers have only applied a small number of changes to the Web.config file. In that case, we recommend that you simply download the clean config file using the link above and re-apply any changes that you've made to save time and to reduce the risk of making mistakes when adding the new settings, pipelines, etc. to the file.

The following changes have been made to the web.config file of Sitecore CMS 7.2 rev. 140228 (Initial Release) as compared to the web.config file of Sitecore CMS 7.1 rev. 140130 (Update-1):

  1. In the <publish> pipeline, add a new processor of type OverridePublishContext before processor of type AddLanguagesToQueue:
    <!-- This processor overrides the DisableDatabaseCaches and the MaxDegreeOfParallelism properties of the PublishContext class.
         The DisableDatabaseCaches property of the PublishContext is overridden and set to true if child items are being published,
         including when you perform a full site publish.
         If only a single item is being published, the property is set to false.
         If you disable this processor, the publish context uses the value of the Publishing.DisableDatabaseCaches setting for all the
         publishing operations.

         If only a single item is being published, the MaxDegreeOfParallelism property of the PublishContext is overridden to 1.
         This disables parallel publishing for single item publishing operations. -->
    <processor type="Sitecore.Publishing.Pipelines.Publish.OverridePublishContext, Sitecore.Kernel" />
  2. In the <pipelines> section, add the following pipeline, after the <publishItem> pipeline:
    <getItemReferences>
      <processor type="Sitecore.Publishing.Pipelines.GetItemReferences.AddItemCloneReferences, Sitecore.Kernel" />
      <processor type="Sitecore.Publishing.Pipelines.GetItemReferences.AddFileDropAreaMediaReferences, Sitecore.Kernel" />
      <processor type="Sitecore.Publishing.Pipelines.GetItemReferences.AddItemLinkReferences, Sitecore.Kernel" />
      <processor type="Sitecore.Publishing.Pipelines.GetItemReferences.AddItemAliasReferences, Sitecore.Kernel" />
    </getItemReferences>
  3. In the <pipelines> section, add the following pipeline, after the <resolveRenderingDatasource> pipeline:
    <!--  Is used by the Personalize the Component and Test the Component dialog boxes. The pipeline returns examples of the items that are returned by a datasource. -->
    <getDatasourceExamples>
      <processor type="Sitecore.Pipelines.GetDatasourceExamples.GetIDBasedDatasourceExample, Sitecore.Kernel" />
    </getDatasourceExamples>
  4. In the comment above the <sites> section, add the following description of the analyticsDefinitions attribute, after the description of the inherits attribute:
    analyticsDefinitions: The database where the Analytics definition items for this site are stored. To use the content database for the site, specify "content".
                              If this attribute is not specified, the current context database is used. If the context database is not set, for example, for code
                              that runs in a background job, the value of the DefaultDefinitionDatabase setting in the Sitecore.Analytics.config file is used.
  5. In the <mediaTypes> section, change the value of the <forceDownload> element for <mediaType name="PDF file" …> from false to true. The entire <mediaType name="PDF file" …> section now looks like this in a clean Sitecore installation:
    <mediaType name="PDF file" extensions="pdf">
      <mimeType>application/pdf</mimeType>
      <forceDownload>true</forceDownload>
      <sharedTemplate>system/media/unversioned/pdf</sharedTemplate>
      <versionedTemplate>system/media/versioned/pdf</versionedTemplate>
    </mediaType>
  6. In the <settings> section, add the following setting, after the "Caching.CacheKeyIndexingEnabled.ItemCache" setting:
    <!--  CACHING - CACHE KEY INDEXING ENABLED - ITEM PATHS CACHE
          Determines whether or not the system uses extended indexed storage for the cache keys of the ItemPathsCache.
                
          Using indexed storage for cache keys can in certain scenarios significantly reduce the time it takes to perform partial cache
          clearing of the ItemPathsCache. This setting is useful on large solutions where the size of this cache is very large and where
          partial cache clearing causes a measurable overhead.
          However, enabling this setting on content management servers with many editors, many languages, and/or many content items can
          degrade performance.
          Default value: false
    -->
    <setting name="Caching.CacheKeyIndexingEnabled.ItemPathsCache" value="false"/>
  7. In the <settings> section, add the following setting, before the "Jobs.QueueProcessingInterval" setting:
    <!--  JOBS - EXECUTE IN MANAGED THREAD POOL
          This setting specifies whether jobs should be executed in Sitecore's managed thread pool.
          If true, jobs are queued to the managed thread pool.
          If false, Sitecore creates a new thread for each job that is started.
          Default value: true
    -->
    <setting name="Jobs.ExecuteInManagedThreadPool" value="true" />
  8. In the <settings> section, add the following setting, before the "LinkItemNotFoundUrl" setting:
    <!--  LINK DATABASE - UPDATE DURING PUBLISH
          If true, the system performs incremental updates to the link database during publishing operations.
          If false, the system does not perform updates to the link database for item operations that occur in the context of
          a publishing operation.
          Default: true
    -->
    <setting name="LinkDatabase.UpdateDuringPublish" value="true" />
  9. In the <settings> section, add the following settings, after the "Publishing.CompareRevisions" setting:
    <!--  PUBLISHING - DISABLE DATABASE CACHES
          Provides a default value for the PublishContext class that indicates whether to populate the database caches with the data that
          is retrieved during publishing.
          The value you specify is used for incremental publishing operations. For other publishing operations, the default value
          specified in this setting is overridden by the OverridePublishContext processor in the publish pipeline to match the type of
          publishing operation.
          If true, Sitecore publishes the items as usual, but does not populate the database caches with the item data that is retrieved
          during the publishing operation. This can significantly reduce the amount of memory used by the ASP.NET worker process,
          especially in solutions with a large number of items, versions, and languages.
          If false, the item data is cached during publishing as usual.
          Default value: false
    -->
    <setting name="Publishing.DisableDatabaseCaches" value="false"/>
    <!-- PUBLISHING - EXECUTE IN MANAGED THREAD POOL
         This setting specifies whether publishing jobs should be executed in Sitecore's managed thread pool.
         If true, publishing jobs are queued to the managed thread pool.
         If false, Sitecore creates a new thread for each publishing job.
         Default value: false
    -->
    <setting name="Publishing.ExecuteInManagedThreadPool" value="false" />
  10. In the <settings> section, add the following setting, after the "Publishing.LogInterval" setting:
    <!--  PUBLISHING - MAX DEGREE OF PARALLELISM
          This setting allows you to limit the number of concurrent publishing operations.
          You must enable the /App_Config/Include/Sitecore.Publishing.Parallel.config file for this setting to take effect.

          Important: changing the value of this setting to anything other than the default value '1' and enabling the
          Sitecore.Publishing.Parallel.config file will increase the load on the database server.

          If the value is set to -1, there is no limit on the number of concurrently running operations.
          Default value: 1
    -->
    <setting name="Publishing.MaxDegreeOfParallelism" value="1" />
  11. In the <settings> section, add the following setting, after the "Publishing.PublishDialogPollingInterval" setting:
    <!-- PUBLISHING PUBLISH EMPTY ITEMS
         Specifies whether empty items (i.e. items without publishable versions) should be published.
         Default value: false
    -->
    <setting name="Publishing.PublishEmptyItems" value="false" />
  12. In the <settings> section, add the following setting, after the "Publishing.PublishingInstance" setting:
    <!--  PUBLISHING - RECOVERY - ENABLED
          Determines whether the system should restart interrupted publishing operations after a system failure, such as server restart.
          To activate this feature, you must enable the /App_Config/Include/Sitecore.Publishing.Recovery.config file which overrides this
          setting and provides additional configuration.
          Default value: false
    -->
    <setting name="Publishing.Recovery.Enabled" value="false"/>
  13. In the <settings> section, add the following settings, after the "RequireLockBeforeEditing" setting:
    <!--  RULES - ITEM EVENT HANDLERS - RUN DURING PUBLISHING
          Specifies whether the rule item handlers should be fired during publishing when an item is saved, deleted, or when an item
          version is removed.
          This setting only affects the instance that runs the publishing operation.
          To suppress rules execution on content delivery instances, use the Rules.ItemEventHandlers.SupportedDatabases setting.
          Default value: true
    -->
    <setting name="Rules.ItemEventHandlers.RunDuringPublishing" value="true"/>
    <!--  RULES - ITEM EVENT HANDLERS - SUPPORTED DATABASES
          Specifies a pipe-separated list of database names. For example: "core|master".
          The rule item event handlers that normally fire when an item is saved, deleted, or an item version is removed, are only fired
          for the specified databases.
          For example, on content delivery instances, you can use this setting to disable the rule item event handlers in the web database
          to prevent performance degradation during publishing due to rules execution.
          If blank, the item event handlers are executed for every Sitecore database.
          Default value: ""
    -->
    <setting name="Rules.ItemEventHandlers.SupportedDatabases" value=""/>
  14. In the <settings> section, add the following setting, before the "Preview.DefaultSite" setting:
    <!-- PREVIEW AS ANONYMOUS
         This setting specifies whether Sitecore will use the Anonymous user account when you preview an item.
         If true, Sitecore uses the Anonymous user account when you preview an item.
         If false, Sitecore uses the current user account when you preview an item.
         Default value: true
    -->
    <setting name="Preview.AsAnonymous" value="true" />
  15. In the <log4net> section, add the following node inside each of the existing four appender sections (the <appender name="LogFileAppender" …>, <appender name="WebDAVLogFileAppender"…>, <appender name="SearchLogFileAppender"…>, and <appender name=" CrawlingLogFileAppender"…> nodes):
    <encoding value="utf-8" />
    After this change, the four nodes look like this in a clean Sitecore installation:
    <appender name="LogFileAppender" type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging">
      <file value="$(dataFolder)/logs/log.{date}.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
      </layout>
      <encoding value="utf-8" />
    </appender>
    <appender name="WebDAVLogFileAppender" type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging">
      <file value="$(dataFolder)/logs/WebDAV.log.{date}.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
      </layout>
      <encoding value="utf-8" />
    </appender>
    <appender name="SearchLogFileAppender" type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging">
      <file value="$(dataFolder)/logs/Search.log.{date}.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
      </layout>
      <encoding value="utf-8" />
    </appender>
    <appender name="CrawlingLogFileAppender" type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging">
      <file value="$(dataFolder)/logs/Crawling.log.{date}.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
      </layout>
      <encoding value="utf-8" />
    </appender>
  16. In the <log4net> section, add the following appender node, after the <appender name="CrawlingLogFileAppender" …> node:
    <appender name="PublishingLogFileAppender" type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging">
      <file value="$(dataFolder)/logs/Publishing.log.{date}.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
      </layout>
      <encoding value="utf-8" />
    </appender>
  17. In the <log4net> section, add the following logger node, after the <logger name="Sitecore.Diagnostics.Crawling" …> node:
    <logger name="Sitecore.Diagnostics.Publishing" additivity="false">
      <level value="INFO" />
      <appender-ref ref="PublishingLogFileAppender" />
    </logger>
  18. Optional step: In the <log4net> section, remove the following node for both the <logger name="Sitecore.Diagnostics.Search" …> and <logger name="Sitecore.Diagnostics.Crawling" …> nodes:
    <encoding value="utf-8" />
    After this change, the two nodes look like this in a clean Sitecore installation:
    <logger name="Sitecore.Diagnostics.Search" additivity="false">
      <level value="INFO"/>
      <appender-ref ref="SearchLogFileAppender"/>
    </logger>
    <logger name="Sitecore.Diagnostics.Crawling" additivity="false">
      <level value="INFO"/>
      <appender-ref ref="CrawlingLogFileAppender"/>
    </logger>
  19. In the <system.web><pages><controls> section, add the following node (in a clean Sitecore installation it is placed as the last node in the section):
    <add tagPrefix="sc" src="~/layouts/system/VisitorIdentification.ascx" tagName="VisitorIdentification" />
  20. In the <system.web><compilation><assemblies> section, replace the following nodes:
    <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
    with:
    <add assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
    After this change, the <assemblies> section look like this in a clean Sitecore installation:
    <assemblies>
      <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
      <add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
  21. In the <configuration><runtime><assemblyBinding> section, add the following nodes:
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1" />
      <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.1.0.0" xmlns="urn:schemas-microsoft-com:asm.v1" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1" />
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" xmlns="urn:schemas-microsoft-com:asm.v1" />
    </dependentAssembly>
     After this change, the <runtime> section look like this in a clean Sitecore installation:
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Lucene.Net" publicKeyToken="85089178b9ac3181" />
          <bindingRedirect oldVersion="0.0.0.0-2.9.4.0" newVersion="3.0.3.0" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
          <bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="4.5.0.0" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1" />
          <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.1.0.0" xmlns="urn:schemas-microsoft-com:asm.v1" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1" />
          <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" xmlns="urn:schemas-microsoft-com:asm.v1" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>

Changes to App_Config\Include\Sitecore.Analytics.config

Notice: This file does not exist and does not need to be upgraded if you have not installed Sitecore Analytics.

The following changes have been made to the App_Config\Include\Sitecore.Analytics.config file of Sitecore CMS 7.2 rev. 140228 (Initial Release) as compared to the App_Config\Include\Analytics.config file of Sitecore CMS 7.1 rev. 140130 (Update-1).

  1. Remove the setting "Analytics.Robots.IgnoreAutoRobots" from the <settings> section, because the setting is not in use (but make sure to keep the Analytics.Robots.IgnoreRobots setting which is in use):
    <!--  ANALYTICS ROBOTS IGNORE AUTO ROBOTS
          Ignore requests where Sitecore's automatic robot detection identifies the visit as coming from a robot.
          Default: true
    -->
    <setting name="Analytics.Robots.IgnoreAutoRobots" value="true" />

Changes to App_Config\Include\Sitecore.Buckets.config

Tip: Most customers have only applied a small number of changes (if any) to the Sitecore.Buckets.config file. In that case, we recommend that you simply download the clean config file using the link above and re-apply any changes that you've made to save time and to reduce the risk of making mistakes when adding the new settings, pipelines, etc. to the file.

The following changes have been made to the App_Config\Include\Sitecore.Buckets.config file of Sitecore CMS 7.2 rev. 140228 (Initial Release) as compared to the App_Config\Include\Sitecore.Buckets.config file of Sitecore CMS 7.1 rev. 140130 (Update-1).

  1. Comments for the events in <events> section have been updated. We recommend that you change the comments to keep your file up-to-date, but this step does not affect the functionality of the system. In a clean Sitecore installation, the <events> section now looks like this:
    <events>
      <!-- Uncomment the below item:added event if you want Sitecore to automatically create item buckets when the number of children under an item gets too many. -->
      <!--<event name="item:added">
        <handler type="Sitecore.Buckets.Events.AutoBucket, Sitecore.Buckets" method="Execute"/>
      </event>-->
      <!-- Event hook before a item is getting bucketed
           Args: (ID) NewId, (string) ItemName, (ID) TemplateId, (Item) NewDestination -->
      <event name="item:bucketing:adding" />
      <!-- Event hook after a item is getting bucketed
           Args: (Item) Item -->
      <event name="item:bucketing:added" />
      <!-- Event hook before a cloned item is placed in an item bucket.   
           Args: (CopyItemArgs) Args -> (Item[]) Copies -->
      <event name="item:bucketing:cloning"/>
      <!-- Event hook after a cloned item is placed in an item bucket.
           Args: (CopyItemArgs) Args -> (Item[]) Copies -->
      <event name="item:bucketing:cloned"/>
      <!-- Event hook before copying an item into an item bucket.
           Args: (CopyItemArgs) Args -> (Item[])Copies -->
      <event name="item:bucketing:copying"/>
      <!-- Event hook after copying an item into an item bucket.
           Args: (CopyItemArgs) Args -> (Item[])Copies -->
      <event name="item:bucketing:copied"/>
      <!-- Event hook after duplicating an item into an item bucket.
           Args: (ClientPipelineArgs) Args -> -->
      <event name="item:bucketing:duplicating"/>
      <!-- Event hook after duplicating an item into an item bucket.
           Args: (ClientPipelineArgs) Args -> -->
      <event name="item:bucketing:duplicated"/>
      <!-- Event hook before moving an item into an item bucket.
           Args: (ClientPipelineArgs) Args -> -->
      <event name="item:bucketing:moving"/>
      <!-- Event hook after moving an item into an item bucket.
           Args: (ClientPipelineArgs) Args -> -->
      <event name="item:bucketing:moved"/>
      <!-- Event hook before converting an item into an item bucket starts.
           Args: (BucketArgs) Args -> (Item) Item, (string) DatabaseName -->
      <event name="item:bucketing:starting"/>
      <!-- Event hook after converting an item into an item bucket finishes.
           Args: (BucketArgs) Args -> (Item) Item, (string) DatabaseName -->
      <event name="item:bucketing:ending"/>
      <!-- Event hook before converting an item bucket into an ordinary content item starts.
           Args: (BucketArgs) Args -> (Item) Item, (string) DatabaseName -->
      <event name="item:unbucketing:starting"/>
      <!-- Event hook after converting an item bucket into an ordinary content item finishes.
           Args: (BucketArgs) Args -> (Item) Item, (string) DatabaseName -->
      <event name="item:unbucketing:ending"/>
      <!-- Event hook before moving an item into an item bucket and from one database to another database.
           Args: (EventArgs) Args -> (Item) Item -->
      <event name="item:transferred">
        <handler type="Sitecore.Buckets.Events.ItemTransferredEventHandler, Sitecore.Buckets" method="Execute"/>
      </event>
    </events>
  2. In the <commands> section, add the following nodes (it is suggested to add them in alphabetical order in relation to the existing commands, but they can be added at any place):
    <command name="item:bucketable" type="Sitecore.Buckets.Commands.MakeItemBucketable, Sitecore.Buckets"/>
    <command name="item:resetbucketable" type="Sitecore.Buckets.Commands.ResetBucketable, Sitecore.Buckets"/>
    <command name="template:bucketable" type="Sitecore.Buckets.Commands.MakeTemplateBucketable, Sitecore.Buckets"/>      
  3. In the <pipelines> section, add the following pipeline, at the top of the section:
    <!-- RESOLVE UI DOCUMENT MAPPER FACTORY RULES PIPELINE
         This pipeline is executed when you use the search UI. The default processor overrides the document mapper rules to ensure that
         the search results are instantiated as SitecoreUISearchResultItem objects. This is necessary for the default search views to
         display search results correctly.
    -->
    <buckets.resolveUIDocumentMapperFactoryRules>
      <processor type="Sitecore.Buckets.Pipelines.UI.Search.ResolveDocumentMapperFactoryRule.ResolveSitecoreUIRules, Sitecore.Buckets"/>
    </buckets.resolveUIDocumentMapperFactoryRules>
  4. In the <pipelines> section, add the following pipeline, after the <getContentEditorWarnings> pipeline:
    <!-- This allows the pipeline to return examples of the items that are returned by search-based datasources. -->
    <getDatasourceExamples>
      <processor type="Sitecore.Buckets.Pipelines.GetDatasourceExamples.GetSearchBasedDatasourceExamples, Sitecore.Buckets"/>
    </getDatasourceExamples>
  5. In the <processors> section, add the following pipeline, at the top of the section:
    <!-- LAUNCH SEARCH RESULT
         This pipeline is invoked when a user clicks a search result in the search UI. The pipeline opens the search result. It could,
         for example, open an item in a new tab in the Content Editor, open a file from the file system in a window, or open an external
         URL in a window.
         Arguments: (string) Datasource, (string) IndexableId, (CommandContext) Command
    -->
    <uiLaunchResult>
      <processor desc="sitecore" type="Sitecore.Buckets.Pipelines.UI.LaunchResultPipeline.LaunchSitecoreResult, Sitecore.Buckets"/>
    </uiLaunchResult>
  6. Only perform this step if you have not overridden the setting with a custom class: In the <settings> section, replace the following setting:
    <setting name="BucketConfiguration.DynamicBucketFolderPath" value="Sitecore.Buckets.Util.DateBasedFolderPath, Sitecore.Buckets"/>
    with:
    <setting name="BucketConfiguration.DynamicBucketFolderPath" value="Sitecore.Buckets.Util.BucketFolderPathResolver, Sitecore.Buckets"/>
  7. In the <settings> section, add the following setting, after the "BucketConfiguration.ForceClientLanguageInSearch" setting:
    <!-- BUCKET CONFIGURATION - MAX DEGREE OF PARALLELISM
         This setting allows you to limit the number of threads used for creating, syncing, or reverting an item bucket.
         If the value is set to -1, there is no limit on the number of concurrently running operations.
         Default value: 2
    -->
    <setting name="BucketConfiguration.MaxDegreeOfParallelism" value="2"/>
  8. In the <settings> section, add the following setting, after the "BucketConfiguration.SearchAndReplaceIncludeStandardValues" setting:
    <!-- BUCKET CONFIGURATION - SEARCH UI SERVICE PROVIDER
         This class allows you to override/substitute the web service that the search UI calls to retrieve information and perform various operations.
    -->
    <setting name="BucketConfiguration.SearchUIServiceProvider" value="Sitecore.Buckets.Search.Service.BucketClientService, Sitecore.Buckets"/>
  9. In the <setting> section, add the following setting, after the "FastQueryDescendantsDisabled" setting:
    <!-- Enable FillDB Page
         This setting enables or disables the /sitecore/admin/filldb.html page. Always disable this page in production environments.
         You can use the FillDB page to insert large amounts of test content into Sitecore to test facets, new search types, as well as
         the performance and scalability of indexing and search in your solution.
         Default value: false
    -->
    <setting name="EnableFillDB" value="false" />

Changes to App_Config\Include\Sitecore.ContentSearch.config

Tip: Most customers have only applied a small number of changes (if any) to the Sitecore.ContentSearch.config file. In that case, we recommend that you simply download the clean config file using the link above and re-apply any changes that you've made to save time and to reduce the risk of making mistakes when adding the new settings, pipelines, etc. to the file.

The following changes have been made to the App_Config\Include\Sitecore.ContentSearch.config file of Sitecore CMS 7.2 rev. 140228 (Initial Release) as compared to the App_Config\Include\Sitecore.ContentSearch.config file of Sitecore CMS 7.1 rev. 140130 (Update-1).

  1. In the <pipelines> section, add the following pipeline, after the <contentSearch.getGlobalSearchFilters> pipeline:
    <!-- GET GLOBAL LINQ FILTERS
         This pipeline allows you to apply global search filters to every query that is executed through the Linq layer or the search UI.
         For example, this pipeline could be used to apply a filter that globally limits search results based on security or templates.
         Arguments: (object) Query, (Type) QueryElementType, (List<IExecutionContext>) ExecutionContext
    -->
    <contentSearch.getGlobalLinqFilters>
      <processor type="Sitecore.ContentSearch.Pipelines.QueryGlobalFilters.ApplyGlobalLinqFilters, Sitecore.ContentSearch" />
    </contentSearch.getGlobalLinqFilters>
  2. In the <contentSearch.translateQuery> pipeline, add the following processors , before the "ApplyProviderTranslation" processor :
    <processor type="Sitecore.ContentSearch.Pipelines.TranslateQuery.AnalyticsContextResolver, Sitecore.ContentSearch" />
    <processor type="Sitecore.ContentSearch.Pipelines.TranslateQuery.ApplySitecoreContextResolvers, Sitecore.ContentSearch" />
    After this change, the <contentSearch.translateQuery> pipeline node looks like this in a clean Sitecore installation:
    <contentSearch.translateQuery>
      <processor type="Sitecore.ContentSearch.Pipelines.TranslateQuery.AnalyticsContextResolver, Sitecore.ContentSearch" />
      <processor type="Sitecore.ContentSearch.Pipelines.TranslateQuery.ApplySitecoreContextResolvers, Sitecore.ContentSearch" />
      <processor type="Sitecore.ContentSearch.Pipelines.TranslateQuery.ApplyProviderTranslation, Sitecore.ContentSearch" />
    </contentSearch.translateQuery>
  3. In the <pipelines> section, add the following nodes, after the <indexing.resolveItemBoost> pipeline:
    <search>
      <!-- EXTEND SEARCH PIPELINE
           This processor executes search expressions that use the Sitecore.ContentSearch indexes when the Search.UseLegacySearchEngine setting is set to false.
      -->
      <processor patch:before="*[@type='Sitecore.Pipelines.Search.SearchSystemIndex, Sitecore.Kernel']" type="Sitecore.ContentSearch.Client.Pipelines.Search.SearchContentSearchIndex, Sitecore.ContentSearch.Client" />
    </search>
  4. In the <settings> section, add the following settings(you can add them at any place in the section, but in a clean Sitecore installation the new settings are placed after the "ContentSearch.EnableSearchDebug" setting):
    <!-- CONTENT SEARCH - CRAWLING - STOP ON CRAWL ERROR
         This setting specifies whether the Sitecore crawlers stop crawling if an error occurs while processing an indexable.
         If true, the Sitecore crawlers stop crawling and throw an exception.
         If false, the Sitecore crawlers skip this indexable and then continue crawling.
         Default value: false
    -->
    <setting name="ContentSearch.Crawling.StopOnCrawlError" value="false"/>

    <!-- CONTENT SEARCH - CRAWLING - STOP ON CRAWL FIELD ERROR
         This setting specifies whether the Sitecore document builder classes will add document data to the index if an error occurs while
         processing one or more fields for the document.
         If false, the document will be added to the index.
         If true, the document will be skipped.
         Default value: false
    -->
    <setting name="ContentSearch.Crawling.StopOnCrawlFieldError" value="false"/>

    <!-- CONTENT SEARCH - DOCUMENT MAPPING - STOP ON PROPERTY MAPPING ERROR
         This setting specifies whether the document mapper will throw an exception if an error occurs during property mapping.
         If true, an exception is thrown when an error occurs.
         If false, the property where an error occurs is skipped, but property mapping will continue for the remaining properties.
         Default value: true
    -->
    <setting name="ContentSearch.DocumentMapping.StopOnPropertyMappingError" value="true"/>

    <!-- USE LEGACY SEARCH ENGINE
         This setting specifies whether the classic search functionality in Sitecore should use the legacy Sitecore.Search indexes.
         The classic search functionality is initiated from the search field above the content tree, the quick search field in the task
         bar, and the Search application.
         If false, the search functionality uses the Sitecore.ContentSearch search indexes.
         If true, the search functionality uses the legacy Sitecore.Search search indexes.
    -->
    <setting name="Search.UseLegacySearchEngine" value="false"/>

Changes to App_Config\Include\Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config

Tip: Most customers have only applied a small number of changes (if any) to the Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config file. In that case, we recommend that you simply download the clean config file using the link above and re-apply any changes that you've made to save time and to reduce the risk of making mistakes when the changes to the file.

The following changes have been made to the App_Config\Include\Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config file of Sitecore CMS 7.2 rev. 140228 (Initial Release) as compared to the App_Config\Include\Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config file of Sitecore CMS 7.1 rev. 140130 (Update-1).

  1. Rename the <contentSearch><configuration> node to <indexConfigurations> and remove the type attribute (and remember to rename the closing tag as well). In other words, replace the following node:
    <configuration type="Sitecore.ContentSearch.LuceneProvider.LuceneSearchConfiguration, Sitecore.ContentSearch.LuceneProvider">
    with:
    <indexConfigurations>
  2. Rename the <defaultIndexConfiguration> node to <defaultLuceneIndexConfiguration> (and remember to rename the closing tag as well):
    <defaultLuceneIndexConfiguration type="Sitecore.ContentSearch.LuceneProvider.LuceneIndexConfiguration, Sitecore.ContentSearch.LuceneProvider">
  3. In the <defaultLuceneIndexConfiguration> section, add the following nodes, after the <indexAllFields> node:
    <!-- Should index Initialize() method be called as soon as the index is added or wait for an external trigger -->
    <initializeOnAdd>true</initializeOnAdd>
  4. In the <fieldMap><fieldNames> section, remove the following field mapping for the "_securitytoken" field:
    <field fieldName="_securitytoken"       storageType="YES" indexType="TOKENIZED"    vectorType="NO" boost="1f" type="System.String" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider">
      <analyzer type="Sitecore.ContentSearch.LuceneProvider.Analyzers.LowerCaseKeywordAnalyzer, Sitecore.ContentSearch.LuceneProvider" />
    </field>
  5. In the <fieldMap><fieldNames> section, add the following new field mappings (or update existing field mappings if you have already registered these fields in the field map). You can add them at any place in the section, but in a clean Sitecore installation the new nodes are placed at the end of the section:
    <field fieldName="__smallcreateddate"  storageType="YES"  indexType="TOKENIZED"  vectorType="NO" boost="1f" type="System.DateTime"  settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider" />
    <field fieldName="__smallupdateddate"   storageType="YES"  indexType="TOKENIZED"  vectorType="NO" boost="1f" type="System.DateTime"  settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider" />
    <field fieldName="__workflow_state"    storageType="YES" indexType="TOKENIZED"  vectorType="NO" boost="1f" type="System.GUID"   settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider"/>
  6. In the <fieldMap><fieldNames> section, change the type attribute value for the field "_latestversion" to "System.Boolean" instead of "System.Int32". After this change, the definition of "_latestversion" in the <fieldNames> section looks like this in a clean Sitecore installation:
    <field fieldName="_latestversion"     storageType="YES"  indexType="TOKENIZED"  vectorType="NO" boost="1f" type="System.Boolean"  settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider" />
  7. Optional: Replace the comment above the <exclude hint="list:ExcludeTemplate"> node, and rename the <BucketFolderTemplate> node to <BucketFolderTemplateId>. After this change, these nodes look like this in a clean Sitecore installation:
    <!-- GLOBALLY EXCLUDE TEMPLATES FROM BEING INDEXED
         This setting allows you to exclude items that are based on specific templates from the index.
    -->
    <exclude hint="list:ExcludeTemplate">
      <BucketFolderTemplateId>{ADB6CA4F-03EF-4F47-B9AC-9CE2BA53FF97}</BucketFolderTemplateId>
    </exclude>
  8. Optional: Replace the comment above the <include hint="list:IncludeTemplate"> node, and rename the <BucketFolderTemplate> node to <BucketFolderTemplateId>. After this change, these nodes look like this in a clean Sitecore installation:
    <!-- GLOBALLY INCLUDE TEMPLATES IN INDEX
         This setting allows you to only include items that are based on specific templates in the index. You must specify all the
         templates that you want to include, because template inheritance is not checked.
         When you enable this setting, all the items that are based on other templates are excluded, regardless of whether the template
         is specified in the ExcludeTemplate list or not.
    -->
    <!--
    <include hint="list:IncludeTemplate">
      <BucketFolderTemplateId>{ADB6CA4F-03EF-4F47-B9AC-9CE2BA53FF97}</BucketFolderTemplateId>
    </include> -->
  9. Optional: Replace the comment above the<include hint="list:IncludeField"> node:
     <!-- GLOBALLY INCLUDE TEMPLATES IN INDEX
         This setting allows you to include items that are based on a certain template if you have set IndexAllFields to 'false'.
    -->
    with:
    <!-- GLOBALLY INCLUDE FIELDS IN INDEX
         This setting allows you to specify which fields to include in the index when the indexAllFields setting is set to false.
    -->
  10. Optional: Replace the comment above the<exclude hint="list:ExcludeField"> node:
     <!-- EXCLUDE FIELDS FROM INDEX
         This setting allows you to exclude fields from the index if you have set IndexAllFields to 'true'.
    -->
    with:
    <!-- GLOBALLY EXCLUDE FIELDS FROM BEING INDEXED
         This setting allows you to exclude fields from the index when the indexAllFields setting is set to true.
    -->
  11. In the <exclude hint="list:ExcludeField"> section, remove the following node:
    <__WorkflowState>{3E431DE1-525E-47A3-B6B0-1CCBEC3A8C98}</__WorkflowState>
  12. In the <fields hint="raw:AddCustomField"> section, remove the "__smallCreatedDate" and "__smallUpdatedDate" nodes. Also, update the comments for this section. In a clean Sitecore installation, the section now looks like this:
    <!-- CUSTOM FIELDS
         Custom fields allow you to store a field in different ways in an index. For example, if you have an analyzed field, you can
         create a custom field to store a version of the field that is not analyzed or store the original text value that has not
         been processed by the analyzer.
         Custom fields only support simple transformations. Use computed fields for more complex transformations, for example, if you
         want to store a date field in a different format.
    -->
    <fields hint="raw:AddCustomField">
      <!-- If you have some GUID-based fields in the index that you would like to merge into your Tag Repository, you can add
           these fields here.
           EXAMPLE: In a template, create a multilist field called "__yourtags". To add the tags selected in this field to the
           __semantics field, add the following custom field:
      -->
      <!--<field luceneName="__semantics"        storageType="no" indexType="tokenized" multivalued="true">__yourtags</field>-->
    </fields>
  13. In the <fields hint="raw:AddComputedIndexField"> section, add the following computed fields:
    <field fieldName="__smallcreateddate"            >Sitecore.ContentSearch.ComputedFields.SmallCreatedDate,Sitecore.ContentSearch</field><field fieldName="__smallupdateddate" 
                >Sitecore.ContentSearch.ComputedFields.SmallUpdatedDate,Sitecore.ContentSearch</field><field fieldName="haschildren"                     >Sitecore.ContentSearch.ComputedFields.HasChildren,Sitecore.ContentSearch</field>
  14. In the <fields hint="raw:AddComputedIndexField"> section, replace the definition of the "_content" field:
    <field fieldName="_content" >Sitecore.ContentSearch.ComputedFields.MediaItemContentExtractor,Sitecore.ContentSearch</field>
    with:
    <field fieldName="_content" type="Sitecore.ContentSearch.ComputedFields.MediaItemContentExtractor,Sitecore.ContentSearch">  <mediaIndexing ref="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration/mediaIndexing"/></field>
  15. In the <mediaIndexing> section, change the value of the "hint" attribute from "raw:AddMediaIndexingMap" to "skip" so that the node now looks like this:
    <mediaIndexing hint="skip">
  16. In the <defaultLuceneIndexConfiguration> section, replace the existing <indexDocumentPropertyMapper> node:
    <!-- INDEX PROPERTY TO DOCUMENT MAPPER
         Maintains a collection of all the possible Convertors for the provider.
    -->
    <indexDocumentPropertyMapper type="Sitecore.ContentSearch.LuceneProvider.DefaultLuceneDocumentTypeMapper, Sitecore.ContentSearch.LuceneProvider" />>
    with:
    <!-- INDEX DOCUMENT TO PROPERTY MAPPER
         Maintains a collection of all the possible Convertors for the provider.
    -->
    <indexDocumentPropertyMapper type="Sitecore.ContentSearch.LuceneProvider.DefaultLuceneDocumentTypeMapper, Sitecore.ContentSearch.LuceneProvider">
      <!-- OBJECT FACTORY
        Constructs search result objects based on the type that is passed in .GetQueryable<T>() and the rules defined in this section.
      -->    
      <objectFactory type="Sitecore.ContentSearch.DefaultDocumentMapperObjectFactory, Sitecore.ContentSearch">
        <rules hint="list:AddRule">
          <!--
             Examples of object factory rules:

                Rule that applies to items based on the "Sample Item" template:

                <rule fieldName="template" comparison="Equal" value="{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}" valueType="System.Guid, mscorlib"
                                creationType="MySearchTypes.SampleItemResultItem, MySearchTypes"
                                baseType="MySearchTypes.IMySearchResultItem, MySearchTypes"
                                type="Sitecore.ContentSearch.DefaultDocumentMapperFactorySimpleRule, Sitecore.ContentSearch">
                  <param desc="fieldName">$(fieldName)</param>
                  <param desc="comparison">$(comparison)</param>
                  <param desc="value">$(value)</param>
                  <param desc="type">$(valueType)</param>
                  <param desc="creationType">$(creationType)</param>
                  <param desc="baseType">$(baseType)</param>
                </rule>

                Rule that applies to items that are based on the "Sample Item" template AND has the title "Sample Item":

                <rule type="Sitecore.ContentSearch.DefaultDocumentMapperFactoryRule, Sitecore.ContentSearch"
                                creationType="MySearchTypes.SampleItemResultItem, MySearchTypes"
                                baseType="MySearchTypes.IMySearchResultItem, MySearchTypes">
                  <param desc="creationType">$(creationType)</param>
                  <param desc="baseType">$(baseType)</param>
                      
                  <fieldComparisons hint="list:AddFieldComparison">

                    <fieldComparison fieldName="template" comparison="Equal" value="{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}" valueType="System.Guid, mscorlib" type="Sitecore.ContentSearch.DefaultDocumentMapperFactoryRuleFieldComparison, Sitecore.ContentSearch">
                      <param desc="fieldName">$(fieldName)</param>
                      <param desc="comparison">$(comparison)</param>
                      <param desc="value">$(value)</param>
                      <param desc="type">$(valueType)</param>
                    </fieldComparison>

                    <fieldComparison fieldName="title" comparison="Equal" value="Sample Item" valueType="System.String, mscorlib" type="Sitecore.ContentSearch.DefaultDocumentMapperFactoryRuleFieldComparison, Sitecore.ContentSearch">
                      <param desc="fieldName">$(fieldName)</param>
                      <param desc="comparison">$(comparison)</param>
                      <param desc="value">$(value)</param>
                      <param desc="type">$(valueType)</param>
                    </fieldComparison>

                  </fieldComparisons>
                </rule>
          -->
        </rules>
      </objectFactory>
    </indexDocumentPropertyMapper>
  17. In the <settings> section, add the following settings, at the top of the section:
    <!--  CONTENT SEARCH - DEFAULT INDEX TYPE
          This setting specifies the index type that should be used when an item appears in more than one index.
    -->
    <setting name="ContentSearch.DefaultIndexType" value="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider" />
    <!-- CONTENT SEARCH - DEFAULT INDEX CONFIGURATION PATH
         This setting specifies an XPath expression that points to the default index configuration. The default configuration is used for
         every index that does not have a specified configuration.
    -->
    <setting name="ContentSearch.DefaultIndexConfigurationPath" value="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration" />

Changes to the following files:

Notice that the following changes must be made to all Sitecore.ContentSearch index definitions in the files mentioned above, as well as any custom index definitions that you might have in your solution.

  1. For each index definition, replace the existing value of the type attribute of the <configuration> node:
    <configuration type="Sitecore.ContentSearch.LuceneProvider.LuceneSearchConfiguration, Sitecore.ContentSearch.LuceneProvider">
    with:
    <configuration type="Sitecore.ContentSearch.ContentSearchConfiguration, Sitecore.ContentSearch">
  2. For each index definition, add the following node before the <strategies> section:
    <configuration ref="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration" />
  3. Repeat the steps for each of the files mentioned above.

Changes to App_Config\Include\Sitecore.ContentSearch.Solr.Indexes.config

Notice: This file does not exist and does not need to be upgraded if you are not using the Solr provider for Sitecore.ContentSearch.

Tip: Most customers have only applied a small number of changes to the Sitecore.ContentSearch.Solr.Indexes.config file. In that case, we recommend that you simply download the clean config file using the link above and re-apply any changes that you've made to save time and to reduce the risk of making mistakes when the changes to the file.

The following changes have been made to the App_Config\Include\Sitecore.ContentSearch.Solr.Indexes.config file of Sitecore CMS 7.2 rev. 14XXXX (Initial Release) as compared to the App_Config\Include\Sitecore.ContentSearch.Solr.Indexes.config file of Sitecore CMS 7.1 rev. 140130 (Update-1).

  1. The <contentSearch><configuration> section has been split into two sections. First, rename the existing <contentSearch><configuration> node to <indexConfigurations> and remove the type attribute. In other words, replace the following node:
    <configuration type="Sitecore.ContentSearch.SolrProvider.SolrSearchConfiguration, Sitecore.ContentSearch.SolrProvider">
    with:
    <indexConfigurations>
    Then, insert a closing tag for the new <indexConfigurations> node and a new <configuration> tag before the <indexes hint="list:AddIndex"> node by inserting the following lines between the tag and the <indexes hint="list:AddIndex"> node:
    </DefaultIndexConfiguration>
    </indexConfigurations>
     
    <configuration type="Sitecore.ContentSearch.ContentSearchConfiguration, Sitecore.ContentSearch">
      <!-- If an index has no configuration specified, it will use the configuration below. The configuration is not merged if the index also has
         configuration, it is either this configuration or the index configuration. -->
  2. Rename the <DefaultIndexConfiguration> node to <defaultSolrIndexConfiguration> (and remember to rename the closing tag as well):
    <defaultSolrIndexConfiguration type="Sitecore.ContentSearch.SolrProvider.SolrIndexConfiguration, Sitecore.ContentSearch.SolrProvider">
  3. In the <defaultSolrIndexConfiguration> section and probably other custom index configuration if you have them, rename the node <IndexAllFields> to <indexAllFields>:
    <indexAllFields>true</indexAllFields>
  4. In the <defaultSolrIndexConfiguration> section, add the following nodes, after the <indexAllFields> node:
    <!-- Should index Initialize() method be called as soon as the index is added or wait for an external trigger --><!-- For Solr Initialize() needs to be called after the IOC container has fired up --><initializeOnAdd>false</initializeOnAdd>
  5. In the <fieldNames hint="raw:AddFieldByFieldName"> section, add the following node:
    <fieldType fieldName="__workflow_state"    returnType="string" />
  6. Optional: Replace the comment above the <exclude hint="list:ExcludeTemplate"> node:
     <!-- GLOBALLY EXCLUDE TEMPLATES FROM BEING INDEXED
         This allows you to exclude items based off a certain template
    -->
    with:
    <!-- GLOBALLY EXCLUDE TEMPLATES FROM BEING INDEXED
         This setting allows you to exclude items that are based on specific templates from the index.
    -->
  7. Optional: Replace the comment above the <include hint="list:IncludeTemplate"> node:
    <!-- GLOBALLY INCLUDE TEMPLATES IN INDEX
         This allows you to include items based off a certain template if you have IndexAllFields to false
    -->
    with:
    <!-- GLOBALLY INCLUDE TEMPLATES IN INDEX
         This setting allows you to only include items that are based on specific templates in the index. You must specify all the
         templates that you want to include, because template inheritance is not checked.
         When you enable this setting, all the items that are based on other templates are excluded, regardless of whether the template
         is specified in the ExcludeTemplate list or not.
    -->
  8. Optional: Replace the comment above the <include hint="list:IncludeField"> node:
    <!-- GLOBALLY INCLUDE FIELDS IN INDEX
         This allows you to include specific fields if you have IndexAllFields to false
    -->
    with:
    <!-- GLOBALLY INCLUDE FIELDS IN INDEX
         This setting allows you to specify which fields to include in the index when the indexAllFields setting is set to false.
    -->
  9. Optional: Replace the comment above the <exclude hint="list:ExcludeField"> node:
    <!-- EXCLUDE FIELDS FROM INDEX
         This allows you to exclude fields from being placed into the index if you have IndexAllFields to true
    -->
    with: 
    <!-- GLOBALLY EXCLUDE FIELDS FROM BEING INDEXED
        This setting allows you to exclude fields from the index when the indexAllFields setting is set to true.
    -->
  10. In the <exclude hint="list:ExcludeField"> section, remove the following node:
    <__WorkflowState>{3E431DE1-525E-47A3-B6B0-1CCBEC3A8C98}</__WorkflowState>
  11. In the <fields hint="raw:RemoveSpecialFields"> section, remove the following node:
    <remove type="both">DisplayName</remove>
  12. In the <fields hint="raw:AddCopyField"> section, remove the "__smallCreatedDate" and "__smallUpdatedDate" nodes. Also, update the comments for this section. In a clean Sitecore installation, the section now looks like this:
    <!-- COPY FIELDS
         Copy fields allow you to store a field in different ways in an index. For example, if you have an analyzed field, you can
         create a copy field to store a version of the field that is not analyzed or store the original text value that has not
         been processed by the analyzer.
         Copy fields only support simple transformations. Use computed fields for more complex transformations, for example, if you
         want to store a date field in a different format.
    -->
    <fields hint="raw:AddCopyField">
      <!-- If you have some GUID-based fields in the index that you would like to merge into your Tag Repository, you can add these
           fields here.
           EXAMPLE: In a template, create a multilist field called "__yourtags". To add the tags selected in this field to the
           __semantics field, add the following custom field:
      -->
      <!--<field fieldName="__semantics" returnType="stringCollection">__yourtags</field>-->
    </fields>
  13. In the <fields hint="raw:AddComputedIndexField"> section, add the following computed fields:
    <field fieldName="__smallcreateddate" returnType="string">Sitecore.ContentSearch.ComputedFields.SmallCreatedDate,Sitecore.ContentSearch</field>

    <field fieldName="__smallupdateddate" returnType="string">Sitecore.ContentSearch.ComputedFields.SmallUpdatedDate,Sitecore.ContentSearch</field>
    <field fieldName="haschildren"  returnType="bool">Sitecore.ContentSearch.ComputedFields.HasChildren,Sitecore.ContentSearch</field>
  14. In the <fields hint="raw:AddComputedIndexField"> section, replace the definition of the "_content" field:
    <field fieldName="_content" returnType="string">Sitecore.ContentSearch.ComputedFields.MediaItemContentExtractor,Sitecore.ContentSearch</field>
    with:
    <field fieldName="_content" returnType="string"     type="Sitecore.ContentSearch.ComputedFields.MediaItemContentExtractor,Sitecore.ContentSearch">  <mediaIndexing ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration/mediaIndexing"/></field>
  15. In the <mediaIndexing> section, change the value of the "hint" attribute from "raw:AddMediaIndexingMap" to "skip", so that the node now looks like this:
    <mediaIndexing hint="skip">
  16. In the <virtualFieldProcessors hint="raw:AddVirtualFieldProcessor"> section, add the following processor, after "_lastestversion" processor:
    <virtualFieldProcessor fieldName="updateddaterange" type="Sitecore.ContentSearch.VirtualFields.UpdatedDateRangeFieldProcessor, Sitecore.ContentSearch" />
  17. Rename the <FieldReaders> section to <fieldReaders> (and remember to rename the closing tag as well).
  18. In the <fieldReaders> section,remove "|reference" from the following node:
    <fieldReader fieldTypeName="single-line text|multi-line text|text|memo|reference" fieldReaderType="Sitecore.ContentSearch.FieldReaders.DefaultFieldReader, Sitecore.ContentSearch" />
    So that it now looks like this: 
    <fieldReader fieldTypeName="single-line text|multi-line text|text|memo "fieldReaderType="Sitecore.ContentSearch.FieldReaders.DefaultFieldReader, Sitecore.ContentSearch" />
  19. In the same section, find the following node:
    <fieldReader fieldTypeName="droplink|droptree|grouped droplink|tree"  fieldReaderType="Sitecore.ContentSearch.FieldReaders.LookupFieldReader, Sitecore.ContentSearch" />
    And add "|reference" to the node, so that it now looks like this:
     <fieldReader fieldTypeName="droplink|droptree|grouped droplink|tree|reference" fieldReaderType="Sitecore.ContentSearch.FieldReaders.LookupFieldReader, Sitecore.ContentSearch" />
  20. Rename the <IndexFieldStorageValueFormatter> section to <indexFieldStorageValueFormatter> (and remember to rename the closing tag as well).
  21. In the <defaultSolrIndexConfiguration> section, replace the existing <indexDocumentPropertyMapper> node:
    <IndexDocumentPropertyMapper type="Sitecore.ContentSearch.SolrProvider.Mapping.SolrDocumentPropertyMapper, Sitecore.ContentSearch.SolrProvider" />
    with:
    <!-- INDEX PROPERTY TO DOCUMENT MAPPER
         Maintains a collection of all the possible Convertors for the provider.
    -->
    <indexDocumentPropertyMapper type="Sitecore.ContentSearch.SolrProvider.Mapping.SolrDocumentPropertyMapper, Sitecore.ContentSearch.SolrProvider">
      <!-- OBJECT FACTORY
           Constructs search result objects based on the type that is passed in .GetQueryable<T>() and the rules defined in this section.
      -->
      <objectFactory type="Sitecore.ContentSearch.DefaultDocumentMapperObjectFactory, Sitecore.ContentSearch">
        <!-- OBJECT FACTORY RULES

             Examples:

              <rules hint="list:AddRule">

                Rule that applies to items with template "Sample Item":

                <rule fieldName="template" comparison="Equal" value="{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}" valueType="System.Guid, mscorlib"
                                creationType="MySearchTypes.SampleItemResultItem, MySearchTypes"
                                baseType="MySearchTypes.IMySearchResultItem, MySearchTypes"
                                type="Sitecore.ContentSearch.DefaultDocumentMapperFactorySimpleRule, Sitecore.ContentSearch">
                  <param desc="fieldName">$(fieldName)</param>
                  <param desc="comparison">$(comparison)</param>
                  <param desc="value">$(value)</param>
                  <param desc="type">$(valueType)</param>
                  <param desc="creationType">$(creationType)</param>
                  <param desc="baseType">$(baseType)</param>
                </rule>

                Rule that applies to items with template "Sample Item" AND has the title "Sample Item":

                <rule type="Sitecore.ContentSearch.DefaultDocumentMapperFactoryRule, Sitecore.ContentSearch"
                                creationType="MySearchTypes.SampleItemResultItem, MySearchTypes"
                                baseType="MySearchTypes.IMySearchResultItem, MySearchTypes">
                  <param desc="creationType">$(creationType)</param>
                  <param desc="baseType">$(baseType)</param>
                      
                  <fieldComparisons hint="list:AddFieldComparison">
                     <fieldComparison fieldName="template" comparison="Equal" value="{76036F5E-CBCE-46D1-AF0A-4143F9B557AA}" valueType="System.Guid, mscorlib" type="Sitecore.ContentSearch.DefaultDocumentMapperFactoryRuleFieldComparison, Sitecore.ContentSearch">
                      <param desc="fieldName">$(fieldName)</param>
                      <param desc="comparison">$(comparison)</param>
                      <param desc="value">$(value)</param>
                      <param desc="type">$(valueType)</param>
                    </fieldComparison>

                    <fieldComparison fieldName="title" comparison="Equal" value="Sample Item" valueType="System.String, mscorlib" type="Sitecore.ContentSearch.DefaultDocumentMapperFactoryRuleFieldComparison, Sitecore.ContentSearch">
                      <param desc="fieldName">$(fieldName)</param>
                      <param desc="comparison">$(comparison)</param>
                      <param desc="value">$(value)</param>
                      <param desc="type">$(valueType)</param>
                    </fieldComparison>

                  </fieldComparisons>
                </rule>
                    
              </rules>
        -->
      </objectFactory>
    </indexDocumentPropertyMapper>
  22. For each index definition (for Core, Master and Web databases), add the following node before the <strategies hint="list:AddStrategy">:
    <configuration ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration" />
    After these changes, the <configuration> section looks like this in a clean Sitecore installation:
    <configuration type="Sitecore.ContentSearch.ContentSearchConfiguration, Sitecore.ContentSearch">  <indexes hint="list:AddIndex">    <!-- MASTER INDEX configuration -->    <index id="sitecore_master_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider"> <param desc="name">$(id)</param> <param desc="core">itembuckets</param> <param desc="propertyStore" ref="contentSearch/databasePropertyStore" param1="$(id)" />  <configuration ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration" /> <strategies hint="list:AddStrategy"> <strategy ref="contentSearch/indexUpdateStrategies/sync" /> </strategies> <locations hint="list:AddCrawler"> <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch"> <Database>master</Database> <Root>/sitecore</Root> </crawler> </locations> </index> <!-- WEB INDEX configuration --> <index id="sitecore_web_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider"> <param desc="name">$(id)</param> <param desc="core">itembuckets</param> <param desc="propertyStore" ref="contentSearch/databasePropertyStore" param1="$(id)" />      <configuration ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration" /> <strategies hint="list:AddStrategy"> <strategy ref="contentSearch/indexUpdateStrategies/onPublishEndAsync" /> </strategies> <locations hint="list:AddCrawler"> <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch"> <Database>web</Database> <Root>/sitecore</Root> </crawler> </locations> </index> <!-- CORE INDEX configuration --> <index id="sitecore_core_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider"> <param desc="name">$(id)</param> <param desc="core">itembuckets</param> <param desc="propertyStore" ref="contentSearch/databasePropertyStore" param1="$(id)" />      <configuration ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration" /> <strategies hint="list:AddStrategy"> <strategy ref="contentSearch/indexUpdateStrategies/intervalAsyncCore" /> </strategies> <locations hint="list:AddCrawler"> <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch"> <Database>core</Database> <Root>/sitecore</Root> </crawler> </locations> </index> </indexes></configuration>
  23. In the settings section, add the following settings after the "ContentSearch.Provider" setting:
    <!--  DEFAULT INDEX TYPE
         If an item appears in more than one index, this selects which index type to use as the default  
    -->
    <setting name="ContentSearch.DefaultIndexType" value="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider" />
     <!-- DEFAULT INDEX CONFIGURATION PATH
         If an index has no configuration specified then it uses this XPath to find the default.
         Note: If you have multiple provider types active at once make sure the configurations are individually referenced rather than relying on the default.
    -->
    <setting name="ContentSearch.DefaultIndexConfigurationPath" value="contentSearch/indexConfigurations/defaultSolrIndexConfiguration" />
  24. In the <settings> section, add the following setting, after the "ContentSearch.Solr.ServiceBaseAddress" setting:
    <!-- CONTENT SEARCH – SOLR - ENABLE HTTP CACHE
         This setting specifies whether the HTTP Request cache is enabled. When enabled, every request is stored for 10 minutes or until
         the item or the result set changes.
         HTTP request caching only works if you also enable HTTP caching and ETags on the Solr server.
         Default value: true
    -->
    <setting name="ContentSearch.Solr.EnableHttpCache" value="true" />

Changes to App_Config\Include\Sitecore.Speak.config

Tip: Most customers have only applied a small number of changes (if any) to the Sitecore.Speak.config file. In that case, we recommend that you simply download the clean config file using the link above and re-apply any changes that you've made to save time and to reduce the risk of making mistakes when the changes to the file.

The following changes have been made to the App_Config\Include\Sitecore.Speak.config file of Sitecore CMS 7.2 rev. 14XXXX (Initial Release) as compared to the App_Config\Include\Sitecore.Speak.config file of Sitecore CMS 7.1 rev. 140130 (Update-1).

  1. In the <overrideXmlControls> section, replace the following node:
    <override xmlControl="Sitecore.Shell.Applications.Media.MediaBrowser" with="/sitecore/client/Sitecore/Common/Dialogs/SelectMediaDialog" />
    with:
    <override xmlControl="Sitecore.Shell.Applications.Media.MediaBrowser" with="/sitecore/client/applications/Dialogs/SelectMediaDialog" />
  2. In the <overrideDialogs> section, replace the following nodes:
    <override dialogUrl="/sitecore/shell/Applications/Dialogs/Internal%20link.html" with="/sitecore/client/sitecore/common/dialogs/InsertLinkViaTreeDialog" />
    <override dialogUrl="/sitecore/shell/Applications/Dialogs/Mail%20link.html" with="/sitecore/client/sitecore/common/dialogs/InsertEmailDialog" />
    <override dialogUrl="/sitecore/shell/Applications/Dialogs/Anchor%20link.html" with="/sitecore/client/sitecore/common/dialogs/InsertAnchorDialog" />
    <override dialogUrl="/sitecore/shell/Applications/Item%20browser.html" with="/sitecore/client/sitecore/common/dialogs/InsertSitecoreItemViaTreeDialog" />
    with:
    <override dialogUrl="/sitecore/shell/Applications/Dialogs/Internal%20link.html" with="/sitecore/client/applications/dialogs/InsertLinkViaTreeDialog" />
    <override dialogUrl="/sitecore/shell/Applications/Dialogs/Mail%20link.html" with="/sitecore/client/applications/dialogs/InsertEmailDialog" />
    <override dialogUrl="/sitecore/shell/Applications/Dialogs/Anchor%20link.html" with="/sitecore/client/applications/dialogs/InsertAnchorDialog" />
    <override dialogUrl="/sitecore/shell/Applications/Item%20browser.html" with="/sitecore/client/applications/dialogs/InsertSitecoreItemViaTreeDialog" />
  3. In the <speak.client.resolveScript> pipeline, add the following source to the "Controls" processor:
    <source folder="/sitecore/shell/client/Business Component Library/Layouts/Renderings" deep="true" category="business" pattern="*.js,*.css" />
    In a clean Sitecore installation, the "Controls" processor now looks like this:
      <processor type="Sitecore.Resources.Pipelines.ResolveScript.Controls, Sitecore.Speak.Client">
        <sources hint="raw:AddSource">
          <source folder="/sitecore/shell/client/Speak/Assets" deep="true" category="assets" pattern="*.js" />
          <source folder="/sitecore/shell/client/Speak/Layouts/Renderings" deep="true" category="controls" pattern="*.js,*.css" />
          <source folder="/sitecore/shell/client" deep="true" category="client" pattern="*.js,*.css" />
          <source folder="/sitecore/shell/client/speak/layouts/Renderings/Resources/Rules/ConditionsAndActions" deep="true" category="rules" pattern="*.js" />
          <source folder="/sitecore/shell/client/Business Component Library/Layouts/Renderings" deep="true" category="business" pattern="*.js,*.css" />
        </sources>
      </processor>