Reindex真题2

2020-06-21  本文已影响0人  秦汉邮侠

题目

index1中如果包含reindexBatch字段,Reindex到index2中则加一,否则设置为1

直接脚本方式

### 添加脚本
POST _scripts/control_reindex_batch
{
  "script": {
    "lang": "painless",
  "source": """
      if (ctx._source['reindexBatch'] != null) {
        ctx._source['reindexBatch'] += params.increment;
      } else {
        ctx._source['reindexBatch'] = 1;
      }
    """
  }
}

### reindex
POST _reindex
{
  "source": {
    "index": "test_1"
  },
  "dest": {
    "index": "test_3"
  },
  "script": {
        "id": "control_reindex_batch",
        "params": {
          "increment": 1
        }
      }
}

使用ingest,间接脚本方式

PUT _ingest/pipeline/ig3
{
  "description": "",
  "processors": [
    {
      "script": {
        "source": """
            if (ctx.reindexBatch != null) {
              ctx.reindexBatch += params.increment;
            } else {
              ctx.reindexBatch = 1;
            }
      """,
      "params": {
        "increment":1
      }
      }
    }
  ]
}

POST _reindex
{
  "source": {
    "index": "test_1"
  },
  "dest": {
    "index": "test_4",
    "pipeline": "ig3"
  }
}

样例数据

PUT test_1/_bulk
{"index":{"_index":"test_1","_id":0}}
{"foo":[" adsa 123 "," 21232 321"],"firstname":"Li","lastname":"xiaolong"}
{"index":{"_index":"test_1","_id":1}}
{"foo":[" adsa 123 "," 21232 321"],"firstname":"Li","lastname":"xiaolong","reindexBatch":1}

使用script和ingest的区别

上一篇 下一篇

猜你喜欢

热点阅读