1.问题出现
当修改 indexname 索引中 某一时间段内的日期 出现了以下问题
curl -XPOST --header "Content-Type:application/json" http://localhost:9200/skydome_event_known/_update_by_query -d'
{
"script": {
"source": "ctx._source.time.eventtime='2023-05-27 01:00:00'",
"lang": "painless"
},
"query": {
"range": {
"time.eventtime": {
"gte": "2023-02-22 00:00:00",
"lte": "2023-02-22 23:59:59",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}'
一运行
{
"error": {
"root_cause": [
{
"type": "json_e_o_f_exception",
"reason": "Unexpected end-of-input in VALUE_STRING\n at [Source: (org.elasticsearch.common.io.stream.ByteBufferStreamInput); line: 2, column: 61]"
}
],
"type": "json_e_o_f_exception",
"reason": "Unexpected end-of-input in VALUE_STRING\n at [Source: (org.elasticsearch.common.io.stream.ByteBufferStreamInput); line: 2, column: 61]"
},
"status": 400
}curl: (3) [globbing
] unmatched close brace/bracket at pos 29
2.问题解决
将上面指令中的
"script": {
"source": "ctx._source.time.eventtime='2023-05-27 01:00:00'",
"lang": "painless"
},
改为
"script": {
"source": "ctx._source.time.eventtime='\''2023-05-27 01:00:00'\''",
"lang": "painless"
},
即将脚本 script 中 双引号中的 单引号 从 ' 改为 '\'' 这种形式