我需要从ElasticSearch的所有文档中删除一个特定的属性。有没有办法做到这一点,并且可以通过批量API来完成。找不到从ElasticSearch批量删除属性的接口。
有没有办法达到同样的效果。
我的文档的示例部分:
{
"media": {
"list1": [
{"title":"a"}
],
"list2": [
{"title":"b"}
]
}
}删除相同内容的脚本:
{
"script": "ctx._source.remove('media.list1')",
"query": {
"bool": {
"must": [
{
"exists": {
"field": "media.list1"
}
}
]
}
}
}发布于 2019-02-08 03:23:22
如果您只想从文档中删除一个字段(而不是删除整个文档),则需要使用无痛脚本。请参阅此问题post作为编写脚本以从文档中删除字段的参考。
要更新索引中的所有文档,可以使用无痛脚本删除Update By Query API中的一个字段,并使用match_all作为“查询”来更新所有文档。
您不会想要使用批量API来实现这一点。如果您想用新信息替换整个文档(更新),将使用批量API。
https://stackoverflow.com/questions/54578094
复制相似问题