尝试在Elasticsearch中测试重新索引API,并遇到以下问题:现有数据包含新索引的严格映射中不存在的字段。有没有办法告诉Elasticsearch忽略这些字段并继续进行下去?
编辑:为澄清起见,通过忽略,我的意思是在重新索引过程中不要包括这些字段。
答案 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');
}
"""
}
}