Java 고급 REST 클라이언트(7.x)는 Elasticsearch 클러스터와 상호작용하기 위한 강력한 도구로, 서버 통신에 더 쉽게 접근하고 효율적으로 만들어줍니다. 이 가이드에서는 고급 REST 클라이언트를 사용하여 Alibaba Cloud Elasticsearch 클러스터에서 Elasticsearch Java API를 호출하는 단계를 안내합니다.
클러스터 버전이 사용하려는 Java High Level REST 클라이언트 버전과 같거나 최신인지 확인하세요. 단계별 지침은 Alibaba Cloud Elasticsearch 클러스터 생성을 참조하세요.
YAML 구성 파일에서 자동 색인 기능을 활성화합니다. 자세한 내용은 YML 파일 구성을 참조하세요.
IP 주소 화이트리스트를 구성하여 올바른 통신을 보장하세요. 인터넷을 통해 클러스터에 액세스하는 경우 공용 또는 개인 IP 주소 화이트리스트 구성의 지침에 따라 필수 IP 주소의 요청을 허용하세요.
JDK(Java Development Kit) 버전 1.8 이상을 설치하세요. 자세한 내용은 JDK 설치를 참조하세요.
pom.xml 파일에 필요한 종속성을 추가합니다. 종속성 버전 번호를 7.x에서 사용 중인 상위 수준 REST 클라이언트의 특정 버전으로 변경하세요.
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.x</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.20.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.20.0</version> </dependency>
아래는 High Level REST Client를 이용하여 인덱스를 생성하고 삭제하는 예입니다. 자리표시자 {}를 특정 매개변수로 바꾸세요.
import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.nio.client.HttpAsyncClientBuilder; import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.action.delete.DeleteResponse; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.client.*; import java.io.IOException; import java.util.HashMap; import java.util.Map; public class RestClientExample { private static final RequestOptions COMMON_OPTIONS; static { RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder(); builder.setHttpAsyncResponseConsumerFactory( new HttpAsyncResponseConsumerFactory .HeapBufferedResponseConsumerFactory(30 * 1024 * 1024)); COMMON_OPTIONS = builder.build(); } public static void main(String[] args) { final CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("{Username}", "{Password}")); RestClientBuilder builder = RestClient.builder(new HttpHost("{Endpoint of the Elasticsearch cluster}", 9200, "http")) .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() { @Override public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) { return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); } }); RestHighLevelClient highClient = new RestHighLevelClient(builder); try { Map<String, Object> jsonMap = new HashMap<>(); jsonMap.put("{field_01}", "{value_01}"); jsonMap.put("{field_02}", "{value_02}"); IndexRequest indexRequest = new IndexRequest("{index_name}", "_doc", "{doc_id}").source(jsonMap); IndexResponse indexResponse = highClient.index(indexRequest, COMMON_OPTIONS); long version = indexResponse.getVersion(); System.out.println("Index document successfully! " + version); DeleteRequest deleteRequest = new DeleteRequest("{index_name}", "_doc", "{doc_id}"); DeleteResponse deleteResponse = highClient.delete(deleteRequest, COMMON_OPTIONS); System.out.println("Delete document successfully! \n" + deleteResponse.toString()); highClient.close(); } catch (IOException ioException) { ioException.printStackTrace(); } } }
동시성이 높은 시나리오의 경우 클라이언트 연결 수를 늘리세요.
httpClientBuilder.setMaxConnTotal(500); httpClientBuilder.setMaxConnPerRoute(300);
샘플 코드 조각:
String host = "127.0.0.1"; int port = 9200; String username = "elastic"; String password = "passwd"; final int max_conn_total = 500; final int max_conn_per_route = 300; RestHighLevelClient restHighLevelClient = new RestHighLevelClient( RestClient.builder(new HttpHost(host, port, "http")).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() { public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) { httpClientBuilder.setMaxConnTotal(max_conn_total); httpClientBuilder.setMaxConnPerRoute(max_conn_per_route); return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider); } }) );
기능 및 구성에 대한 자세한 내용은 공식 Java High Level REST 클라이언트 문서를 참조하세요.
Java 고급 REST 클라이언트를 사용하면 Alibaba Cloud Elasticsearch 클러스터와의 효율적인 상호 작용이 보장됩니다. Elasticsearch 설정을 최대한 활용하려면 이 가이드를 따르세요.
Alibaba Cloud에서 Elasticsearch와 함께 여정을 시작할 준비가 되셨나요? 귀하의 데이터를 시각적 걸작으로 변환하는 맞춤형 클라우드 솔루션과 서비스를 살펴보세요.
30일 무료 평가판을 시작하려면 여기를 클릭하세요
위 내용은 Java 고급 REST 클라이언트로 Elasticsearch 경험 향상()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!