Exemplo n.º 1
0
        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));
        }