ES数据的删除与备份

背景

需要删除索引下满足指定条件的文档数据,并将删除的数据进行备份。

操作步骤

新建索引

该索引结构与映射关系与原索引一致

查看原索引设置

java 复制代码
GET /tb/_settings


结果:
{
  "tb" : {
    "settings" : {
      "index" : {
        "routing" : {
          "allocation" : {
            "include" : {
              "_tier_preference" : "data_content"
            }
          }
        },
        "number_of_shards" : "1",
        "provided_name" : "tb",
        "creation_date" : "1719220554972",
        "analysis" : {
          "normalizer" : {
            "CustomNormalizer" : {
              "filter" : [
                "lowercase",
                "asciifolding"
              ],
              "type" : "custom"
            }
          },
          "analyzer" : {
            "optimizeIK" : {
              "type" : "custom",
              "tokenizer" : "ik_max_word"
            }
          }
        },
        "number_of_replicas" : "1",
        "uuid" : "ovmNbNg7T6W98WcpqYfQwQ",
        "version" : {
          "created" : "7170799"
        }
      }
    }
  }
}

查看映射关系

java 复制代码
GET /tb/_mapping


结果:
{
  "tb" : {
    "mappings" : {
      "dynamic" : "true",
      "properties" : {
        "createTime" : {
          "type" : "long",
          "coerce" : false
        },
        "creator" : {
          "type" : "keyword"
        },
        "dbId" : {
          "type" : "keyword"
        },
        "fileName" : {
          "type" : "keyword"
        },
        "id" : {
          "type" : "keyword"
        },
        "isApproved" : {
          "type" : "keyword"
        },
        "modifiedTime" : {
          "type" : "long",
          "coerce" : false
        },
        "modifier" : {
          "type" : "keyword"
        },
        "note" : {
          "type" : "keyword"
        },
        "original" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword"
            },
            "normalizer" : {
              "type" : "keyword",
              "normalizer" : "CustomNormalizer"
            },
            "pattern" : {
              "type" : "text",
              "norms" : false,
              "analyzer" : "pattern"
            },
            "standard" : {
              "type" : "text",
              "norms" : false,
              "analyzer" : "standard"
            }
          },
          "norms" : false,
          "analyzer" : "optimizeIK"
        },
        "originalLang" : {
          "type" : "keyword"
        },
        "remark" : {
          "type" : "keyword"
        },
        "reviewer" : {
          "type" : "keyword"
        },
        "translation" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword"
            },
            "normalizer" : {
              "type" : "keyword",
              "normalizer" : "CustomNormalizer"
            },
            "pattern" : {
              "type" : "text",
              "norms" : false,
              "analyzer" : "pattern"
            },
            "standard" : {
              "type" : "text",
              "norms" : false,
              "analyzer" : "standard"
            }
          },
          "norms" : false,
          "analyzer" : "optimizeIK"
        },
        "translationLang" : {
          "type" : "keyword"
        }
      }
    }
  }
}

新建索引

java 复制代码
PUT /tb81901
{
  "settings" : {
      "index" : {
        "analysis" : {
          "normalizer" : {
            "CustomNormalizer" : {
              "filter" : [
                "lowercase",
                "asciifolding"
              ],
              "type" : "custom"
            }
          },
          "analyzer" : {
            "optimizeIK" : {
              "type" : "custom",
              "tokenizer" : "ik_max_word"
            }
          }
        },
        "number_of_shards" : "1",
        "number_of_replicas" : "1"
      }
    },
  "mappings": {
      "dynamic" : "true",
      "properties" : {
        "createTime" : {
          "type" : "long",
          "coerce" : false
        },
        "creator" : {
          "type" : "keyword"
        },
        "dbId" : {
          "type" : "keyword"
        },
        "fileName" : {
          "type" : "keyword"
        },
        "id" : {
          "type" : "keyword"
        },
        "isApproved" : {
          "type" : "keyword"
        },
        "modifiedTime" : {
          "type" : "long",
          "coerce" : false
        },
        "modifier" : {
          "type" : "keyword"
        },
        "note" : {
          "type" : "keyword"
        },
        "original" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword"
            },
            "normalizer" : {
              "type" : "keyword",
              "normalizer" : "CustomNormalizer"
            },
            "pattern" : {
              "type" : "text",
              "norms" : false,
              "analyzer" : "pattern"
            },
            "standard" : {
              "type" : "text",
              "norms" : false,
              "analyzer" : "standard"
            }
          },
          "norms" : false,
          "analyzer" : "optimizeIK"
        },
        "originalLang" : {
          "type" : "keyword"
        },
        "remark" : {
          "type" : "keyword"
        },
        "reviewer" : {
          "type" : "keyword"
        },
        "translation" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword"
            },
            "normalizer" : {
              "type" : "keyword",
              "normalizer" : "CustomNormalizer"
            },
            "pattern" : {
              "type" : "text",
              "norms" : false,
              "analyzer" : "pattern"
            },
            "standard" : {
              "type" : "text",
              "norms" : false,
              "analyzer" : "standard"
            }
          },
          "norms" : false,
          "analyzer" : "optimizeIK"
        },
        "translationLang" : {
          "type" : "keyword"
        }
      }
    }
}

迁移数据

迁移原索引中满足删除条件的文档数据

java 复制代码
POST /_reindex
{
  "source": {
    "index": "tb",
    "query": {
      "bool": {
        "must": [
          {
            "term": {
              "dbId": {
                "value": "270057"
              }
            }
          }
        ]
      }
    }
  },
  "dest": {
    "index": "tb81901"
  }
}

删除数据

删除原索引中满足删除条件的文档数据

java 复制代码
POST /tb/_delete_by_query
{
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "dbId": [
              "270057"
            ]
          }
        }
      ]
    }
  }
}
相关推荐
liyunlong-java4 分钟前
Elasticsearch 8.5.3 + IK 分词器 + Kibana 8.5.3 一键安装
大数据·elasticsearch·jenkins
真上帝的左手7 分钟前
19. 大数据-数据仓库简介
大数据·数据仓库
Volunteer Technology8 分钟前
MapReduce使用与原理(一)
大数据·eclipse·mapreduce
Volunteer Technology12 分钟前
MapReduce使用与原理 (二)
大数据·mapreduce
石逸凡23 分钟前
新时代的信息茧房
大数据·人工智能
澈20732 分钟前
Git入门指南:核心概念与实用操作
大数据·git·搜索引擎
workflower1 小时前
人工智能全球治理
大数据·人工智能·设计模式·机器人·动态规划
workflower1 小时前
AI灵活高效的智慧用能核心场景
大数据·人工智能·设计模式·机器人·动态规划
189228048611 小时前
NV301固态MT29F32T08GWLBHD6-QJES:B
大数据·服务器·人工智能·科技·缓存
海兰1 小时前
在 Grafana 中驾驭 ES|QL:Elasticsearch 管道查询实战指南
大数据·elasticsearch·grafana