频道栏目
首页 > 资讯 > 云计算 > 正文

ElasticSearch教程之bulk操作解析

17-11-01        来源:[db:作者]  
收藏   我要投稿

ElasticSearch教程之bulk操作解析

1.bulk操作

bulk操作的api

  XContentBuilder xContentBuilder1 = XContentFactory.jsonBuilder()
                .startObject().field("name","1234").endObject();
        XContentBuilder xContentBuilder2 = XContentFactory.jsonBuilder()
                .startObject().field("name","4321").endObject();
        XContentBuilder xContentBuilder3 = XContentFactory.jsonBuilder()
                .startObject().field("name","9999").endObject();
        BulkRequestBuilder bulk = client.prepareBulk();
        bulk.add(new IndexRequest(index,type,"3").source(xContentBuilder1));
        bulk.add(new IndexRequest(index,type,"4").source(xContentBuilder2));
        bulk.add(new IndexRequest(index,type,"5").source(xContentBuilder3));
        BulkResponse responses = bulk.get();
        Iterator iterator = responses.iterator();
        for (BulkItemResponse respons : responses) {
            System.out.println(respons.getResponse());
        }

bulkprocess的方式

    BulkProcessor build = BulkProcessor.builder(client, new BulkProcessor.Listener() {

            @Override
            public void beforeBulk(long l, BulkRequest bulkRequest) {
                System.out.println("执行前");
            }

            @Override
            public void afterBulk(long l, BulkRequest bulkRequest, BulkResponse bulkResponse) {
                System.out.println("执行后");
            }

            @Override
            public void afterBulk(long l, BulkRequest bulkRequest, Throwable throwable) {
                System.out.println("处理异常");
            }
        })
                .setBulkActions(10000)//设置bulk执行数
                .setBulkSize(new ByteSizeValue(5, ByteSizeUnit.MB))//设置bulk处理的大小
                //设置超时和重调次数
                .setBackoffPolicy(BackoffPolicy.exponentialBackoff(TimeValue.timeValueMillis(100), 3))
                .setConcurrentRequests(1)//设置并发量
                .build();
//            build.add()  这里添加批处理的操作
              build.flush();
              build.close();
相关TAG标签
上一篇:私有云平台之Seafile搭建安装教程
下一篇:python开发冒泡排序实方案
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站