0

Elasticsearch Spring Data 的非反应式对应物org.springframework.data.elasticsearch.core.ElasticsearchTemplate提供了一种方法public boolean deleteIndex(String indexName),我可以使用它来删除索引。但是,我在ReactiveElasticsearchTemplate.

4

1 回答 1

1

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)).

所以目前这个演员阵容很难看,但可以做到。我们有一张票Operations可以在接口和实现 中添加这个功能。

于 2020-01-29T07:55:56.567 回答