Update Index Configuration Settings

SCORE 3.0 supports Multi-tenant search configurations, so now we recommend to place tenant specific search configuration into a separated index configuration section and create an index per tenant. 

Tenant Specific Index Configurations:

Here is an example of index configuration for 3 the most popular search engine:

Important Note

Please replace "RenameMeArea" token with your Tenant name (example: MySite)

SOLR Index Configurations (Sitecore 8.1+):

ContentSearch.Solr.IndexConfiguration.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
    <contentSearch>
        <indexConfigurations>
            <!-- SOLR Sitecore compatibility table https://kb.sitecore.net/articles/227897 -->
            <!-- Please read more on how to setup SOLR on a Sitecore intance here: https://doc.sitecore.net/sitecore_experience_platform/82/setting_up_and_maintaining/search_and_indexing/walkthrough_setting_up_solr -->
            <RenameMeAreaSolrIndexConfiguration ref="contentSearch/indexConfigurations/scoreSolrConfiguration">
                <!-- For Solr Initialize() needs to be called after the IOC container has fired up -->
                <initializeOnAdd>false</initializeOnAdd>

                <!-- DEFAULT FIELD MAPPING
                     The field map allows you to have full control over the way your data is stored in the index. This affects the way data is queried,
                     the performance of searching, and the way that data is retrieved and cast to a proper type in the API.
                -->
                <fieldMap ref="contentSearch/indexConfigurations/scoreSolrConfiguration/fieldMap">
                </fieldMap>

                <documentOptions ref="contentSearch/indexConfigurations/scoreSolrConfiguration/documentOptions">
                    <!-- 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:AddIncludedTemplate">
                        <BucketFolderTemplateId>{ADB6CA4F-03EF-4F47-B9AC-9CE2BA53FF97}</BucketFolderTemplateId>
                    </include>
                    -->

                    <!-- COMPUTED INDEX FIELDS 
                         This setting allows you to add fields to the index that contain values that are computed for the item that is being indexed.
                         You can specify the storageType and indextype for each computed index field in the <fieldMap><fieldNames> section.
                    -->
                    <fields hint="raw:AddComputedIndexField">
                        <field fieldName="default" tileName="default" siteContext="RenameMeArea">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                        <field fieldName="search result" tileName="Search Result" siteContext="RenameMeArea">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                        <field fieldName="autocomplete" tileName="Autocomplete" siteContext="RenameMeArea">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                        <field fieldName="quick view" tileName="Quick View" siteContext="RenameMeArea">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                    </fields>
                </documentOptions>

                <!-- **** Inherited default configuration **** -->
                <fieldReaders ref="contentSearch/indexConfigurations/scoreSolrConfiguration/fieldReaders"/>
                <indexFieldStorageValueFormatter ref="contentSearch/indexConfigurations/scoreSolrConfiguration/indexFieldStorageValueFormatter"/>
                <indexDocumentPropertyMapper ref="contentSearch/indexConfigurations/scoreSolrConfiguration/indexDocumentPropertyMapper"/>
                <documentBuilderType ref="contentSearch/indexConfigurations/scoreSolrConfiguration/documentBuilderType"/>
            </RenameMeAreaSolrIndexConfiguration>
        </indexConfigurations>

    </contentSearch>
</sitecore>
</configuration>

SOLR Index Configurations (Sitecore 8.0)

