ElasticSearch:没有Index,Type和Id的POST更新

时间:2017-11-21 10:01:59

标签: elasticsearch post

以下是我在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。

所以,我的问题是:它甚至可能吗?如果不是,还有另一种方法可以做我想做的事吗?

提前感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:1)

我终于找到了解决方案!

我需要使用POST update_by_query代替POST update

POST * / _update_by_query
{
    "script" : {
        "inline": "ctx._source.hairy = 'yes'"
    }
}

明星意味着您要选择所有现有索引/索引