Elasticsearch delete By Query не завершает удаление - PullRequest
1 голос
/ 31 октября 2019

Мне нужно удалить большое количество документов в кластере 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 для выполнения запроса, и время ожидания запроса на стороне клиента истекает, хотя, как я вижу, он продолжает удалять на сервере.

1 Ответ

0 голосов
/ 31 октября 2019

С здесь :

По умолчанию _delete_by_query использует 1000 пакетов прокрутки. Размер пакета можно изменить с помощью параметра URL scroll_size:

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

Более подробную информацию о пакетах и ​​размерах пакетов можно найти здесь:

А поскольку для удаления всех документов, найденных по вашему запросу, вам нужно прокрутить одну или несколько партий, дополнительную информацию о прокрутке можно найти здесь:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...