天天看點

ES通過_reindex遷移索引資料 目标過程

目标

  • 原有索引名:test
  • 遷移到新索引:test_new

過程

  1. 建立索引test_new
    1. PUT /mg_short_video_new/
      {
        "settings":{
          "index":{
            "number_of_shards":"20"
          }
        }
      }
                 
  2. 建立mapping
    1. PUT test_new/_mapping/test
      {
          "properties": {
              "filedA": {
                 "type": "text",
                 "analyzer": "ik_smart"
               
               }
          }
      }
                 
  3. 輸入遷移到新索引test_new
    1. //size為每批的文檔數,官網統計單批次在5-15M時性能最優
      
      POST _reindex?wait_for_completion=false
      {
        "source": {
          "index": "test",
          "size": 3000
        },
        "dest": {
          "index": "test_new"
        }
      }
      
      傳回taskId:g415R5_KRKu4f_oJxc7JXQ:11594572776
                 
  4. 檢視任務進度
    1. GET _tasks/g415R5_KRKu4f_oJxc7JXQ:11594572776
                 
  5. 通過任務檢視資料遷移完成後,删除舊索引,給新索引起别名為就索引名字
    1. //删除舊索引
      delete test
      //新索引起别名
      POST _aliases
      {
        "actions": [
          {
            "add": {
              "index": "test_new",
              "alias": "test"
            }
          }
        ]
      }
                 
  6. 建立别名短時間内查詢報錯
    1. "type": "es_rejected_execution_exception";原因是部分分片任務較多,拒絕本次查詢請求,等待片刻後即可

繼續閱讀