我需要在使用deletebyquery时传递批大小。
我的要求是:
基于筛选器获取x行
对它们运行deletebyquery
返回此列表
在使用过滤器进行搜索时,可以有1000行,但我只需要一批前100行。需要返回这100行并运行deletebyquery,只在这100行上运行。
怎么做?
下面是我尝试的代码,但它最终删除了所有1000行。
val searchQuery =
search(Index.name)
.size(100)
.query(boolQuery.should(
termQuery(Type.status, Type.state)))
getElasticsearchClient().execute(searchQuery)
val result = elasticsearchClient().execute (
deleteByQuery(Index.name, Index.typeName,
boolQuery.should(termQuery(Type.status, Type.state))).size(100))
1条答案
按热度按时间yv5phkfx1#
从7.3开始,delete by query端点支持
max_docs
可以使用的参数(以前称为size
).我不知道你用的是哪个版本,但是elastic4s
DeleteByQueryRequest
构造函数提供size
可以使用的参数。