首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElasticSearch -使用WHERE子句一次更新多个文档

ElasticSearch -使用WHERE子句一次更新多个文档
EN

Stack Overflow用户
提问于 2018-09-24 16:25:55
回答 1查看 3.7K关注 0票数 3

ElasticSearch 6.2.2在Linux上--所有通过API调用实现的活动--我们没有设置Kibana。

我正在尝试更新一个包含大约5,000份文件的字段,使其成为相同的值。现在,我只知道如何使用以下API调用一次更新一个文档:

网址:

代码语言:javascript
复制
POST http://{{elasticip}}:9200/{{index}}/_doc/{{docid}}/_update?pretty

Body:

代码语言:javascript
复制
{
  "doc": { "categories": [ "NEWS" ]}
}

我有大约5k个文档,其categories值为null。因此,我需要做一个更新API调用,它说更新所有文档,其中categories字段是null,值为[ "NEWS" ]

这是通过API调用实现的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 16:31:57

这可以使用按查询API更新来实现。

代码语言:javascript
复制
POST your-index/_update_by_query
{
  "script": {
    "source": "ctx._source.categories = params.categories",
    "lang": "painless",
    "params": {
      "categories": ["NEWS"]
    }
  },
  "query": {
    "bool": {
      "must_not": {
        "exists": {
          "field": "categories"
        }
      }
    }
  }
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52483606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档