Spring Data Elasticsearch - Reactive Examples
The ReactiveElasticsearchClient is a non official driver based on WebClient.
It uses the request/response objects provided by the Elasticsearch core project.
Calls are directly operated on the reactive stack, not wrapping async (thread pool bound) responses into reactive types.
class ApplicationConfiguration extends AbstractReactiveElasticsearchConfiguration {
@Bean
@Override
public ReactiveElasticsearchClient reactiveElasticsearchClient() {
return ReactiveRestClients.create(ClientConfiguration.localhost());
}
}
The ReactiveElasticsearchClient can be used with the ReactiveElasticsearchOperations and ReactiveElasticsearchRepository.
@Autowired ReactiveElasticsearchOperations operations;
// ...
CriteriaQuery query = new CriteriaQuery("keywords").contains("java");
Flux<Conference> result = operations.find(query, Conference.class);
interface ConferenceRepository extends ReactiveCrudRepository<Conference, String> {
Flux<Conference> findAllByKeywordsContains(String keyword);
}
// ...
@Autowired ConferenceRepository repository;
// ...
Flux<Conference> result = repository.findAllByKeywordsContains("java");
Requirements:
Running Elasticsearch
$ cd elasticsearch
$ ./bin/elasticsearch