elasticsearch的数据某字段批量去空格及更新操作

用script脚本语法,操作通过的ES版本7.2

# 正常文本替换
POST /full_tm_info/_update_by_query
{

  "query": {
    "term": {
      "term_id": {
        "value": "035-2179"
      }
    }
  },
  "script": {
    "lang": "painless",
    "source": "ctx._source.notes_cn='这一措辞于2008年11月11日被修改为\"冻结\"这些服务的自助服务方面阐明了为什么这些服务属于第35类零售商店类型的服务。作为餐厅服务,这种服务不属于第43类,因为这种服务关注的是供消费的食物的准备和提供,而不是供购买的产品的特点。'"
  }

}

# 批量去空格
POST /full_tm_info/_update_by_query
{
  "query": {
    "match": {
      "reg_name_cn.keyword": "腾讯科技(深圳)有限公司 "
    }
  },
  "script": {
    "lang": "painless",
    "source": "ctx._source.reg_name_cn=ctx._source.reg_name_cn.trim()"
  }
}

# 如果查询条件用正则的方式,要去掉字尾的空格,则可以有以下写法
POST /full_tm_info/_update_by_query
{
  "query": {
    "regexp": {
      "reg_name_cn.keyword": ".* "
    }
  },
  "script": {
    "lang": "painless",
    "source": "ctx._source.reg_name_cn=ctx._source.reg_name_cn.trim()"
  }
}

其他示例

#batch update or bulk update 
POST /tv_stats_play_dur*/doc/_update_by_query?conflicts=proceed
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "root_id": 5
          }
        },
        {
          "match": {
            "sub_id": 0
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "root_name": "直播"
          }
        }
      ]
    }
  },
  "script": {
    "lang": "painless",
    "source": "ctx._source.root_name = params.live_name",
    "params": {
      "live_name": "直播"
    }
  }
}

声明:文章由作者本人的亲历及经验总结,属个人原创文章,欢迎转载并注明出处,个博原文的链接地址见:
https://tech.limuqiao.com/archives/42.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值