在deletebyquery[elasticsearch][scala]中传递批大小

57hvy0tb  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(387)

我需要在使用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))
yv5phkfx

yv5phkfx1#

从7.3开始,delete by query端点支持 max_docs 可以使用的参数(以前称为 size ).
我不知道你用的是哪个版本,但是elastic4s DeleteByQueryRequest 构造函数提供 size 可以使用的参数。

相关问题