2016-12-19 3 views
0

Я использую python для доступа к кластеру elasticsearch. Теперь я хочу сделать резервную копию моего индекса с помощью моментального снимка. Самое сложное, что: документ python-elasticsearch просто дает мне описание API. нет примера, чтобы показать мне, как создать моментальный снимок. Я попробовал некоторые параметры, но не смог. Может ли кто-нибудь дать пример снимка эластичного поиска с помощью python? Ниже мой код:Может ли кто-нибудь дать пример снимка для поиска эластичности с помощью python?

from elasticsearch import Elasticsearch 
es = Elasticsearch() 
snapshot_body = { 
"type": "url", 
"settings": { 
     "url": "http://download.elasticsearch.org/definitiveguide/sigterms_demo/" 
    } 
} 
body = {"snapshot": snapshot_body} 
es.snapshot.create_repository(repository='test', body=body) 

ответ

1

Ваше создание хранилища почти правильно, вам не нужна строка body = {"snapshot": snapshot_body}, просто создать свой репозиторий, как это:

es.snapshot.create_repository(repository='test', body=snapshot_body) 

Теперь для того, чтобы создать снимок , все, что вам нужно сделать, это:

es.snapshot.create(repository='test', snapshot='my_snapshot') 

Если вы хотите сохранить только несколько индексов, а не все, что вы также можете предоставить тело, как это:

index_body = { 
    "indices": "index_1,index_2" 
} 
es.snapshot.create(repository='test', snapshot='my_snapshot', body=index_body) 
+0

Привет, Вал, Спасибо за ваш ответ. Но я запускаю команду в оболочке ipython и получаю ошибку: NotFoundError: TransportError (404, u'repository_missing_exception ', u' [test] missing ') Моя версия elasticsearch 2.3.5, а версия python-elasticsearch 5.0 .1 – Howardyan

+0

Поскольку вы используете ES 2.3.5, вам нужно использовать версию 2.x python-elasticsearch в соответствии с [таблицей совместимости] (https://github.com/elastic/elasticsearch-py#compatibility) – Val

+0

HI Val, не могли бы вы рассказать мне свою версию es и версию python. Я могу попробовать. – Howardyan