一、安装elasticdump

终端中输入

npm install elasticdump -g

-g表示全局可用,直接在终端输入 elasticdump --version,出现版本信息即表示安装成功,如下

C:\Users\T470s>elasticdump --version
6.3.3 

二、常用的导入导出方法

 1、将索引中的数据导出到本地

elasticdump  --input=http://localhost:9200/demo --output=D:/ES/date/demo.json

 其中,demo是索引。

 2、将本地数据导入es中

elasticdump  --input=D:/ES/date/demo.json --output=http://localhost:9200/demo1

 3、将es导入另一个es

elasticdump --input=http://ip:9200/demo --output=http://127.0.0.1:9200/demo

 4、含有分词的导入

转自:https://blog.csdn.net/Wang_Ocean/article/details/90267797

前文:公司正在运行的项目需要搭一个测试环境,需要将正式环境的ES里面存储的数据导入到该测试环境的ES服务器里面。使用本地的windows系统来实现。
1,环境准备
因为elaticdump 依赖于nodejs的环境,需要下载nodejs的相关依赖环境,去nodejs官网直接安装包,我下载的是msi安装程序,安装好之后会直接配置好环境变量,在cmd或者Powershell直接下载elaticdump 即可:

npm install elasticdump

2,生产环境导出到测试环境
1)导出分词器,导出分词器的时候要特别注意,我们只能根据索引单个导入,不能全部导出,全部导出会出现索引不存在的错误:

elasticdump --input=http://ip:9200 --output=http://127.0.0.1:9200/ --type=analyzer --all=true  

该全部导出导入的命令会如下错误:

Error Emitted => {"root_cause":[{"type":"action_request_validation_exception","reason":"Validation Failed: 1: index is missing;"}],"type":"action_request_validation_exception","reason":"Validation Failed: 1: index is missing;"}

 

所以后面改为按索引分别导入则可以:

elasticdump --input=http://ip:9200/applog --output=http://127.0.0.1:9200/applog --type=analyzer
elasticdump --input=http://ip:9200/cms_article --output=http://127.0.0.1:9200/cms_article --type=analyzer
elasticdump --input=http://ip:9200/followup --output=http://127.0.0.1:9200/followup --type=analyzer

坑:再倒入的时候我并不知道到底有多少个索引,如何确定索引的名称?
这里我是直接先导出所有映射mapping到本地,然后找到索引的名称再到各导入分词:

elasticdump --input=D:/mapping.json --output=http://127.0.0.1:9200/ --all=true --type=mapping

疑惑:我这里的索引目前只有三个,如果是多个怎么处理?超过100?

2)导出映射mapping
映射mapping可以直接全部导入导出,直接命令:

elasticdump --input=http://ip:9200/ --output=http://127.0.0.1:9200/ --all=true --type=mapping

3)导出全部数据data
每个索引下的数据可以全部一次性导入:

elasticdump --input=http://ip:9200/ --output=http://127.0.0.1:9200/ --all=true --type=data

3,总结
1),如果不导入analyzer会怎么样?
我试过如果只导入data和mapping,则数据会导入,mapping会发生变化,最终的结果没有分词的效果。
2),如果不导入mapping也不会有分词的效果。
3),顺序导入最好按照:analyzer,mapping和data这个顺序来,防止出现分词失效的结果。

最新文章

  1. 苹果手机微信上form表单提交的问题
  2. Java冒泡随笔
  3. 夺命雷公狗ThinkPHP项目之----企业网站7之栏目的修改(主要用模型来验证字段)
  4. CSS 文本格式
  5. fedora 23中配置nfs-server
  6. #include <boost/shared_ptr.hpp>
  7. POI读入excel文件到Java中
  8. linux系统启动过程的列表
  9. 在Window下安装Oracle
  10. jenkins-APP打包页面展示二维码
  11. php的mysql语句里变量加不加单引号问题
  12. ReactiveCocoa - study
  13. python 使用selenium模块实现自动搜索百度百科词条(模拟人工搜索)
  14. Mysql半同步复制模式说明及配置示例 - 运维小结
  15. mysql各数据类型的存储范围
  16. 20155339 Exp3 免杀原理与实践
  17. 解决linux的centos版本修改时间重启后无效的问题
  18. C#学习笔记(二):变量、数据类型和运算符
  19. Java内存管理知识你需要吗?
  20. github上手实践教程

热门文章

  1. Python 入门知识
  2. 动态数组C语言实现
  3. Android动态广播的注册与销毁
  4. 深入理解java集合
  5. 【Spark机器学习速成宝典】模型篇07梯度提升树【Gradient-Boosted Trees】(Python版)
  6. PHP 设置Cookie值注意项
  7. Use an Excel RTD Server with DCOM
  8. Pycharm 常用快捷键-Windows版
  9. PyQt GUI--信号与槽
  10. Selenium 2自动化测试实战9(简单元素操作)