elasticsearch使用笔记2

1 根据查询条件更新数据——适用于简单的数据清洗工作

下面的demo是一个简单的清洗坐标数据的脚本,将string格式的坐标清洗成number格式,在es5.6版本升级都6.8版本的时候做数据迁移会遇到这个问题,es6.8对坐标的格式要求更严格

query里面是查询条件(参考使用笔记1)

script里面是脚本

      lang后面表示脚本语言的类型

      inline后面是实际的逻辑脚本(类似于java代码,写的时候可以参考java语法写)

      params后面是一个传参入口,在inline中用params.***的格式引入(第二段demo)

POST index/_update_by_query
{
    "query": {
      "match_all": {}
    },
    "script": {
        "lang": "painless",
        "inline": "if(ctx._source.SHAPE!=null&&ctx._source.SHAPE.coordinates!=null){ctx._source.SHAPE.coordinates[0]=Double.parseDouble(ctx._source.SHAPE.coordinates[0].toString());ctx._source.SHAPE.coordinates[1]=Double.parseDouble(ctx._source.SHAPE.coordinates[1].toString())}",
        "params":{
    	    "name":"测试参数"
        }
    }
}
{
  "query": {
    "match_all": {}
  },
  "script": {
    "lang": "painless",
    "inline": "ctx._source.name = params.name",
    "params":{
    	"name":"测试名称"
    }
  }
}

2 elasticsearch批量设置别名

add表示新增操作,remove表示移除操作。index里是索引名称,alias里是对应的别名

POST /_aliases
{
    "actions": [
        {
            "add": {
                "index": "index1",
                "alias": "index1_alias"
            }
        },
         {
            "add": {
                "index": "index2",
                "alias": "index2_alias"
            }
        },
        {
            "remove": {
                "index": "index3",
                "alias": "index3_alias"
            }
        },  {
            "remove": {
                "index": "index4",
                "alias": "index4_alias"
            }
        }
    ]
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值