zoukankan      html  css  js  c++  java
  • elasticsearch批量修改,批量更新某个字段

    1.源生API

     在这里没有用官方提供的bulk API,而是用的另外一种方式。

    POST /infomations/infomations/_update_by_query
    JSON请求格式
    {
        "query": {
            "match": {
                "status": "UP_SHELF"
            }
        },
        "script": {
            "inline": "ctx._source['status'] = 'DOWN_SHELF'"
        }
    }

    POST请求/索引/文档名/_update_by_query
    
    主要看一下下面的script
    
    ctx._source[字段名] = “值”;ctx._source[字段名] = “值”;
    多个的话就用分号隔开。

    2.JAVA API操作

            //集群模式,获取链接
    Client client = elasticsearchTemplate.getClient();
    UpdateByQueryRequestBuilder updateByQuery
    = UpdateByQueryAction.INSTANCE.newRequestBuilder(client); String name = "修改数值"; updateByQuery.source("索引")
    //查询要修改的结果集 .filter(QueryBuilders.termQuery(
    "field", 412))
    //修改操作 .script(
    new Script( "ctx._source['field']='"+ name+"';ctx._source['field']='"+name+"'")); //响应结果集
    BulkByScrollResponse response
    = updateByQuery.get(); long updated = response.getUpdated();
  • 相关阅读:
    Zuul的核心源码解析
    基于Sentinel的服务保护
    Sentinel
    windows进行配置转发
    Hystrix断路器
    服务熔断Hystrix高级
    微服务架构的高并发问题
    Feign的高级配置
    倒排序原理和实例
    云计算技术的产生、概念、原理、应用和前景
  • 原文地址:https://www.cnblogs.com/technologykai/p/9983098.html
Copyright © 2011-2022 走看看