Как продублировать индекс в упругом поиске? - PullRequest
0 голосов
/ 11 ноября 2019

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

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

Просто отправьте запрос GET на https://source -es-ip: порт / имя_индекса / _mappings и поместите вывод в https://destination -es-ip: порт / имя_индекса

Копирование данных может быть выполнено с помощью Elasticsearch Reindex API. Для справки вы можете увидеть эту ссылку . Например, чтобы достичь этого, я бы использовал этот скрипт Python-

from elasticsearch import Elasticsearch
from elasticsearch.helpers import reindex
import urllib3

urllib3.disable_warnings()
es_source = Elasticsearch(hosts=['ip:port'],<other params>)
es_target = Elasticsearch(hosts=['ip:port'],<other params>)

for index in es.indices.get('<index name/pattern>')
    r = reindex(es_source, source_index=index, target_index=index, target_client=es_target, chunk_size=500)
    print(r)

, и это работает для разных версий, даже при копировании индексов в разные версии ES

0 голосов
/ 11 ноября 2019

Для этого я использую образ докера, подробности - https://hub.docker.com/r/taskrabbit/elasticsearch-dump/ (преимущество использования образа докера в том, что вам не нужно устанавливать node и npm в вашей системе, достаточно только запуска докера)

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

sudo docker run --net=host --rm -ti taskrabbit/elasticsearch-dump --input=http://<remote-elastic>/testindex --output=http://<your-machine-ip>:9200/testindex --type=mapping

sudo docker run --net=host --rm -ti taskrabbit/elasticsearch-dump --input=http://<remote-elastic>/testindex --output=http://<your-machine-ip>:9200/testindex --type=data

чтобы скопировать индекс с вашего локального поиска в удаленный, просто поменяйте местами ввод и вывод. Первая команда копирует сопоставление, а вторая выводит данные.

...