Walkthrough: Configure Azure Cognitive Search

Current version: 9.0

Azure Cognitive Search will be discontinued in the future and Sitecore will no longer provide support for this service in future releases.

To use Azure Search with Sitecore you must first configure your Azure Search service with your Sitecore instance. Use the procedures in this walkthrough to do so.

Format the connection string

The default connection string name for Cloud Search is cloud.search and it contains the following information:

  • serviceUrl – the HTTPS URL of the search service API (for example, https://dk-test.search.windows.net).

  • apiVersion – follows a date format, for example, 2017-11-11(see more information on API versions).

  • apiKey – the admin key to the service that you obtain from the Azure management portal.


The latest supported version is 2017-11-11. For information about other supported versions, refer to the Azure Search compatibility table.

The connection string format is:

<add name="cloud.search" connectionString="serviceUrl=<url>;apiVersion=<apiVersion>;apiKey=<apiKey>" /> 

Azure Cognitive Search for xConnect does not support this feature.

For geo-replicated scenarios

Sitecore supports a Search service with geo-replicated scenarios. To use this type of scenario:

  1. Create two or more Search service instances.

  2. Add connection strings with a pipe separator (|). If you have two search services, for example, searchservice1 and searchservice2, and you want to use them in a geo-replicated scenario, you must use the following connection string:

    <add name="cloud.search" 
    connectionString="serviceUrl=https://searchservice1.search.windows.net;apiVersion=2015-02-28;apiKey=AdminKey1|serviceUrl=https://searchservice2.search.windows.net;apiVersion=2015-02-28;apiKey=AdminKey2" /> 

For advanced scaling scenarios

For advanced scaling scenarios, it is best practice to use a dedicated search service for your index. To set this up:

  1. Add a new connection string (for example, cloud.search.analytics).

  2. Configure the corresponding index with this connection string name:

Connection string name

Specify Azure as your search provider

By default Sitecore is distributed with the Solr search provider enabled. 

  • To use the Azure search provider, in the web.config file, specify Azure as your search provider.

Rebuild the indexes

You must rebuild the indexes to ensure Sitecore is fully operational.

To rebuild the indexes:

  1. Go to the Sitecore login page (http:// {your_instance}/sitecore/login) and log in with your admin credentials.

  2. On the Sitecore Launchpad, click Control Panel, and select Indexing manager.

  3. To select and rebuild all of the indexes, on the Indexing Manager page, click Select all, Rebuild.


    Rebuilding the index is a time consuming operation and can take 15 minutes or more.

    When the indexes are rebuilt, the Sitecore search indexes appear in the Search service window of the Azure Portal.

    Indexing Manager page

Map the Azure field types

To see how to define the different types of mapping between .Net and Sitecore, go to the sitecore\contentsearch\indexConfigurations\defaultCloudIndexConfiguration\CloudTypeMapper node in the App_Config\Sitecore\ContentSearch.Azure\Sitecore.ContentSearch.Azure.DefaultIndexConfiguration.config file.


You must define the map element for all custom fields like this:

<map type="<Field type>" cloudType="<Edm type from list of supported types>" />

Azure Search uses the following Entity Data Model (EDM) field types. To map the field types correctly, refer to the following table:

Field type



Optional: Text that can be tokenized for full-text search, for example, word-breaking, stemming, and so on.


A list of strings that can be tokenized for full-text search. There is no upper limit on the number of items in a collection, but remember that the 16 MB upper limit on payload size applies to collections.


Contains true or false values.


Contains 32-bit integer values.


Contains 64-bit integer values.


Uses double-precision numeric data.


The date and time values are represented in the OData V4 format, for example:




The precision of DateTime fields is limited to milliseconds. If you upload DateTime values that have submillisecond precision, the returned value will be rounded up to milliseconds, for example:

2015-04-15T10:30:09.7552052Z will be returned as:




Map fields

When listing all of the fields that the components use under the index configuration section, it is best practice that you list them as follows:

  • sitecore\contentSearch\configuration\indexes\index\configuration\fieldMap

The supported attributes are:




The name of the field, as defined for Lucene and Solr.


The field name as defined for Cloud. It can only contain letters, numbers, and underscores.


The first character must be a letter.


Use the boost attribute to give one field more importance than another.


You must configure this attribute for DateTime type fields. The supported value is yyyy-MM-ddTHH:mm:ss.fffZ.


The settingType property must be: Sitecore.ContentSearch.Azure.CloudSearchFieldConfiguration, Sitecore.ContentSearch.Azure

You must configure query support and facet support correctly. To configure support for Azure Search, use the support reference for Azure Search.

Do you have some feedback for us?

If you have suggestions for improving this article,