一、安装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. 自定义IPython提示符

    首先创建IPython的自定义配置文件 $ ipython profile create 可以看到在HOME目录下: 多了两个配置文件 我们修改~/.ipython/profile_default/i ...

  2. C++入门经典-例2.10-控制输出精确度

    1:代码如下: // 2.10.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...

  3. Scala学习(一)——基础语法

    Scala语言是一种面向对象语言,结合了命令式(imperative)和函数式(functional)编程风格,其设计理念是创造一种更好地支持组件的语言. 特性 多范式(Multi-Paradigm) ...

  4. java 正则表达式:有丶东西

    非常详细 原文地址:https://blog.csdn.net/jeffleo/article/details/52194977

  5. leetcode-easy-string-14 Longest Common Prefix

    mycode   91.59% class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if not str ...

  6. leetcode-easy-string-28 Implement strStr()

    mycode   77.15% class Solution(object): def strStr(self, haystack, needle): """ :type ...

  7. BOSCH汽车工程手册————驾驶员辅助系统

    根据交通事故统计得出平均每分钟有一人死于交通事故 而辅助驾驶系统能够为驾驶员洞察了解汽车周围情况,识别危险的行驶状况. 提早为驾驶员告诉危险信息,可减少60%汽车驶上主路事故和1/3汽车前碰事故. 有 ...

  8. ceph集群添加osd

    获取osd的ID 这个操作是在管理节点上执行 [root@node-4 osd]# ceph osd create 2 对磁盘做处理 [root@node-4 ~]# parted /dev/sdb ...

  9. python文件读写和异常

    1,文本文件 普通打开 f.open f.close def main(): f = None try: f = open('致橡树.txt', 'r', encoding='utf-8') prin ...

  10. apache禁止指定的user_agent访问

    user_agent:也就是浏览器标识#禁止指定user_agent <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTT ...