DeleteByQueryRequest
DeleteByQueryRequest可用于从索引中删除文档。它需要一个要执行删除的现有索引(或一组索引)。
DeleteByQueryRequest的最简单形式如下,它删除索引中的所有文档:DeleteByQueryRequest request =
new DeleteByQueryRequest("source1", "source2"); //在一组索引上创建DeleteByQueryRequest。
默认情况下,版本冲突会中止DeleteByQueryRequest进程,但您可以用以下方法对它们进行计数:request.setConflicts("proceed"); //设置版本冲突时继续
您可以通过添加查询来限制文档。request.setQuery(new TermQueryBuilder("user", "kimchy")); //仅复制字段用户设置为kimchy的文档
也可以通过设置大小来限制已处理文档的数量。request.setSize(10); //只拷贝十个文档
默认情况下,DeleteByQueryRequest可以批量处理1000个文档。您可以使用setBatchSize更改批处理大小。request.setBatchSize(100); //单批处理100份文件
DeleteByQueryRequest也可以使用带有设置切片的切片滚动来并行化:request.setSlices(2); //设置要使用的切片数量
DeleteByQueryRequest使用Scroll参数来控制它将“搜索上下文”保持多长时间。request.setScroll(TimeValue.timeValueMinutes(10)); //设置滚动时间
如果您提供了路由,则路由将被复制到滚动查询,从而将