ContentSearch.Solr.IndexConfiguration.Sitecore.80x.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
    <contentSearch>
        <indexConfigurations>
            <!-- SOLR Sitecore compatibility table https://kb.sitecore.net/articles/227897 -->
            <!-- Please read more on how to setup SOLR on a Sitecore intance here: https://doc.sitecore.net/sitecore_experience_platform/82/setting_up_and_maintaining/search_and_indexing/walkthrough_setting_up_solr -->
            <RenameMeAreaSolrIndexConfiguration ref="contentSearch/indexConfigurations/scoreSolrConfiguration">
                <!-- For Solr Initialize() needs to be called after the IOC container has fired up -->
                <initializeOnAdd>false</initializeOnAdd>

                <!-- This flag will index all fields by default. This allows new fields in your templates to automatically be included into the index.
                   You have two choices : 
               
                   1) Set this to true and place all the fields you would like to remove in the 'ExcludeField' list below.
                   2) Set to false and place all fields you would like to be indexed in the 'IncludeField' list below.
                -->
                <indexAllFields>true</indexAllFields>

                <!-- DEFAULT FIELD MAPPING
                     The field map allows you to have full control over the way your data is stored in the index. This affects the way data is queried,
                     the performance of searching, and the way that data is retrieved and cast to a proper type in the API.
                -->
                <fieldMap ref="contentSearch/indexConfigurations/scoreSolrConfiguration/fieldMap">
                </fieldMap>

                <!-- 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>
                -->
                
                <!-- COMPUTED INDEX FIELDS 
                    This setting allows you to add fields to the index that contain values that are computed for the item that is being indexed.
                    You can specify the storageType and indextype for each computed index field in the <fieldMap><fieldNames> section.
                -->
                <fields hint="raw:AddComputedIndexField">
                    <field fieldName="default" tileName="default" siteContext="RenameMeArea">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                    <field fieldName="search result" tileName="Search Result" siteContext="RenameMeArea">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                    <field fieldName="autocomplete" tileName="Autocomplete" siteContext="RenameMeArea">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                    <field fieldName="quick view" tileName="Quick View" siteContext="RenameMeArea">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                </fields>
                
                <!-- **** Inherited default configuration **** -->
                <fieldReaders ref="contentSearch/indexConfigurations/scoreSolrConfiguration/fieldReaders"/>
                <indexFieldStorageValueFormatter ref="contentSearch/indexConfigurations/scoreSolrConfiguration/indexFieldStorageValueFormatter"/>
                <indexDocumentPropertyMapper ref="contentSearch/indexConfigurations/scoreSolrConfiguration/indexDocumentPropertyMapper"/>
                <documentBuilderType ref="contentSearch/indexConfigurations/scoreSolrConfiguration/documentBuilderType"/>
            </RenameMeAreaSolrIndexConfiguration>
        </indexConfigurations>

    </contentSearch>
</sitecore>
</configuration>

Lucene Index Configurations (Sitecore 8.1+):

ContentSearch.Lucene.IndexConfiguration.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
    <contentSearch>
        <indexConfigurations>
            <RenameMeAreaLuceneIndexConfiguration ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration">
                <!-- Should index Initialize() method be called as soon as the index is added or wait for an external trigger -->
                <initializeOnAdd>true</initializeOnAdd>

                <!-- DEFAULT FIELD MAPPING
                     The field map allows you to have full control over the way your data is stored in the index. This affects the way data is queried, 
                     the performance of searching, and the way that data is retrieved and cast to a proper type in the API. 
                -->
                <fieldMap ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/fieldMap">
                </fieldMap>
                                
                <documentOptions ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/documentOptions">
                    <!-- This flag will index all fields by default. This allows new fields in your templates to automatically be included into the index.
                         You have two choices : 
               
                         1) Set this to 'true' and place all the fields that you would like to remove in the 'ExcludeField' list.
                         2) Set to false and place all fields you would like to be indexed in the 'IncludeField' list below.
                    -->
                    <indexAllFields>true</indexAllFields>

                    <!-- 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:AddIncludedTemplate">
                        <BucketFolderTemplateId>{ADB6CA4F-03EF-4F47-B9AC-9CE2BA53FF97}</BucketFolderTemplateId>
                    </include>
                    -->

                    <!-- COMPUTED INDEX FIELDS 
                         This setting allows you to add fields to the index that contain values that are computed for the item that is being indexed.
                         You can specify the storageType and indextype for each computed index field in the <fieldMap><fieldNames> section.
                    -->
                    <fields hint="raw:AddComputedIndexField">
                        <field fieldName="default" tileName="default" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                        <field fieldName="search result" tileName="Search Result" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                        <field fieldName="autocomplete" tileName="Autocomplete" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                        <field fieldName="quick view" tileName="Quick View" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                    </fields>
                </documentOptions>

                <!-- **** Inherited default configuration **** -->
                <analyzer ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/analyzer"/>
                <fieldReaders ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/fieldReaders"/>
                <indexFieldStorageValueFormatter ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/indexFieldStorageValueFormatter"/>
                <indexDocumentPropertyMapper ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/indexDocumentPropertyMapper"/>
            </RenameMeAreaLuceneIndexConfiguration>
        </indexConfigurations>        
    </contentSearch>
