如何解决在deleteByQuery中传递批处理大小[elasticsearch] [scala]
我需要在使用deletebyQuery时传递批处理大小。
我的要求是:
- 基于过滤器获取x行
- 对它们运行DeletebyQuery
- 返回此列表
在使用过滤器进行搜索时,可以有1000行,但我只需要批处理前100行。只需返回这100行并仅对这100行运行deleteByQuery。
这是怎么做的?
这是我尝试的代码,但最终删除了所有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))
解决方法
从7.3开始,“按查询删除”端点支持您可以使用的max_docs
parameter(以前称为size
)。
我不确定您使用的是哪个版本,但是{4}的DeleteByQueryRequest
构造函数提供了size
parameter您可以使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。