背景:
一次给es新增字段,并且拷贝字段的操作,采用
curl -X POST "http://localhost:9200/xxx/_update_by_query" -H 'Content-Type: application/json' -d'
{
"script": {
"source": "ctx._source.didstr = ctx._source.did.toString()"
}
}'
执行结果返回
curl: (52) Empty reply from server
es里面总的数据差不多1k条,也不多,但就这个看似简单的操作,执行还是错误了。
原因:
资源不足,当时在内网测试环境执行的时候并没有出现错误。
解决办法:
使用size,分批执行
curl -X POST "http://localhost:9200/xxx/_update_by_query" -H 'Content-Type: application/json' -d'
{
"script": {
"source": "ctx._source.didstr = ctx._source.did.toString()",
"lang": "painless"
},
"size": 10,
"query": {
"exists": {
"field": "did"
}
}
}'
像上面这个每次10个,10个的处理,就能正常执行完。