public IElasticClient GetClient(IEnumerable<Uri> serverUris) { var connectionPool = new StaticConnectionPool(serverUris); var indexes = GetIndexes(); var settings = new ConnectionSettings(connectionPool) .MapDefaultTypeIndices(t => t.AddRange(indexes.GetTypeIndices())) .MapDefaultTypeNames(t => t.AddRange(indexes.GetIndexTypeNames())) .SetDefaultTypeNameInferrer(p => p.Name.ToLowerUnderscoredWords()) .SetDefaultPropertyNameInferrer(p => p.ToLowerUnderscoredWords()) .MaximumRetries(5); settings.SetJsonSerializerSettingsModifier(s => { s.ContractResolver = new EmptyCollectionElasticContractResolver(settings); s.AddModelConverters(); }); var client = new ElasticClient(settings, new KeepAliveHttpConnection(settings)); ConfigureIndexes(client); return client; }
public static IElasticClient CreateClient(IContainer container) { var configuration = ClientConfigurationSection.GetConfiguration(); var connectionSettings = new ConnectionSettings( new Uri(configuration.ElasticSearchUrl) ); ConfigureIdProperty(connectionSettings); connectionSettings.SetJsonSerializerSettingsModifier(x => { x.Converters = ContentIndexer.Instance.IndexingConventions.JsonConverters; x.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; }); connectionSettings.SetDefaultTypeNameInferrer(x => typeof(IContent).IsAssignableFrom(x) ? Constants.EPiServerContentTypeName : null); connectionSettings.SetDefaultIndex(container.GetInstance<IndexResolver>().ResolveIndex()); connectionSettings.ExposeRawResponse(); container.Configure(x => x.For<ConnectionSettings>().Use(connectionSettings)); return new ElasticClient(connectionSettings, null, new PreSerializationProccessor(connectionSettings)); }
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; }