我正在从这里https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html#docs-delete-by-query阅读“按查询API删除”。
我很困惑如何为此API工作batches
和requests_per_second
。我尝试检查源代码https://github.com/elastic/elasticsearch,但找不到正确相关的代码。
感谢任何解释。
答案 0 :(得分:0)
按查询删除会针对您的索引发出查询。通过批量请求删除匹配的文档。您可以使用scroll_size
参数来设置每个批量请求删除的文档数量 - 这通常称为“批量大小”。要限制操作,可以将requests_per_second
设置为正十进制值。该值与等待时间的对应关系在其文档中进行了解释:
requests_per_second可以设置为任何正十进制数(1.4,6,1000等)和限制速率,在此速率下,_delete_by_query通过用等待时间填充每个批次来发出批量删除操作。可以通过将requests_per_second设置为-1来禁用限制。
通过在批处理之间等待来完成限制,以便_delete_by_query在内部使用的滚动可以被赋予考虑填充的超时。填充时间是批量大小除以requests_per_second与写入时间之间的差异。默认情况下,批处理大小为1000,因此如果requests_per_second设置为500:
target_time =每秒1000/500 = 2秒 wait_time = target_time - write_time = 2秒 - .5秒= 1.5秒