假设index-a的url字段包含内容“..\..\a\b”,现在要把它替换为空
bash
curl -u "elastic:elastic" -k "https://localhost:9200/index-a/_update_by_query" \
-H 'Content-Type: application/json' \
-d'
{
"script": {
"source": "ctx._source.url = ctx._source.url.replace(\"..\\\\..\\\\a\\\\b\\\\\", \"\")",
"lang": "painless"
}
}
'
解释
-
-k
或--insecure
:允许curl
忽略 SSL 证书验证(适用于自签名证书)。 -
-u
:提供用户名和密码进行基本认证。 -
-X POST
:指定 HTTP 方法为 POST。 -
-H 'Content-Type: application/json'
:指定请求的内容类型为 JSON。 -
-d
:发送请求体数据。需要注意里面对"\"的转义
在请求体中:
-
script
:指定要执行的脚本。 -
source
:脚本内容,使用 Painless 脚本语言。 -
lang
:指定脚本语言为 Painless。