I have taken Amazon OpenSerach - Elastic Search service to integrate with our Spring application (Java, Maven)) we are facing issue integrating it as there is no proper documentation on it. I have tried multiple ways to Integrate it.
Sometimes there is some build [OSS] issue and if I fix that there is a content issue I need some help.
import io.searchbox.client.JestClient;
import io.searchbox.client.JestClientFactory;
import io.searchbox.client.config.HttpClientConfig;
import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.client.ClientConfiguration;
import org.springframework.data.elasticsearch.client.RestClients;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
@Configuration
public class ElasticsearchConfig {
@Value("${elastic.uri}")
private String elasticHost;
@Bean
public RestClient getRestClient() {
RestClient restClient = RestClient.builder(
new HttpHost(elasticHost, 9200)).build();
return restClient;
}
@Bean
public RestHighLevelClient client() {
ClientConfiguration clientConfiguration
= ClientConfiguration.builder()
.connectedTo(elasticHost)
.build();
return RestClients.create(clientConfiguration).rest();
}
@Bean
public ElasticsearchOperations elasticsearchTemplate() {
return new ElasticsearchRestTemplate(client());
}
@Bean
public JestClient jest(){
JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(new HttpClientConfig
.Builder("http://"+elasticHost+":9200")
.multiThreaded(true)
//Per default this implementation will create no more than 2 concurrent connections per given route
// and no more 20 connections in total
.build());
return factory.getObject();
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
using this dependency gives OSS error and if I specify the version of the Elastic in dependency then it is Content type is missing error