コード例 #1
0
        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));
        }
コード例 #2
0
        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();
        }
コード例 #3
0
 public virtual IPromise <IAliases> ConfigureIndexAliases(AliasesDescriptor aliases)
 {
     return(aliases);
 }
コード例 #4
0
 public virtual AliasesDescriptor ConfigureIndexAliases(AliasesDescriptor aliases)
 {
     return(aliases);
 }