使用java api批量插入数据,主要参考官网的api,主要是client和Document APIs-Index API部分。
pom依赖
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.4.0</version>
</dependency>
主要代码
Settings settings = Settings.settingsBuilder().put("cluster.name", "es1").build();
TransportClient client = TransportClient.builder().settings(settings).build();
client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("bigdata2"), 9300));
Long count = 100000L;
String index = "bigdata";
String type = "student1";
BulkRequestBuilder bulkRequest = client.prepareBulk();
for (int i = 0; i < count; i++) {
Map<String, Object> ret = new HashMap<String, Object>();
ret.put("recordtime", 11);
ret.put("area", 22);
ret.put("usertype", 33);
ret.put("count", 44);
bulkRequest.add(client.prepareIndex(index, type).setSource(ret));
// 每10000条提交一次
if (i % 10000 == 0) {
bulkRequest.execute().actionGet();
bulkRequest = client.prepareBulk();
}
bulkRequest.execute().actionGet();
}
参考:
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html
elasticsearch批量数据导入和导出