/// <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);
        }
예제 #2
0
        public bool DeleteAlias(CatAliasesRecord alias)
        {
            IBulkAliasResponse aliasResponse = client.Alias(a => a.Remove(r => r.Index(alias.Index).Alias(alias.Alias)));

            return(aliasResponse.Acknowledged);
        }