一、客户端封装
using Elasticsearch.Net; using Nest; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace esdemo { public class ElasticsearchUtils { private static ElasticsearchUtils _elasticsearchUtils; /// <summary> /// Linq查询的官方Client /// </summary> private static IElasticClient _elasticLinqClient { get; set; } /// <summary> /// Js查询的官方Client /// </summary> private static IElasticLowLevelClient _elasticJsonClient { get; set; } private ElasticsearchUtils() { } private static readonly object eslock = new object(); public static ElasticsearchUtils GetInstance() { if (_elasticsearchUtils == null) { lock (eslock) { if (_elasticsearchUtils == null) { var urls = "http://192.168.0.150:9200"; var username = "elastic"; var passowrd = "123456"; var uris = urls.Split(",").ToList().ConvertAll(x => new Uri(x));//配置节点地址,以,分开 var connectionPool = new StaticConnectionPool(uris);//配置请求池 var settings = new ConnectionSettings(connectionPool) .BasicAuthentication(username, passowrd) .RequestTimeout(TimeSpan.FromSeconds(30));//请求配置参数 _elasticLinqClient = new ElasticClient(settings); _elasticJsonClient = new ElasticLowLevelClient(settings); _elasticsearchUtils = new ElasticsearchUtils(); } } } return _elasticsearchUtils; } public IElasticClient LinqClient() { return _elasticLinqClient; } public IElasticLowLevelClient JsonClient() { return _elasticJsonClient; } } }