ElasticSearch.net NEST批量创建修改删除索引完整示例

本文介绍了如何使用Elasticsearch.net(NEST)客户端进行批量创建、修改和删除Elasticsearch索引的完整示例。在处理大量数据时,批量操作能有效避免因请求过多导致的429错误。文章还涵盖了单个索引的增删改操作,以及对NEST结构化查询的简要提及。
摘要由CSDN通过智能技术生成

本示例采用Elasticsearch+Nest

网上查了很多资料,发现用C#调用Elasticsearch搜索引擎的功能代码很分散,功能不完整,多半是非常简单的操作,没有成型的应用示例。比如新增或修改索引,都是发起一个request新增或修改一条数据,当一次性修改几千条数据时,发起的requst请求过多容易导致429 Too Many Request的错误,单个新增修改索引就非常不适用。其实Nest有批量新增、修改索引的功能,批量删除也可以。现将项目中采用Elasticsearch的C#代码分享如下:

使用NEST客户端

1.连接

        public ElasticClient GetElasticClient(string esServer, string IndexName)
        {
            ElasticClient client = null;
            string[] server = esServer.Split(',');
            Uri[] nodes = new Uri[server.Length];
            for (int i = 0; i < server.Length;i++ )
            {
                nodes[i] = new Uri(server[i]);
            }
            var connectionPool = new SniffingConnectionPool(nodes);
            var settings = new ConnectionSettings(
                connectionPool
            );
            settings.DefaultIndex(IndexName); 
            client = new ElasticClient(settings);
            return client;
        }
2.添加索引

            var indexExist = client.IndexExists(IndexName);
            if (!indexExist.Exists)
            {
                //基本配置
                IIndexState indexState = new IndexState()
                {
                    Settings = new IndexSettings()
                    {
                        NumberOfReplicas = 1,//副本数
                        NumberOfShards = 6//分片数
                    }
                };
                //ICreateIndexResponse response = client.CreateIndex(IndexName, p => p.Mappings(m => m.Map<ES_PUB_Stock>(mp => mp.AutoMap())));
                ICreateIndexResponse response = client.CreateI
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值