Elasticsearch
Elasticsearch + spirng boot 연동(DELETE)
illho
2024. 3. 31. 13:01
오늘은 자바에서 Elasticsearch 데이터를 삭제해보려고 한다.
저번 실습에서 추가한 DocumentApi.java 에 삭제를 요청하는 기능을 추가한다.
DocumentApi.java
private Boolean _bulkDocumentWithBulkProcessor(ArrayList<BulkData> bulkList, int bulkActions) {
boolean terminated = false ;
BulkProcessor bulkProcessor = _getBulkProcessor(bulkActions);
for(BulkData data : bulkList) {
if(data.getActionType().equals(BulkData.Type.CREATE)){
bulkProcessor.add(new IndexRequest(data.getIndexName()).id(data.getId()).source(data.getJsonMap()));
}else if(data.getActionType().equals(BulkData.Type.DELETE)){
bulkProcessor.add(new DeleteRequest(data.getIndexName(), data.getId()));
}
}
try {
terminated = bulkProcessor.awaitClose(30L, TimeUnit.SECONDS);
bulkProcessor.close();
}catch (InterruptedException e){
log.error(e.getMessage());
}
return terminated;
}
ElasticSearchSample1.java
@GetMapping("/items/delete")
public String deleteElasticsearchDoc() {
BulkData bulkData = new BulkData();
ArrayList<BulkData> bulkList = new ArrayList<>();
String id = "item3";
String indexName = "items";
bulkData.setId(id);
bulkData.setActionType(BulkData.Type.DELETE);
bulkData.setIndexName(indexName);
bulkList.add(bulkData);
DocumentApi documentApi = new DocumentApi(client);
documentApi.bulkDocumentWithBulkProcessor(bulkList, 10000);
return "elasticsearch/test";
}
인덱스가 items 이고 id가 item3 인 도큐먼트를 삭제한다.
결과
id값이 item3이 지워진걸 키바나에서 조회시 확인 할 수 있다.