在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

动态字段怎么批量删除

Elasticsearch | 作者 wessi | 发布于2018年01月04日 | 阅读数:2885

比如我有很多document中都有动态映射的字段,user_field_1, user_field_2, user_field_3, user_field_8 等,
现在需要删除user_field_*的所有字段。
"script" : "ctx._source.remove(\"name\")" 这种只能删除确定名字的字段。

请问有什么统一的办法?
已邀请:

shiyuan

赞同来自:

ctx._source.keySet().removeIf(k -> k.startsWith('user_field_'))

trycatchfinal

赞同来自:

可以重新修改下mapping配置"dynamic": "false" ,然后reindex一下。

要回复问题请先登录注册