</sitecore>
</configuration>

Lucene Index Configurations (Sitecore 8.0):

ContentSearch.Lucene.IndexConfiguration.Sitecore.80x.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
    <contentSearch>
        <indexConfigurations>
            <RenameMeAreaLuceneIndexConfiguration ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration">
                <!-- Should index Initialize() method be called as soon as the index is added or wait for an external trigger -->
                <initializeOnAdd>true</initializeOnAdd>
                <!-- This flag will index all fields by default. This allows new fields in your templates to automatically be included into the index.
                         You have two choices : 
               
                         1) Set this to 'true' and place all the fields that you would like to remove in the 'ExcludeField' list.
                         2) Set to false and place all fields you would like to be indexed in the 'IncludeField' list below.
                    -->
                <indexAllFields>true</indexAllFields>

                <!-- DEFAULT FIELD MAPPING
                     The field map allows you to have full control over the way your data is stored in the index. This affects the way data is queried, 
                     the performance of searching, and the way that data is retrieved and cast to a proper type in the API. 
                -->
                <fieldMap ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/fieldMap">
                </fieldMap>

                <!-- 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>
                -->

                <!-- COMPUTED INDEX FIELDS 
                        This setting allows you to add fields to the index that contain values that are computed for the item that is being indexed.
                        You can specify the storageType and indextype for each computed index field in the <fieldMap><fieldNames> section.
                -->
                <fields hint="raw:AddComputedIndexField">
                    <field fieldName="default" tileName="default" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                    <field fieldName="search result" tileName="Search Result" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                    <field fieldName="autocomplete" tileName="Autocomplete" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                    <field fieldName="quick view" tileName="Quick View" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                </fields>

                <!-- **** Inherited default configuration **** -->
                <analyzer ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/analyzer"/>
                <fieldReaders ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/fieldReaders"/>
                <indexFieldStorageValueFormatter ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/indexFieldStorageValueFormatter"/>
                <indexDocumentPropertyMapper ref="contentSearch/indexConfigurations/scoreLuceneIndexConfiguration/indexDocumentPropertyMapper"/>
            </RenameMeAreaLuceneIndexConfiguration>
        </indexConfigurations>        
    </contentSearch>
</sitecore>
</configuration>

Azure Index Configurations (Sitecore 8.1+):

