在日常运维中,必不可免的需要对es中的数据进行一些更新,尤其是基于条件的更新。
在没有es head的情况下,只能在服务器上使用curl通过es的api进行 *** 作,结合官方文档及网上示例,走了不少弯路,现将可用的命令总结一下。
curl -X POST 'http://192.168.20.20:9200/index_name_*/_update_by_query?pretty' -H 'content-Type:application/json' -d '{"script": {"source": "ctx._source['''userName''']='''zhangsan''';ctx._source['''userId''']='''1029312931'''","lang": "painless"},"query": {"term": {"userName": "lisi"}}}'
在上述命令中:
服务器地址为:192.168.20.20
索引名称为:index_name_* (注意此处模糊匹配,即在index_name的所有索引里面更新)
条件:name=lisi
修改后:name为张三,用户id为1029312931。
curl中的json如果涉及到单引号’,需要转义,转义方式为’’'对应一个单引号。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)