_reindex

1、将文档从一个索引复制到另一个索引

 

复制索引下的文档

POST _reindex
{
  "source": {
    "index": "test"
  },
  "dest": {
    "index": "test_new"
  }
}

{
  "took": 6162,
  "timed_out": false,
  "total": 3,
  "updated": 0,
  "created": 3,
  "deleted": 0,
  "batches": 1,
  "version_conflicts": 0,
  "noops": 0,
  "retries": {
    "bulk": 0,
    "search": 0
  },
  "throttled_millis": 0,
  "requests_per_second": -1,
  "throttled_until_millis": 0,
  "failures": []
}

 

POST _reindex
{
  "size": 1,   #限制插入的文档数量
  "conflicts": "proceed", # 版本冲突会中止_reindex进程, 但可以在请求body中通过设置 "conflicts":"proceed"来仅仅统计它们的数量而不会终止
  "source": {
    "index": "test",
    "type": "_doc",
    "sort": { "date": "desc" } , #按时间排序,选择一定数量的数据
    "_source": ["date", "add"],  #指定哪几个字段
    "query": {
      "term": {
        "counter": 10  #可以在source中增加条件,将符合条件的内容,插入到新的索引中
      }
    }
  },
  "dest": {
    "index": "test_new"  
    , "version_type": "internal"  #不写或者值为internal时,使elasticsearch盲目的将文档插入到新的index中,如果type和id相同将覆盖。
    , "version_type": "external"  #Elasticsearch保留源索引中的文档, 创建缺少的任何文档, 并更新目标索引中具有旧版本的文档。如果type和id相同会报错
    ,"op_type": "create"   #仅在目标索引中创建缺少的文档。 所有已存在的文档会报错
  }
}

支持脚本,脚本是与dest同级
"script": {
"source": "if (ctx._source.foo == 'bar') {ctx._version++;
ctx._source.remove('foo')}",
"lang": "painless"
}

 

posted on 2019-11-01 14:24  浅蓝色星光  阅读(384)  评论(0编辑  收藏  举报