ContentSearch.Azure.IndexConfiguration.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
        <contentSearch>
            <indexConfigurations>
                <!-- Azure Search Sitecore compatibility table https://kb.sitecore.net/articles/549969 -->
                <!-- Please read more on how to setup SOLR on a Sitecore intance here: https://doc.sitecore.net/sitecore_experience_platform/setting_up_and_maintaining/search_and_indexing/configure_azure_search -->
                <RenameMeAreaAzureIndexConfiguration ref="contentSearch/indexConfigurations/scoreCloudIndexConfiguration">
                    <!-- Should index Initialize() method be called as soon as the index is added or wait for an external trigger -->
                    <initializeOnAdd>true</initializeOnAdd>

                    <!-- DEFAULT FIELD MAPPING
                         The field map allows you to have full control over the way your data is stored in the index. This affects the way data is queried, 
                         the performance of searching, and the way that data is retrieved and cast to a proper type in the API. 
                    -->
                    <fieldMap ref="contentSearch/indexConfigurations/scoreCloudIndexConfiguration/fieldMap">
                    </fieldMap>

                    <documentOptions ref="contentSearch/indexConfigurations/scoreCloudIndexConfiguration/documentOptions">
                        <!-- This flag will index all fields by default. This allows new fields in your templates to automatically be included into the index.
                             You have two choices : 
               
                             1) Set this to 'true' and place all the fields that you would like to remove in the 'ExcludeField' list.
                             2) Set to false and place all fields you would like to be indexed in the 'IncludeField' list.
                        -->
                        <indexAllFields>true</indexAllFields>

                        <!-- 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:AddIncludedTemplate">
                            <ContentPage>{DED88E04-91BF-4F5B-B1CB-17251B9DD37F}</ContentPage>
                        </include>
                        -->

                        <!-- COMPUTED INDEX FIELDS 
                             This setting allows you to add fields to the index that contain values that are computed for the item that is being indexed.
                             You can specify the storageType and indextype for each computed index field in the <fieldMap><fieldNames> section.
                        -->
                        <fields hint="raw:AddComputedIndexField">
                            <field fieldName="default" tileName="default" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                            <field fieldName="search_result" tileName="Search Result" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                            <field fieldName="autocomplete" tileName="Autocomplete" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                            <field fieldName="quick_view" tileName="quick view" siteContext="RenameMeArea" returnType="System.String">Score.Custom.Indexing.PreviewField, Score.Custom</field>
                        </fields>
                    </documentOptions>

                    <!-- **** Inherited default configuration **** -->
                    <virtualFields ref="contentSearch/indexConfigurations/scoreCloudIndexConfiguration/virtualFields" />
                    <fieldReaders ref="contentSearch/indexConfigurations/scoreCloudIndexConfiguration/fieldReaders" />
                    <indexFieldStorageValueFormatter ref="contentSearch/indexConfigurations/scoreCloudIndexConfiguration/indexFieldStorageValueFormatter" />
                    <indexDocumentPropertyMapper ref="contentSearch/indexConfigurations/scoreCloudIndexConfiguration/indexDocumentPropertyMapper" />
                    <documentBuilderType ref="contentSearch/indexConfigurations/scoreCloudIndexConfiguration/documentBuilderType" />
                    <defaultSearchSecurityOption ref="contentSearch/indexConfigurations/defaultSearchSecurityOption" />
                    <cloudTypeMapper ref="contentSearch/indexConfigurations/scoreCloudIndexConfiguration/cloudTypeMapper" />
                </RenameMeAreaAzureIndexConfiguration>
            </indexConfigurations>
        </contentSearch>
    </sitecore>
</configuration>


Tenant Specific Index Definition

Here is an example on how to register your tenant specific index for 3 the most popular search engine:

Important Note

Please replace "RenameMeArea" token with your Tenant name (example: MySite)

Please replace "RenameMeIndex" token with your Tenant name lowercase (example: mysite)

SOLR Index definition:

ContentSearch.Solr.Index.Master.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
        <contentSearch>
            <configuration>
                <indexes hint="list:AddIndex">
                    <!-- SOLR Sitecore compatibility table https://kb.sitecore.net/articles/227897 -->
                    <!-- Please read more on how to setup SOLR on a Sitecore intance here: https://doc.sitecore.net/sitecore_experience_platform/82/setting_up_and_maintaining/search_and_indexing/walkthrough_setting_up_solr -->
                    <index id="RenameMeIndex_tenant_master_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
                        <param desc="name">$(id)</param>
                        <param desc="core">RenameMeIndex_tenant_master_index</param>
                        <!-- This initializes index property store. Id has to be set to the index id -->
                        <param ref="contentSearch/indexConfigurations/databasePropertyStore" desc="propertyStore" param1="$(id)"/>

                        <configuration ref="contentSearch/indexConfigurations/RenameMeAreaSolrIndexConfiguration" />
                        <!--<configuration ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration" />-->

                        <strategies hint="list:AddStrategy">
                            <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster"/>
                        </strategies>

                        <locations hint="list:AddCrawler">
                            <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                                <Database>master</Database>
                                <Root>/sitecore/content</Root>
                            </crawler>
                        </locations>

                        <enableItemLanguageFallback>false</enableItemLanguageFallback>
                        <enableFieldLanguageFallback>false</enableFieldLanguageFallback>
                    </index>

                </indexes>
            </configuration>
        </contentSearch>
    </sitecore>
