在ElasticSearch 6+中从文档中批量删除属性



我需要从ElasticSearch中的所有文档中删除一个特定的属性。有没有办法做到这一点,它可以通过批量API完成。我找不到从ElasticSearch批量删除属性的API。

有什么方法可以做到这一点吗。

我的文档示例部分:

{
"media": {
"list1": [
{"title":"a"}
],
"list2": [
{"title":"b"}
]
}
}

删除相同的脚本:

{
"script": "ctx._source.remove('media.list1')",
"query": {
"bool": {
"must": [
{
"exists": {
"field": "media.list1"
}
}
]
}
}
}

如果您只想从文档中删除一个字段(而不是删除整个文档),则需要使用无痛脚本。请将此问题文章作为编写脚本从文档中删除字段的参考。

要更新索引中的所有文档,请使用无痛脚本删除"按查询更新API"中的字段,使用match_all作为"查询"来更新所有文档。

您不想为此使用批量API。如果您想用新信息替换整个文档(更新),将使用批量API。

相关内容

  • 没有找到相关文章

最新更新