在 elasticsearch 中更新过滤后的文档

Updating filtered documents in elasticsearch

我想知道是否有办法在过滤掉elasticsearch文档后更新它们。

假设我有一个包含以下文档的用户集合:

[
  { "name":"u1","age":23},
  { "name":"u2","age":31},
  { "name":"u3","age":27},
  { "name":"u4","age":33}
]

现在我需要做的是更新所有年龄在 30 岁以上的用户的姓名。 看了很多文档,在google上搜索了几个小时,包括下面的文档 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/_updating_documents.html

我找不到办法。因此,如果我们查看文档,我们会提供文档的 ID,因此它不符合我的需要。有没有办法在 Elasticsearch 中做这种事情?

根据您提供的link:

Note that as of this writing, updates can only be performed on a single document at a time. In the future, Elasticsearch will provide the ability to update multiple documents given a query condition (like an SQL UPDATE-WHERE statement).

因此,目前不支持此功能。不过你可以考虑看看这个插件:https://github.com/yakaz/elasticsearch-action-updatebyquery/.