Elasticsearch: Как переиндексировать данные в новый индекс (Reindex API).

6764390Тем, кто когда либо работал с ElasticSearch, должна быть знакома проблема переиндексации данных в новый индекс. Это может потребоваться после редактирования Mappings. Обычно с этим справлялся Scroll API.

Этот API не совсем удобен, так как обязывает писать код, пусть и небольшой. В ElasticSearch версии 2.3 и выше есть Reindex API.

Это и есть то, что нам нужно.

Пример

POST /_reindex
{
  "source": {
    "index": "twitter"
  },
  "dest": {
    "index": "new_twitter"
  }
}

API также позволяет переносить в новый индекс только документы из указанного типа:

POST /_reindex
{
  "source": {
    "index": "twitter",
    "type": "tweet"
  },
  "dest": {
    "index": "new_twitter"
  }
}

Это далеко не все, что можно делать с помощью Reindex API. Более подробное описание всех возможностей на сайте документации ElasticSearch.