private static IElasticClient GetElasticClient(Uri serverUri, bool deleteExistingIndexes = false) { var settings = new ConnectionSettings(serverUri).SetDefaultIndex("_all"); settings.EnableMetrics(); settings.SetJsonSerializerSettingsModifier(s => { s.ContractResolver = new EmptyCollectionElasticContractResolver(settings); s.AddModelConverters(); }); settings.MapDefaultTypeNames(m => m.Add(typeof(PersistentEvent), "events").Add(typeof(Stack), "stacks")); settings.MapDefaultTypeIndices(m => m.Add(typeof(Stack), ElasticSearchRepository<Stack>.StacksIndexName)); settings.MapDefaultTypeIndices(m => m.Add(typeof(PersistentEvent), ElasticSearchRepository<PersistentEvent>.EventsIndexName + "-*")); settings.SetDefaultPropertyNameInferrer(p => p.ToLowerUnderscoredWords()); var client = new ElasticClient(settings); ConfigureMapping(client, deleteExistingIndexes); return client; }