</configuration>
ContentSearch.Solr.Index.Web.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
        <contentSearch>
            <configuration>
                <indexes hint="list:AddIndex">
                    <!-- SOLR Sitecore compatibility table https://kb.sitecore.net/articles/227897 -->
                    <!-- Please read more on how to setup SOLR on a Sitecore intance here: https://doc.sitecore.net/sitecore_experience_platform/82/setting_up_and_maintaining/search_and_indexing/walkthrough_setting_up_solr -->
                    <index id="RenameMeIndex_tenant_web_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
                        <param desc="name">$(id)</param>
                        <param desc="core">RenameMeIndex_tenant_web_index</param>
                        <!-- This initializes index property store. Id has to be set to the index id -->
                        <param ref="contentSearch/indexConfigurations/databasePropertyStore" desc="propertyStore" param1="$(id)"/>

                        <configuration ref="contentSearch/indexConfigurations/RenameMeAreaSolrIndexConfiguration" />
                        <!--<configuration ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration" />-->

                        <strategies hint="list:AddStrategy">
                            <!-- NOTE: order of these is controls the execution order -->
                            <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/onPublishEndAsync"/>
                        </strategies>

                        <locations hint="list:AddCrawler">
                            <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                                <Database>web</Database>
                                <Root>/sitecore/content</Root>
                            </crawler>
                        </locations>

                        <enableItemLanguageFallback>false</enableItemLanguageFallback>
                        <enableFieldLanguageFallback>false</enableFieldLanguageFallback>
                    </index>
                </indexes>
            </configuration>
        </contentSearch>
    </sitecore>
</configuration>


Lucene Index definition:

ContentSearch.Lucene.Index.Master.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
    <contentSearch>        
        <configuration>
            <indexes hint="list:AddIndex">
                <index id="RenameMeIndex_tenant_master_index" type="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider">
                    <param desc="name">$(id)</param>
                    <param desc="folder">$(id)</param>
                    <!-- This initializes index property store. Id has to be set to the index id -->
                    <param ref="contentSearch/indexConfigurations/databasePropertyStore" desc="propertyStore" param1="$(id)"/>

                    <configuration ref="contentSearch/indexConfigurations/RenameMeAreaLuceneIndexConfiguration" />

                    <strategies hint="list:AddStrategy">
                        <!-- NOTE: order of these is controls the execution order -->
                        <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/onPublishEndAsync" />
                    </strategies>

                    <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
                        <policies hint="list:AddCommitPolicy">
                            <policy type="Sitecore.ContentSearch.ModificationCountCommitPolicy, Sitecore.ContentSearch">
                                <Limit>300</Limit>
                            </policy>
                        </policies>
                    </commitPolicyExecutor>

                    <locations hint="list:AddCrawler">
                        <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                            <Database>master</Database>
                            <Root>/sitecore/content</Root>
                        </crawler>
                    </locations>

                    <enableItemLanguageFallback>false</enableItemLanguageFallback>
                    <enableFieldLanguageFallback>false</enableFieldLanguageFallback>
                </index>

            </indexes>
        </configuration>
    </contentSearch>
</sitecore>
</configuration>
ContentSearch.Lucene.Index.Web.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
    <contentSearch>
        <configuration>
            <indexes hint="list:AddIndex">
                <index id="RenameMeIndex_tenant_web_index" type="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider">
                    <param desc="name">$(id)</param>
                    <param desc="folder">$(id)</param>
                    <!-- This initializes index property store. Id has to be set to the index id -->
                    <param ref="contentSearch/indexConfigurations/databasePropertyStore" desc="propertyStore" param1="$(id)"/>

                    <configuration ref="contentSearch/indexConfigurations/RenameMeAreaLuceneIndexConfiguration" />

                    <strategies hint="list:AddStrategy">
                        <!-- NOTE: order of these is controls the execution order -->
                        <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/onPublishEndAsync" />
                    </strategies>

                    <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
                        <policies hint="list:AddCommitPolicy">
                            <policy type="Sitecore.ContentSearch.ModificationCountCommitPolicy, Sitecore.ContentSearch">
                                <Limit>300</Limit>
                            </policy>
                        </policies>
                    </commitPolicyExecutor>

                    <locations hint="list:AddCrawler">
                        <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                            <Database>web</Database>
                            <Root>/sitecore/content</Root>
                        </crawler>
                    </locations>

                    <enableItemLanguageFallback>false</enableItemLanguageFallback>
                    <enableFieldLanguageFallback>false</enableFieldLanguageFallback>
                </index>
            </indexes>
        </configuration>
    </contentSearch>
