以下是我在elasticsearch中的一份文件:
{
"_index": "2017-10-21",
"_type": "cat",
"_id": "14",
"_score": 2.2335923,
"_source": {
"name": "Biscuit",
"breed": "Persian",
"age": "3"
}
}
我知道可以通过这种方式POST update
向现有文档添加新字段:
POST [index] / [type] / [id] / _update
例如,如果我想添加一个新字段"毛茸茸的"到我的文件:
POST 2017-10-21 / cat / 14 / _update
{
"script" : "ctx._source.hairy = 'yes'"
}
我会得到这个结果:
{
"_index": "2017-10-21",
"_type": "cat",
"_id": "14",
"_source": {
"name": "Biscuit",
"breed": "Persian",
"age": "3",
"hairy": "yes"
}
}
但是,我想在我的所有文档中添加一个新字段,无论它们的索引,类型或ID如何。不幸的是,即使经过数小时的研究,我也没有找到办法{@ 1}}而不使用索引,类型或ID。
所以,我的问题是:它甚至可能吗?如果不是,还有另一种方法可以做我想做的事吗?
提前感谢您提供任何帮助!
答案 0 :(得分:1)
我终于找到了解决方案!
我需要使用POST update_by_query
代替POST update
POST * / _update_by_query
{
"script" : {
"inline": "ctx._source.hairy = 'yes'"
}
}
明星意味着您要选择所有现有索引/索引