重新索引Elasticsearch,忽略不在映射中的字段

时间:2019-09-11 21:03:39

标签: elasticsearch

尝试在Elasticsearch中测试重新索引API,并遇到以下问题:现有数据包含新索引的严格映射中不存在的字段。有没有办法告诉Elasticsearch忽略这些字段并继续进行下去?

编辑:为澄清起见,通过忽略,我的意思是在重新索引过程中不要包括这些字段。

1 个答案:

答案 0 :(得分:3)

如果在运行reindex之前可以访问索引设置,则可以执行以下操作:

PUT test/_mapping
{
    "dynamic": "false"
}

然后在重新编制索引后将其更改回strict

根据您的评论更新

POST _reindex
{
  "source": {
    "index": "src"
  },
  "dest": {
    "index": "dst"
  },
  "script": {
    "lang": "painless",
    "source": """
    ctx['_source'].remove('email');
    ctx['_source'].remove('username');
    ctx['_source'].remove('name');
    // removing from nested:
    for(item in ctx['_source'].Groups){
        item.remove('GroupName');
        item.remove('IsActive');
    }
    """
  }
}
相关问题