ElasticSearchSetup.cs 844 B

1234567891011121314151617181920212223242526
  1. using Elasticsearch.Net;
  2. using Nest;
  3. namespace Admin.NET.Core;
  4. /// <summary>
  5. /// ES服务注册
  6. /// </summary>
  7. public static class ElasticSearchSetup
  8. {
  9. public static void AddElasticSearch(this IServiceCollection services)
  10. {
  11. var enabled = App.GetConfig<bool>("Logging:ElasticSearch:Enabled");
  12. if (!enabled) return;
  13. var serverUris = App.GetConfig<List<string>>("Logging:ElasticSearch:ServerUris");
  14. var defaultIndex = App.GetConfig<string>("Logging:ElasticSearch:DefaultIndex");
  15. var uris = serverUris.Select(u => new Uri(u));
  16. var connectionPool = new SniffingConnectionPool(uris);
  17. var settings = new ConnectionSettings(connectionPool).DefaultIndex(defaultIndex);
  18. var client = new ElasticClient(settings);
  19. services.AddSingleton(client); // 单例注册
  20. }
  21. }