2014-10-23 1 views
0

Моя цель здесь - получить все документы из индекса кластера ES и вставить их в другой кластер ES, сохраняя одни и те же метаданные.Получить все документы из индекса кластера elasticsearch и проиндексировать его в другом кластере elasticsearch

Я имел взгляд на MGET API для извлечения данных и Bulk API, чтобы вставить его, но это Bulk API нуждается в специальную структуру:

action_and_meta_data\n 
optional_source\n 
action_and_meta_data\n 
optional_source\n 

Так что моя идея заключается в том, чтобы получить мои данные EScluster1 в файле и перестроил его для соответствия структуре Bulk API и проиндексировал его в EScluster2.

Вы видите лучший и/или более быстрый способ продолжения?

+1

Ознакомьтесь с [snapshot/restore] (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-snapshots.html) функцией ES. –

ответ

1

elasticdump делает это. Если вы хотите сделать это вручную, вы хотите запросить с помощью scroll, а затем bulk index, что из этого выйдет. Не слишком сложно записывать вместе. С эластичным дампом вы можете накачивать данные без записи в файл. Однако это немного ограничено, когда у вас есть, например, родительские/дочерние отношения в вашем индексе.

+0

Elasticdump теперь использует сканирование/прокрутку внутри – Evan