Elasticsearch dump是一个用于将Elasticsearch索引数据导出为JSON格式的工具。你可以使用Elasticsearch dump通过命令行或编程接口来导出数据。以下是一个简单的示例,假设你已经安装了Node.js和npm:
使用npm安装elasticsearch-dump:
npm install elasticdump@6.110.0 -g
elasticdump --input=http://source-elasticsearch-host:9200/your_index --output=/path/to/your/index_data.json --type=data
elasticdump --input=http://source-elasticsearch-host:9200/your_index --output=/path/to/your/index_mapping.json --type=mapping
使用以下命令从源Elasticsearch实例中挨个获取查询模板,并将返回的JSON数据保存到一个文件中:
curl -XGET 'http://your-elasticsearch-host:9200/_scripts/查询模板的id' > 文件名.json
插件存放在安装目录下的plugins文件夹中。一个插件对应一个子文件夹。
拷贝原来的elasticsearch.yml配置。
在目标电脑上安装同版本的Elasticsearch。安装教程
npm install elasticdump@6.110.0 -g
将源电脑导出的插件放置到目标电脑的es的安装目录的plugins文件夹下。
重启es服务。
通过以下命令可以查看插件是否生效:
GET http://your_ip:9200/_cat/plugins
elasticdump --input=/path/to/your/index_mapping.json --output=http://target-elasticsearch-host:9200/your_index --type=mapping
elasticdump --input=/path/to/your/output/file.json --output=http://target-elasticsearch-host:9200/your_index --type=data
针对每一个查询模板json文件,进行以下操作来创建查询模板:
POST _scripts/查询模板id
{
"script": ...这里应该是JSON文件中对应的script键的值的部分...
}
到这里基本就可以了,当然如果你的Elasticsearch里面包含了其他例如索引模板这样的东西,还需要另外迁移过去。