private void UpdateMappings(IList <LanguageBranch> languages, string indexName = null)
        {
            // Update mappings
            foreach (var language in languages.Select(l => l.LanguageID))
            {
                try
                {
                    if (String.IsNullOrWhiteSpace(indexName))
                    {
                        indexName = _settings.GetDefaultIndexName(language);
                    }
                    else
                    {
                        indexName = _settings.GetCustomIndexName(indexName, language);
                    }

                    _logger.Debug("Index: " + indexName);

                    var indexing = new Indexing(_settings);

                    if (!indexing.IndexExists(indexName))
                    {
                        throw new Exception("Index does not exist");
                    }

                    OnStatusChanged("Updating mapping for index " + indexName);

                    _coreIndexer.UpdateMapping(typeof(IndexItem), typeof(IndexItem), indexName);

                    ContentExtensions.CreateAnalyzedMappingsIfNeeded(typeof(IndexItem), language, indexName);
                    ContentExtensions.CreateDidYouMeanMappingsIfNeeded(typeof(IndexItem), language, indexName);
                }
                catch (Exception ex)
                {
                    _logger.Warning("Uh oh...", ex);
                }
            }
        }
        private void UpdateMappings(IEnumerable <LanguageBranch> languages, Type[] contentTypes)
        {
            foreach (var language in languages.Select(l => l.LanguageID))
            {
                try
                {
                    var indexName = GetIndexName(language);
                    _logger.Debug("Index: " + indexName);
                    OnStatusChanged("Updating mapping for index " + indexName);

                    foreach (var type in contentTypes)
                    {
                        _coreIndexer.UpdateMapping(type, typeof(IndexItem), indexName);
                        ContentExtensions.CreateAnalyzedMappingsIfNeeded(type, language, indexName);
                        ContentExtensions.CreateDidYouMeanMappingsIfNeeded(type, language, indexName);
                    }
                }
                catch (Exception ex)
                {
                    _logger.Warning("Failed to update mappings", ex);
                }
            }
        }