Elasticsearch按查询删除未完成删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch按查询删除未完成删除相关的知识,希望对你有一定的参考价值。

我需要删除5.5 Elasticsearch集群中的大量文档。我知道执行此操作的最佳方法是在没有预期文档的情况下重建集群,但是在我们的情况下这是不可能的。我运行以下查询,该查询从集群中一部分索引中删除文档:

GET myindex_1*/doc_type/_delete_by_query
{
  "query": {
    "bool": {
      "filter": [
        {
          "terms": {
            "typeCode": [
              "Filtered_Type"
            ]
          }
        }
      ],
      "must": [
        {
          "range": {
            "createdDateUTC": {
              "lt": "2017-10-28"
            }
          }
        }
      ]
    }
  }
}

它开始删除文档几个小时,但随后停止,我不得不再次开始。为什么停止运行删除查询的任何想法?

请注意,我正在使用Kibana运行查询,并且尽管我可以看到它在后端继续删除,但请求在客户端超时。

答案

来自here

默认情况下,_delete_by_query使用滚动批处理1000。您可以使用scroll_size URL参数更改批处理大小:

POST twitter/_delete_by_query?scroll_size=5000
{
  "query": {
    "term": {
      "user": "kimchy"
    }
  }
}

您可以在此处找到有关批量和批量大小的信息:

以上是关于Elasticsearch按查询删除未完成删除的主要内容,如果未能解决你的问题,请参考以下文章

java操作elasticsearch实现查询删除和查询所有

删除时间过长且未完成

ElasticSearch第二天

PHP:如果用户未按下提交按钮,Mysql 回滚多个查询(通过 ajax 完成)

Elasticsearch- elasticsearch索引的创建查询和删除

elasticsearch api 调用