使用curl的弹性搜索批量插入不起作用

时间:2015-02-27 16:39:12

标签: bash curl elasticsearch benchmarking

我在弹性搜索群集上执行小型基准测试。我的基准脚本是用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
}

我知道我的输入未经过验证,但为什么?

1 个答案:

答案 0 :(得分:2)

curl在发送数据之前删除了新行!

--data参数应替换为--data-binary

curl -XPOST 'localhost:9200/benchmark/external/_bulk?pretty' \
     --data-binary @$DATAFILE