Elasticsearch Java Client 문서의 번역입니다. GPT를 이용해 번역하였고 잘못된 부분이 있을수도 있습니다. 잘못된 부분은 댓글로 달아주시면 수정하겠습니다. 감사합니다.
https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.14/getting-started-java.html
특징
• 모든 Elasticsearch API에 대해 강한 타입의 요청과 응답을 제공합니다.
• 모든 API의 블로킹(동기) 및 비동기 버전을 제공합니다.
• 복잡한 중첩 구조를 생성할 때 간결하면서도 읽기 쉬운 코드를 작성할 수 있도록 유창한 빌더(fluent builder)와 함수형 패턴을 사용합니다.
• Jackson이나 JSON-B 구현체와 같은 객체 매퍼를 사용하여 애플리케이션 클래스와의 매끄러운 통합을 제공합니다.
• HTTP 연결 풀링, 재시도, 노드 검색 등 모든 전송 계층의 문제를 처리하는 Java Low Level REST Client와 같은 HTTP 클라이언트에 프로토콜 처리를 위임합니다.
시작하기
이 페이지에서는 Java 클라이언트 설치 프로세스를 안내하고, 클라이언트를 인스턴스화하는 방법과 이를 사용하여 기본 Elasticsearch 작업을 수행하는 방법을 보여줍니다.
요구사항
• 자바 8버전 이상
• 애플리케이션 클래스를 Elasticsearch API와 원활하게 통합할 수 있게 해주는 JSON 개체 매핑 라이브러리입니다. 아래 예는 Jackson과의 사용법을 보여줍니다.
설치
• 애플리케이션 클래스를 Elasticsearch API와 원활하게 통합할 수 있게 해주는 JSON 개체 매핑 라이브러리입니다. 아래 예는 Jackson과의 사용법을 보여줍니다.
dependencies {
implementation 'co.elastic.clients:elasticsearch-java:8.14.3'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.0'
}
Gradle 프로젝트에서 설치 by using Jackson
Operations
이 세션에서는 Elasticsearch의 기본적이고 가장 중요한 작업을 안내합니다. 더 많은 작업과 고급 예제를 보려면 Java API 클라이언트 사용페이지를 참조하세요.
index 생성
esClient.indices().create(c -> c
.index("products")
);
문서 색인
Product product = new Product("bk-1", "City bike", 123.0);
IndexResponse response = esClient.index(i -> i
.index("products")
.id(product.getSku())
.document(product)
);
logger.info("Indexed with version " + response.version());
문서 조회
GetResponse<Product> response = esClient.get(g -> g
.index("products") // 1
.id("bk-1"),
Product.class // 2
);
if (response.found()) {
Product product = response.source();
logger.info("Product name " + product.getName());
} else {
logger.info ("Product not found");
}
1. 인덱스 이름과 식별자가 포함된 조회 요청입니다.
2. 타켓 클래스를 적습니다. 여기서는 Product class입니다.
문서 검색
String searchText = "bike";
SearchResponse<Product> response = esClient.search(s -> s
.index("products")
.query(q -> q
.match(t -> t
.field("name")
.query(searchText)
)
),
Product.class
);
Java clinet를 이용해 단일 match 쿼리를 생성하는 방법입니다.
문서 업데이트
Product product = new Product("bk-1", "City bike", 123.0);
esClient.update(u -> u
.index("products")
.id("bk-1")
.upsert(product),
Product.class
);
새 필드를 추가하기 위해 문서를 업데이트 하는 방법입니다.
문서 삭제
esClient.delete(d -> d.index("products").id("bk-1"));
index삭제
esClient.indices().delete(d -> d
.index("products")
);
'ElasticSearch' 카테고리의 다른 글
Java Client를 이용한 Elasticsearch 쿼리 (0) | 2025.03.29 |
---|---|
Elasticsearch API conventions (0) | 2024.10.04 |
엘라스틱서치 클러스터 구성 (0) | 2024.07.25 |
엘라스틱서치 데이터 다루기 part 4 집계 (0) | 2024.07.22 |
엘라스틱서치 데이터 다루기 part 3 검색 (0) | 2024.07.18 |