Elasticsearch Spring Data的org.springframework.data.elasticsearch.core.ElasticsearchTemplate
的非反应性对等方提供了一种方法public boolean deleteIndex(String indexName)
,我可以使用该方法删除索引。但是,在ReactiveElasticsearchTemplate
中找不到类似功能的任何提示。
答案 0 :(得分:1)
由{p>创建的DefaultReactiveElasticsearchClient
ReactiveRestClients.create(ClientConfiguration clientConfiguration)
实现接口org.springframework.data.elasticsearch.client.reactive.ReactiveElasticsearchClient.Indices
,该接口有两种删除索引的方法:
default Mono<Void> deleteIndex(DeleteIndexRequest deleteIndexRequest) {
return deleteIndex(HttpHeaders.EMPTY, deleteIndexRequest);
}
default Mono<Void> deleteIndex(Consumer<DeleteIndexRequest> consumer) {
DeleteIndexRequest request = new DeleteIndexRequest();
consumer.accept(request);
return deleteIndex(request);
}
default Mono<Void> deleteIndex(DeleteIndexRequest deleteIndexRequest) {
return deleteIndex(HttpHeaders.EMPTY, deleteIndexRequest);
}
因此,没有什么可直接传递索引名的,但是DeleteIndexRequest
的构造函数只接受索引名。
((DefaultReactiveElasticsearchClient)client).deleteIndex(new DeleteIndexRequest(indexname)).
因此,目前这种转换很丑陋,但是可以做到。我们有a ticket可以在Operations
界面和实现中添加此功能。