java中使用es
es的java驅(qū)動(dòng)包,在不同的版本中會(huì)有不同的兼容性問題顾稀,所以在使用時(shí)一定要注意依賴的版本避咆,這里筆者采用的是官網(wǎng)最新的6.2.3
版本。
依賴
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>6.2.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.2.3</version>
</dependency>
Demo例子
-
創(chuàng)建
TransportClient
類:# 這里默認(rèn)配置一個(gè)es的集群名字 Settings settings = Settings.builder() .put("cluster.name", "my-application").build(); TransportClient client = new PreBuiltTransportClient(settings) .addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9301)) .addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
-
在索引下插入數(shù)據(jù)
Map data = new HashMap<>(); data.put("test", "test log"); data.put("time", System.currentTimeMillis()); IndexResponse response = client.prepareIndex("test", "log", UUID.randomUUID().toString()).setSource(data).get(); System.out.println("id: "+response.getId());
-
批量插入數(shù)據(jù)
public void batchInsert(List<JSONObject> list) { if (list.size() > 0) { BulkRequestBuilder prepareBulk = client.prepareBulk(); for (JSONObject jsonObject : list) { prepareBulk.add(client.prepareIndex(INDEX, TYPE, UUID.randomUUID().toString()).setSource(jsonObject)); } BulkResponse bulkResponse = prepareBulk.get(); RestStatus status = bulkResponse.status(); if (status.getStatus() == 200) { logger.warn("[add] - batch add log fail, statue: {}, data: {}", status, JSON.toJSON(list).toString()); } } }