ElasticSearchSetup.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. // 大名科技(天津)有限公司版权所有 电话:18020030720 QQ:515096995
  2. //
  3. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证
  4. using Elasticsearch.Net;
  5. using Nest;
  6. namespace Admin.NET.Core;
  7. /// <summary>
  8. /// ES服务注册
  9. /// </summary>
  10. public static class ElasticSearchSetup
  11. {
  12. public static void AddElasticSearch(this IServiceCollection services)
  13. {
  14. var enabled = App.GetConfig<bool>("Logging:ElasticSearch:Enabled", true);
  15. if (!enabled) return;
  16. var serverUris = App.GetConfig<List<string>>("Logging:ElasticSearch:ServerUris", true);
  17. var defaultIndex = App.GetConfig<string>("Logging:ElasticSearch:DefaultIndex", true);
  18. var uris = serverUris.Select(u => new Uri(u));
  19. // 集群
  20. var connectionPool = new SniffingConnectionPool(uris);
  21. var connectionSettings = new ConnectionSettings(connectionPool).DefaultIndex(defaultIndex);
  22. // 单连接
  23. //var connectionSettings = new ConnectionSettings(new SingleNodeConnectionPool(uris.FirstOrDefault())).DefaultIndex(defaultIndex);
  24. var client = new ElasticClient(connectionSettings);
  25. client.Indices.Create(defaultIndex, u => u.Map<SysLogOp>(m => m.AutoMap()));
  26. services.AddSingleton(client); // 单例注册
  27. }
  28. }