コード例 #1
0
        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;
        }