Próbuję połączyć moją aplikację Spring Boot z lokalną instancją elasticsearch 5.2.1. Kiedy używam "org.springframework.boot:" zależność od Spring-boot-starter-data-elasticsearch ", napotykam na" Otrzymano wiadomość z nieobsługiwanej wersji: [2.0.0] minimalna zgodna wersja to: [5.0.0] ". Myślę, że wynika to z wersji elasticsearch 2.4.4 w zależności od startera. Aby rozwiązać ten błąd, edytuję właściwości pom.xml, dodając linię: elasticsearch.version> 5.2.1/elasticsearch.version>. Ale tym razem ja dostać "java.lang.NoSuchMethodError: org.elasticsearch.client.transport.TransportClient.builder()"Jak skonfigurować Spring Boot za pomocą elasticsearch 5.2.1?
Aby przezwyciężyć ten problem, i tworzyć własne klasy config jak poniżej:
@Configuration
public class ElasticsearchConfiguration {
@Bean
public Client client() throws UnknownHostException {
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
return client;
}
@Bean
public ElasticsearchTemplate elasticsearchTemplate() throws UnknownHostException {
return new ElasticsearchTemplate(client());
}
}
Tym razem dostaję wyjątki apache.logging.log4j (check here), więc dodaję niezbędne zależności.
Wreszcie dostaję się poniżej błędu i tam utknąłem. Czy ktoś może mi w tym pomóc?
wyjątek zagnieżdżonych jest java.lang.NoClassDefFoundError: org/elasticsearch/akcji/liczba/CountRequestBuilder