elasticsearch

PHOTO EMBED

Thu Jun 27 2024 03:07:21 GMT+0000 (Coordinated Universal Time)

Saved by @manhmd #java

  @Bean(destroyMethod = "close")
  public RestHighLevelClient init() {
    HttpHost[] httpHost;
    httpHost = new HttpHost[model.getHosts().size()];
    HttpHost[] finalHttpHost = httpHost;
    final int[] i = {0};
    model.getHosts().forEach(hostPort -> {
      finalHttpHost[i[0]] = new HttpHost(String.valueOf(hostPort.getHost()), hostPort.getPort(), "http");
      i[0] = i[0] + 1;
    });

    RestClientBuilder builder = RestClient.builder(finalHttpHost);

    if (model.getUsername() != null && model.getPassword() != null) {
      final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
      credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(model.getUsername(), model.getPassword()));
      builder.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
    }

    // Cấu hình timeout
    builder.setRequestConfigCallback(requestConfigBuilder -> requestConfigBuilder
            .setSocketTimeout(model.getSocketTimeout())
            .setConnectTimeout(model.getConnectTimeout()));

    return new RestHighLevelClient(builder);
  }
content_copyCOPY