ElasticSearch删除所有数据

Ste*_*eve 1 c# elasticsearch

我有这段代码,它从 Product 表中选择 100 条记录,然后DeleteManyAsync(从 NEST 包中)删除所有记录。如何选择所有数据而不需要硬编码值 100?

 var documents = _elasticClient.Search<Product>(
                s => s.Query(q => q.MatchAll())
                .Size(100)
            );

 var enumerable = documents.Hits.Select(h => h.Source);

 await _elasticClient.DeleteManyAsync<Product>(enumerable);
Run Code Online (Sandbox Code Playgroud)

Ale*_*kov 5

如果需要删除索引中的所有数据,则无需先查询并传输给客户端。只需使用通过查询 API 删除:

await _elasticClient.DeleteByQueryAsync<Product>(
    s => s.Query(q => q.MatchAll())
);
Run Code Online (Sandbox Code Playgroud)