ElasticsearchTemplate 批量插入

public void bulkIndex() throws Exception {
        int counter = 0;
        try {
            List queries = new ArrayList();

            String sql = "xxxx";

            List<Model> list = jdbcTemplate.query(sql, (rs, rowNum) -> {
                Model model = new Model
                return model ;
            });


            for (Model item : list) {
                IndexQuery indexQuery = new IndexQuery();
                indexQuery.setId(item.getPaymentReportId().toString());
                indexQuery.setSource(JSON.toJSONString(item));
                indexQuery.setIndexName("new_report_system");
                indexQuery.setType("payment_report");
                queries.add(indexQuery);
                //分批提交索引
                if (counter != 0 && counter % 1000 == 0) {
                    elasticsearchTemplate.bulkIndex(queries);
                    queries.clear();
                    System.out.println("bulkIndex counter : " + counter);
                }
                counter++;
            }
            //不足批的索引最后不要忘记提交
            if (queries.size() > 0) {
                elasticsearchTemplate.bulkIndex(queries);
            }
            elasticsearchTemplate.refresh("new_report_system");
            System.out.println("bulkIndex completed.");
        } catch (Exception e) {
            System.out.println("IndexerService.bulkIndex e;" + e.getMessage());
            throw e;
        }
    }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值