public virtual CreateIndexDescriptor ConfigureIndex(CreateIndexDescriptor idx) { var aliases = new AliasesDescriptor(); var mappings = new MappingsDescriptor(); foreach (var t in IndexTypes) { aliases = t.ConfigureIndexAliases(aliases); mappings = t.ConfigureIndexMappings(mappings); } return(idx.Aliases(a => aliases).Mappings(m => mappings)); }
public virtual async Task EnsureIndexAsync(DateTime utcDate) { var indexExpirationUtcDate = GetIndexExpirationDate(utcDate); if (SystemClock.UtcNow > indexExpirationUtcDate) { throw new ArgumentException($"Index max age exceeded: {indexExpirationUtcDate}", nameof(utcDate)); } var expires = indexExpirationUtcDate < DateTime.MaxValue ? indexExpirationUtcDate : (DateTime?)null; string unversionedIndexAlias = GetIndex(utcDate); if (await _aliasCache.ExistsAsync(unversionedIndexAlias).AnyContext()) { return; } if (await AliasExistsAsync(unversionedIndexAlias).AnyContext()) { await _aliasCache.SetAsync(unversionedIndexAlias, unversionedIndexAlias, expires).AnyContext(); return; } // try creating the index. string index = GetVersionedIndex(utcDate); await CreateIndexAsync(index, descriptor => { var aliasesDescriptor = new AliasesDescriptor().Alias(unversionedIndexAlias); foreach (var a in Aliases.Where(a => ShouldCreateAlias(utcDate, a))) { aliasesDescriptor.Alias(a.Name); } return(ConfigureIndex(descriptor).Aliases(a => aliasesDescriptor)); }).AnyContext(); await _aliasCache.SetAsync(unversionedIndexAlias, unversionedIndexAlias, expires).AnyContext(); }
public virtual IPromise <IAliases> ConfigureIndexAliases(AliasesDescriptor aliases) { return(aliases); }
public virtual AliasesDescriptor ConfigureIndexAliases(AliasesDescriptor aliases) { return(aliases); }