先上官方示例代碼:官方示例
Java代碼:
// 批量插入數據 public void InsertBatch() { try { // 設置集群名稱 Settings settings = Settings.builder().put("cluster.name", "my-es-analyze").build(); // 創建client TransportClient client = new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.33.5"), 9300)) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.33.50"), 9300)); /* 批量操作開始 */ BulkRequestBuilder bulkRequest = client.prepareBulk(); InsertDomain insertDomain = null; String json = null; // 讀取數據源 excel/mysql等 List<List<String>> list = "你的數據源"; if (list != null) { System.out.println("開始批量插入"); for (int i = 0; i < list.size(); i++) { // 數據讀取(略)根據自已的業務進行。 json = JSONUtils.toJSON(inputDomain); //轉Json bulkRequest.add(client.prepareIndex("index", "type").setSource(json)); //每一千條提交一次 if (i % 1000 == 0) { bulkRequest.execute().actionGet(); System.out.println("提交了:" + i); } } bulkRequest.execute().actionGet(); System.out.println("批量插入完畢"); } /* 批量操作結束 */ // 關閉client client.close(); } catch (Exception e) { e.printStackTrace(); } }