首页 > 解决方案 > 带查询的 Elasticsearch-py 批量更新脚本?

问题描述

我想使用带有脚本的批量更新 api,但我想通过查询而不是 id 来应用更新。

标准的批量更新有效负载看起来像这样 -

{
  "_index": "users",
  "_type": "user",
  "_op_type": "update",
  "_id": "123",
  "script": { ... }
}

但我想用查询替换该_id属性-

{
  "_index": "users",
  "_type": "user",
  "_op_type": "update",
  "_query": {"query": {"range": {"age": {"gte": 30}}}},
  "script": { ... }
}

批量更新api可以做到这一点吗?我是否需要通过脚本 api 请求将此作为标准更新运行?

标签: elasticsearchelasticsearch-py

解决方案


我认为批量 API 不可能做到这一点。我认为您真正需要的是update_by_query方法。有关更多详细信息,请查看文档中的示例。


推荐阅读