/// <summary> /// Create a alias for the given indices. /// </summary> public async Task <string> MergeIndicesAsync(params string[] indices) { if (indices.Length < 2) { throw new ArgumentException( "At least two indices are needed to create a merged index"); } string alias = Guid.NewGuid().ToString(); IEnumerable <AliasAddDescriptor> createDescriptors = indices .Select(index => new AliasAddDescriptor() .Alias(alias) .Index(index)); BulkAliasDescriptor aliasDescriptor = new BulkAliasDescriptor(); foreach (AliasAddDescriptor aliasAddDescriptor in createDescriptors) { aliasDescriptor.Add(aliasAddDescriptor); } IBulkAliasResponse bulkAliasResponse = await Client.AliasAsync(aliasDescriptor); if (!bulkAliasResponse.IsValid) { throw new InvalidOperationException( $"Could not create alias for the indices \"{string.Join(",", indices)}\": {bulkAliasResponse.DebugInformation}", bulkAliasResponse.OriginalException); } await Client.RefreshAsync(Indices.All); return(alias); }
public bool DeleteAlias(CatAliasesRecord alias) { IBulkAliasResponse aliasResponse = client.Alias(a => a.Remove(r => r.Index(alias.Index).Alias(alias.Alias))); return(aliasResponse.Acknowledged); }