_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" }