1、单条插入(推荐设定主键id防止重复)
public static String addIndex(String index,String type,HashMap<String, Object> hashMap){
hashMap.put("id", "3"); //这里如果不指定id的话elasticsearch会自动创建主键id,
hashMap.put("title","双宿双飞从");
hashMap.put("describe", "测试123");
hashMap.put("author", "测试doc");
TransportClient client=EsClientPool.getInstance().getClient();
try {
IndexResponse response = client.prepareIndex(index, type,hashMap.get("id").toString())
.setSource(hashMap).execute().actionGet();
System.out.println(response.getId());
return response.getId(); //返回主键
} catch (Exception e) {
// TODO: handle exception
return null;
}finally{
client.close();//关闭连接
}
}
2、批量插入
public static void addAllIndex(String index,String type,HashMap<String, Object> hashMap){
hashMap.put("title","双宿双飞从");
hashMap.put("describe", "测试123");
hashMap.put("author", "测试doc");
TransportClient client=EsClientPool.getInstance().getClient();
try {
BulkRequestBuilder bulkRequest = client.prepareBulk();
for (int i = 0; i < 10000; i++) {
bulkRequest.add(client.prepareIndex(index, type).setSource(hashMap));
// 每1000条提交一次
if (i % 10000 == 0) {
bulkRequest.execute().actionGet();
}
}
} catch (Exception e) {
}finally{
client.close();
}
}