Переиндексация Elasticsearch

Есть индекс, к которому я хочу применить обновленные сопоставления, я сделал все возможное, чтобы следовать документации по ES и Stackoverflow, но теперь я застрял.

Исходный индекс: logstash-index-YYYY.MM с данными в нем
Я создал индекс: logstash-index-new-YYYY.MM (у которого есть шаблон для нового сопоставления)

Используя следующий запрос:
/logstash-index-YYYY.MM/_search?search_type=scan&scroll=1m
{ "query": { "match_all": {} }, "size": 30000 }

Я получаю _scroll_id и у меня менее 30 тыс. документов, поэтому мне нужно запустить только один раз.

Как мне использовать этот идентификатор для ввода данных в новый индекс?


person Discorick    schedule 16.02.2015    source источник
comment
в руководстве elasticsearch есть полезный пример: elasticsearch.org/ руководство/en/elasticsearch/guide/current/. Это позволяет вам извлекать данные любого размера страницы, используя несколько запросов.   -  person Jilles van Gurp    schedule 16.02.2015
comment
Хорошо, это на самом деле до того момента, когда я застрял, у меня есть данные - мой вопрос в том, как мне поместить их в новый индекс?   -  person Discorick    schedule 16.02.2015
comment
Вам нужен API массовой загрузки? Если нет, я не понимаю, о чем вы спрашиваете.   -  person Magnus Bäck    schedule 16.02.2015


Ответы (1)


Вы не используете scrollid для ввода данных в новый индекс. Вы используете его, чтобы получить другую порцию данных из запроса прокрутки.

Когда вы запускаете запрос сканирования, первый проход не возвращает никаких результатов, он сканирует осколки в вашем кластере и возвращает прокрутку. Другой проход (с использованием scrollid из первого) вернет фактические результаты.

Если вы хотите поместить эти данные в новый индекс, вы должны написать какую-нибудь простую программу на выбранном вами языке, которая получит эти данные, а затем поместит их в ваш новый индекс.

В блоге elasticsearch есть очень хорошая статья о том, как изменить отображения ваших индексов на лету. К сожалению, сама переиндексация там не рассматривается.

person rkrahl    schedule 16.02.2015
comment
Сначала у меня сложилось впечатление, что у Elasticsearch есть «волшебная» команда, чтобы заставить эту работу работать, поскольку вы предложили мне написать скрипт (я выбрал ruby) для поиска и прокрутки каждого результата и отправки данных в новый индекс. Спасибо! - person Discorick; 20.04.2015