我在弹性搜索群集上执行小型基准测试。我的基准脚本是用bash编写的,并使用curl。
我将数据写入我发布到REST API的文件中:
curl -XPOST 'localhost:9200/benchmark/external/_bulk?pretty' \
--data @$DATAFILE
我的$DATAFILE
非常简单,并且已准备好所有换行符:
{"index":{"_id": "1"}}
{"data":"xxxxxxxxxx"}
{"index":{"_id": "2"}}
{"data":"xxxxxxxxxx"}
{"index":{"_id": "3"}}
{"data":"xxxxxxxxxx"}
...
但是当我尝试发布帖子时,我一直收到以下错误:
{
"error" : "ActionRequestValidationException[Validation Failed: 1: no requests added;]",
"status" : 400
}
我知道我的输入未经过验证,但为什么?
答案 0 :(得分:2)
curl在发送数据之前删除了新行!
--data
参数应替换为--data-binary
:
curl -XPOST 'localhost:9200/benchmark/external/_bulk?pretty' \
--data-binary @$DATAFILE