我需要从ElasticSearch中的所有文档中删除特定属性。有没有一种方法可以做到,并且可以通过Bulk API完成。我找不到要从ElasticSearch批量删除属性的API。
有没有办法实现相同的目标?
我的文档的一部分:
{“ media”:{“ list1”:[{“ title”:“ a”}],“ list2”:[{“ title”:“ b”}]}}}
删除相同脚本的脚本:
{“ script”:“ ctx._source.remove('media.list1')”,“ query”:{“ bool”:{“ must”:[{“ exists”:{“ field”:“ media .list1“}}]}}}
答案 0 :(得分:1)
如果您只想从文档中删除一个字段(而不是删除整个文档),则需要使用轻松的脚本。请参阅问题post,以作为编写脚本以从文档中删除字段的参考。
要更新索引中的所有文档,请使用无障碍脚本将{_3}}内的字段删除,并使用match_all作为“查询”来更新所有文档。
您不想为此使用Bulk API。如果您想用新信息替换整个文档(更新),则将使用批量API。