一、安装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这个顺序来,防止出现分词失效的结果。

使用elasticdump导入导出数据的更多相关文章

  1. CRL快速开发框架系列教程九(导入/导出数据)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  2. mysql导入导出数据中文乱码解决方法小结

    linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqld ...

  3. Android开发笔记:SQLite导入导出数据

    SQLite是Android中最方便使用的数据库了,现在看下如何快速的在SQLite中导入导出数据. 首先由于是.NET项目转Android,原有数据库使用的是SQLSERVER,由于项目相同部分结构 ...

  4. 解决mysql导入导出数据乱码问题

    最近在linux上面用mysqldump导出数据,放在windows系统中导入就会出现中文乱码,然后就会导致出现: Unknown MySQL server host和Can't connect to ...

  5. [转]mysql导入导出数据中文乱码解决方法小结

    本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 ...

  6. oracle中导入导出数据备份数据库

    原文:oracle中导入导出数据备份数据库 数据库所在位置                         将数据导出到的文件名                    用户名 备份数据库 :exp c ...

  7. PLSQL导入/导出数据方法

    PLSQL导入/导出数据方法 PLSQL导入/导出数据方法 以前导数据库信息的时候,总是会先开启sql窗口,把自己手写的建表文件复制进去,然后再导入数据信息. 今天突然懒得去找以前的建表文件,而想用S ...

  8. oracle10g和oracle11g导入导出数据区别

    其中flxuser为用户名,flxuser为密码,file值为导入到数据库中的备份文件. oracle10g和oracle11g导入导出数据的命令方式大有不同: oracle10g导入数据: imp  ...

  9. 利用sqoop将hive数据导入导出数据到mysql

    一.导入导出数据库常用命令语句 1)列出mysql数据库中的所有数据库命令  #  sqoop list-databases --connect jdbc:mysql://localhost:3306 ...

随机推荐

  1. CoreData编辑器

    如何你开发iOS使用的是CoreData数据库的话,肯定想要一个可以查看和编辑CoreData数据库的工具,今天给大家推荐一个工具Core-Data-Editor 下载地址:https://githu ...

  2. linux iconv文件编码转换

    linux系统里提供的文件转化编码的命令iconv,例如: iconv -t utf-8 -f gb2312 -c test.xml > text_UTF8.xml 1 -f 源编码-t 目标编 ...

  3. VUE生命周期demo

    <!DOCTYPE html> <html>   <head>     <title></title>     <script typ ...

  4. java跨平台的原因

    java跨平台的原因 java有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台. 1.java代码不是直接 ...

  5. setcookie()函数

    PHP PDO使用fetchAll()方法获取结果集 fetchAll()方法获取结果集中的所有行数据记录. fetchAll()方法的语法格式如下: array PDOStatement::fetc ...

  6. 全面解读php-流程控制

    一.PHP遍历数组的三种方式 示例: $arr = [1, 2, 3 4, 'five' => 5]; 1.for ()  for循环只能用于遍历纯索引数组!如果存在关联数组,count统计时会 ...

  7. java 深入HashMap

    HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在.在HashMap中,key-value总是会当做一个整体来处理,系统会根据 ...

  8. leetcode 72. 编辑距离

    /***** 定义状态: DP[i][j]其中i表示word1前i个字符,j表示Word2前i个字符 DP[i][j]表示单词1前i个字符匹配单词2前j个字符,最少变换次数: 状态转移: for i: ...

  9. 浏览器端-W3School-JavaScript-HTML DOM:HTML DOM Attribute 对象

      ylbtech-浏览器端-W3School-JavaScript-HTML DOM:HTML DOM Attribute 对象 1.返回顶部 1. HTML DOM Attribute 对象 HT ...

  10. Keepalived + LVS-NAT 实现高可用四层 TCP/UDP 负载均衡器

    目录 文章目录 目录 前文列表 在 LVS1/2 安装 Keepalived & LVS Keepalived + LVS-NAT 实现 TCP 负载均衡 IP 规划 网络架构参考 LVS1 ...