首页 > 其他 > 详细

nest客户端

时间:2020-08-12 15:04:21      阅读:73      评论:0      收藏:0      [点我收藏+]

一、客户端封装

技术分享图片
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;
        }


    }
}
ElasticsearchUtils

二、CURD

技术分享图片
 DataService dataService = new DataService();
            for (int i = 0; i < 10000; i++)
            {
                var logs = dataService.GetSource(i * 10, 10);

                var logsv2 = new List<request_audit_logs_v2>();
                foreach (var item in logs)
                {
                    //var aa = JsonConvert.DeserializeObject<dynamic>(item.request_content);
                    //var aaa = aa.parm.Token;
                    request_audit_logs_v2 log = new request_audit_logs_v2();
                    log.api = log.api;
                    log.key = item.key;
                    log.post_type = item.post_type;
                    log.url = item.url;
                    log.request_content = item.request_content;
                    log.hander = item.hander;
                    log.status = item.status;
                    log.response_content = item.response_content;
                    log.request_time = item.request_time.ToString("yyyy-MM-dd HH:mm:ss");
                    log.response_time = item.response_time.ToString("yyyy-MM-dd HH:mm:ss");
                    log.exception = item.exception;
                    log.run_time = item.run_time;
                    log.thread_num = item.thread_num;
                    log.create_time = item.create_time.ToString("yyyy-MM-dd HH:mm:ss"); 
                    log.modify_time =item.modify_time.ToString("yyyy-MM-dd HH:mm:ss");
                    log.user_name = item.user_name;
                    logsv2.Add(log);
                    //var atters1 = ElasticsearchUtils.GetInstance().LinqClient().Bulk(p => p.Create<object>(c => c.Index("request_audit_logs").Document(log)));

                }
                var bulkAllObserver = new BulkAllObserver();
                var aa= ElasticsearchUtils.GetInstance().LinqClient().BulkAll(logsv2, f => f.Index("request_audit_logs"));
                aa.Subscribe(bulkAllObserver);
            }
            Console.WriteLine("完成");
            Console.ReadKey();
Bulk与BulkAll

 

nest客户端

原文:https://www.cnblogs.com/zd1994/p/13490271.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!