elasticsearch,nosql,elastic-stack,elastic4s,Scala,elasticsearch,Nosql,Elastic Stack,Elastic4s" /> elasticsearch,nosql,elastic-stack,elastic4s,Scala,elasticsearch,Nosql,Elastic Stack,Elastic4s" />

在deleteByQuery[elasticsearch][scala]中传递批量大小

在deleteByQuery[elasticsearch][scala]中传递批量大小,scala,elasticsearch,nosql,elastic-stack,elastic4s,Scala,elasticsearch,Nosql,Elastic Stack,Elastic4s,我需要在使用deletebyQuery时传递批处理大小 我的要求是: 基于筛选器获取x行 对它们运行DeletebyQuery 返回此列表 当使用过滤器进行搜索时,可以有1000行,但我只需要一批前100行。需要返回这100行并仅在这100行上运行deleteByQuery 这样做的方法是什么 下面是我尝试的代码,但它最终删除了所有1000行 val searchQuery = search(Index.name) .size(100) .query(boolQuery.sh

我需要在使用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开始,按查询删除端点支持您可以使用的(以前称为
size


我不确定您使用的是哪个版本,但elastic4s,即
DeleteByQueryRequest
构造函数提供了一个您可以使用的版本。

自7.3以来,delete by query端点支持一个您可以使用的版本(以前称为
size


我不确定您使用的是哪个版本,但elastic4s,即
DeleteByQueryRequest
构造函数提供了一个您可以使用的版本。

我确实使用了.size(100)。我用错了吗?这是行不通的。我们不在7.3上,所以大小参数应该可以工作。这就是问题所在,从7.3开始,该参数被称为
max\u docs
,它看起来不像deleteByQuery实现支持它。是的,我没有在autocomplete中看到
max\u docs
。因此,没有其他方法可以传递非常特定的批处理大小。问题是
size
应该在8点之前仍然受支持。。。我会深入调查的。大小似乎不起作用。它最终删除了多个批。如果您发现更多详细信息,请更新。我确实使用了.size(100)。我用错了吗?这是行不通的。我们不在7.3上,所以大小参数应该可以工作。这就是问题所在,从7.3开始,该参数被称为
max\u docs
,它看起来不像deleteByQuery实现支持它。是的,我没有在autocomplete中看到
max\u docs
。因此,没有其他方法可以传递非常特定的批处理大小。问题是
size
应该在8点之前仍然受支持。。。我会深入调查的。大小似乎不起作用。它最终删除了多个批。如果您发现更多详细信息,请更新。