2016-01-25 2 views
0

SQL имеет инструкцию INSERT INTO ... SELECT, чтобы заполнить таблицу данными из запроса. Что-то подобное существует для Elasticsearch?Создать новый индекс Elasticsearch из запроса?

Это помешало бы мне данные массовых вычеркивания из существующего индекса с помощью запроса - что-то официальное Elasticsearch 2,1 руководство предупреждает:

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

(Источник: https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugins-delete-by-query.html).

ответ

3

Вы можете использовать отличную утилиту из taskrabbit под названием elasticdump.

0из. many options чтобы настроить импорт. В вашем случае, я хотел бы использовать опцию searchBody и идти с чем-то вроде этого:

elasticdump \ 
    --input=http://HOST:9200/source_index \ 
    --output=http://HOST:9200/target_index \ 
    --bulk=true \ 
    --searchBody='{"query": { "match_all": {} } }' 

Вы можете настроить запрос и только совпавшие документы из source_index будут скопированы в target_index