Ответ 1
[Обновление за февраль 2019 года]
Теперь мы видим, что 3.2.0 M1 Spring Data Elasticsearch поддерживает HTTP-клиент (https://docs.spring.io/spring-data/elasticsearch/docs/3.2.0.M1/reference/html/#reference).
Согласно документации (она, конечно, может измениться, потому что это не окончательная версия, поэтому я опубликую ее здесь):
Начиная с Elasticsearch 7.0.0, хорошо известный TransportClient устарел и, как ожидается, будет удален в Elasticsearch 8.0.
2.1. Клиент REST высокого уровня
Клиент REST Java высокого уровня обеспечивает прямую замену для TransportClient, так как он принимает и возвращает те же самые объекты запроса/ответа и, следовательно, зависит от основного проекта Elasticsearch. Асинхронные вызовы обрабатываются на клиентском пуле управляемых потоков и требуют, чтобы обратный вызов был уведомлен, когда запрос выполнен.
Пример 49. Клиент REST высокого уровня
static class Config {
@Bean
RestHighLevelClient client() {
ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo("localhost:9200", "localhost:9201")
.build();
return RestClients.create(clientConfiguration).rest();
}
}
// ...
IndexRequest request = new IndexRequest("spring-data", "elasticsearch", randomID())
.source(singletonMap("feature", "high-level-rest-client"))
.setRefreshPolicy(IMMEDIATE);
IndexResponse response = client.index(request);
[Оригинальный ответ]
В настоящее время Spring Data Elasticsearch не поддерживает связь через REST API. Они используют транспортный клиент.
Существует отдельный форк Spring Data Elasticsearch (он нужен для AWS так же, как и вы), где используется библиотека JEST и связь осуществляется с помощью REST:
https://github.com/VanRoy/spring-data-jest
Интересное обсуждение вы найдете под следующей галочкой Spring Data Elasticsearch:
https://jira.spring.io/browse/DATAES-220
Я думаю, что Spring Data Elasticseach в будущем должен будет перейти на REST в соответствии с заявлениями команды Elasticsearch о том, что они планируют поддерживать только HTTP-связь для ES.
Надеюсь, поможет.