</sitecore>
</configuration>


Azure Index definition:

ContentSearch.Azure.Index.Master.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
        <contentSearch>
            <configuration>
                <indexes hint="list:AddIndex">
                    <index id="RenameMeIndex_tenant_master_index" type="Sitecore.ContentSearch.Azure.CloudSearchProviderIndex, Sitecore.ContentSearch.Azure">
                        <param desc="name">$(id)</param>
                        <param desc="connectionStringName">cloud.search</param>
                        <param desc="totalParallelServices">5</param>
                        <!-- This initializes index property store. Id has to be set to the index id -->
                        <param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />
                        <configuration ref="contentSearch/indexConfigurations/RenameMeAreaAzureIndexConfiguration" />
                        <schemaBuilder ref="contentSearch/searchServiceSchemaBuilder" />
                        <searchService type="Sitecore.ContentSearch.Azure.Http.CompositeSearchService, Sitecore.ContentSearch.Azure"/>

                        <strategies hint="list:AddStrategy">
                            <!-- NOTE: order of these is controls the execution order -->
                            <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster" />
                        </strategies>
                        
                        <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
                            <policies hint="list:AddCommitPolicy">
                                <policy type="Sitecore.ContentSearch.TimeIntervalCommitPolicy, Sitecore.ContentSearch" />
                                <policy type="Sitecore.ContentSearch.ModificationCountCommitPolicy, Sitecore.ContentSearch">
                                    <Limit>1000</Limit>
                                </policy>
                            </policies>
                        </commitPolicyExecutor>
                        
                        <locations hint="list:AddCrawler">
                            <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                                <Database>master</Database>
                                <Root>/sitecore/content</Root>
                            </crawler>
                        </locations>
                        <enableItemLanguageFallback>false</enableItemLanguageFallback>
                        <enableFieldLanguageFallback>false</enableFieldLanguageFallback>
                    </index>

                </indexes>
            </configuration>
        </contentSearch>
    </sitecore>
</configuration>
ContentSearch.Azure.Index.Web.config
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
    <sitecore>
        <contentSearch>
            <configuration>
                <indexes hint="list:AddIndex">
                    <index id="RenameMeIndex_tenant_web_index" type="Sitecore.ContentSearch.Azure.CloudSearchProviderIndex, Sitecore.ContentSearch.Azure">
                        <param desc="name">$(id)</param>
                        <param desc="connectionStringName">cloud.search</param>
                        <param desc="totalParallelServices">5</param>
                        <!-- This initializes index property store. Id has to be set to the index id -->
                        <param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />
                        <configuration ref="contentSearch/indexConfigurations/RenameMeAreaAzureIndexConfiguration" />
                        <schemaBuilder ref="contentSearch/searchServiceSchemaBuilder" />
                        <searchService type="Sitecore.ContentSearch.Azure.Http.CompositeSearchService, Sitecore.ContentSearch.Azure"/>

                        <strategies hint="list:AddStrategy">
                            <!-- NOTE: order of these is controls the execution order -->
                            <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster" />
                        </strategies>

                        <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
                            <policies hint="list:AddCommitPolicy">
                                <policy type="Sitecore.ContentSearch.TimeIntervalCommitPolicy, Sitecore.ContentSearch" />
                                <policy type="Sitecore.ContentSearch.ModificationCountCommitPolicy, Sitecore.ContentSearch">
                                    <Limit>1000</Limit>
                                </policy>
                            </policies>
                        </commitPolicyExecutor>

                        <locations hint="list:AddCrawler">
                            <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                                <Database>web</Database>
                                <Root>/sitecore/content</Root>
                            </crawler>
                        </locations>
                        <enableItemLanguageFallback>false</enableItemLanguageFallback>
                        <enableFieldLanguageFallback>false</enableFieldLanguageFallback>
                    </index>
                </indexes>
            </configuration>
        </contentSearch>
    </sitecore>
</configuration>