使用curl向elasticsearch批量插入数据的时候报错:The bulk request must be terminated by a newline [\\n]

提问者:帅平 问题分类:搜索引擎

今天在测试的时候,把批量的数据写入本地文件,然后使用 curl -H "Content-Type: application/x-ndjson" -XPOST "http://192.168.31.20:9200/_bulk?refresh" --data-binary "@devices.json"的时候报错了,具体报错信息是:

{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"The bulk request must be terminated by a newline [\n]"}],"type":"illegal_argument_exception","reason":"The bulk request must be terminated by a newline [\n]"},"status":400}

请问是什么问题?

1 个回答
披起头发是娇弱
披起头发是娇弱

在使用bulk进行批量向elasticsearch写数据的时候,需要保证文件里面最后一行是空行,也就是最后一行也必须带有回车标识,如果没有回车标识,那么这个读取就会出问题。因此我们需要在文件里面保证最后一行也有回车,因此在数据行的最后一行进行回车,文本里面最后一行是空行即可。例如:

像上面这个文件,最后一行是空行,一定要保证最后一行是空行,最后一行数据行有回车标识。

发布于:2周前 (11-17)
我来回答