一 安装nodejs:
java
curl -sL https://rpm.nodesource.com/setup_16.x | bash -
yum install nodejs -y
二 安装elasticdump:
java
npm install elasticdump -g
三 导出命令
java
(1)全量导出索引数据(导出到本地文件)
# 语法:elasticdump --input <ES索引地址> --output <本地文件路径> --type <数据类型>
elasticdump \
--input http://<ES_HOST>:<ES_PORT>/<INDEX_NAME> \
--output ./es_<INDEX_NAME>_dump.json \
--type data # type支持data(数据)、mapping(映射)、settings(索引配置)
(2)导出映射(mapping)+ 数据(完整备份)
# 先导出映射
elasticdump \
--input http://<ES_HOST>:<ES_PORT>/<INDEX_NAME> \
--output ./es_<INDEX_NAME>_mapping.json \
--type mapping
# 再导出数据
elasticdump \
--input http://<ES_HOST>:<ES_PORT>/<INDEX_NAME> \
--output ./es_<INDEX_NAME>_data.json \
--type data
(3)增量导出(基于时间戳 / 条件过滤)
# 导出指定时间范围的数据(示例:create_time >= 2025-12-01)
elasticdump \
--input http://<ES_HOST>:<ES_PORT>/<INDEX_NAME> \
--output ./es_<INDEX_NAME>_incremental.json \
--searchBody '{"query": {"range": {"create_time": {"gte": "2025-12-01 00:00:00"}}}}' \
--type data
(4)需要用户验证的导出
elasticdump \
--input http://<USERNAME>:<PASSWORD>@<ES_HOST>:<ES_PORT>/<INDEX_NAME> \
--output ./es_<INDEX_NAME>_dump.json \
--type data
四 导入命令:
java
elasticdump \
--input ./es_user_info_dump.json \
--output http://<USERNAME>:<PASSWORD>@<ES_HOST>:<ES_PORT>/<TARGET_INDEX> \
--type data