使用 curl 的弹性搜索批量插入不起作用
Elastic search batch insert using curl is not working
我正在 Elastic Search 集群上执行小型基准测试。我的基准测试脚本是用 bash 编写的并使用 curl.
我正在将数据写入我正在 post 到 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"}
...
但是当我尝试执行 post 时,我不断收到以下错误:
{
"error" : "ActionRequestValidationException[Validation Failed: 1: no requests added;]",
"status" : 400
}
我知道我的输入没有经过验证,但为什么?
curl 在发送数据之前删除了换行符!
--data
参数应替换为--data-binary
:
curl -XPOST 'localhost:9200/benchmark/external/_bulk?pretty' \
--data-binary @$DATAFILE
我正在 Elastic Search 集群上执行小型基准测试。我的基准测试脚本是用 bash 编写的并使用 curl.
我正在将数据写入我正在 post 到 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"}
...
但是当我尝试执行 post 时,我不断收到以下错误:
{
"error" : "ActionRequestValidationException[Validation Failed: 1: no requests added;]",
"status" : 400
}
我知道我的输入没有经过验证,但为什么?
curl 在发送数据之前删除了换行符!
--data
参数应替换为--data-binary
:
curl -XPOST 'localhost:9200/benchmark/external/_bulk?pretty' \
--data-binary @$DATAFILE