private IList <CatAliasesRecord> GetAliasList(IElasticClient client)
        {
            var result = client.CatAliases(
                d => d.RequestConfiguration(r =>
                                            r.RequestTimeout(5 * 60 * 1000)));

            return(result.Records.ToList());
        }
        public void SwitchAliasToIndex(string indexName)
        {
            var catAliases = _client.CatAliases(new CatAliasesRequest(_aliasName));
            var oldIndexes = catAliases.Records.Select(x => x.Index);

            var response = _client.Alias(a => RemoveIndexesFromAlias(a, oldIndexes).Add(i => i.Index(indexName).Alias(_aliasName)));

            if (!response.IsValid)
            {
                throw new Exception("Failed while switching index alias.", response.OriginalException);
            }

            foreach (var index in oldIndexes)
            {
                _client.DeleteIndexAsync(new DeleteIndexRequest(index));
            }
        }