Jud*_*Raj 13 json bulk-load elasticsearch elasticsearch-5
我最近升级到elasticsearch版本6.1.1,现在我无法批量索引json文件中的文档.我内联它,它工作正常.以下是该文件的内容:
{"index" : {}}
{"name": "Carlson Barnes", "age": 34}
{"index":{}}
{"name": "Sheppard Stein","age": 39}
{"index":{}}
{"name": "Nixon Singleton","age": 36}
{"index":{}}
{"name": "Sharron Sosa","age": 33}
{"index":{}}
{"name": "Kendra Cabrera","age": 24}
{"index":{}}
{"name": "Young Robinson","age": 20}
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时,
curl -XPUT 'localhost:9200/subscribers/ppl/_bulk?pretty' -H 'Content-Type: application/json' -d @customers_full.json
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
"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
Run Code Online (Sandbox Code Playgroud)
如果我在内联和弹性搜索5.x中发送数据,它工作正常.我尝试在文件末尾添加换行符和换行符.似乎没有用.
Sat*_*amy 29
在JSON文件的末尾添加空行并保存文件,然后尝试运行以下命令
curl -XPOST localhost:9200/subscribers/ppl/_bulk?pretty --data-binary @customers_full.json -H 'Content-Type: application/json'
Run Code Online (Sandbox Code Playgroud)
我希望它适合你.
And*_*d14 13
如文档所述:使用--data-binary标志而不是普通标志-d
-d不保留换行符,也不格式化json。
由于JSON格式,我遇到了这个问题。
错误很明显:
The bulk request must be terminated by a newline [\n]
Run Code Online (Sandbox Code Playgroud)
因此,您只需在customers_full.json文件末尾添加换行符即可.
我在使用Elasticsearch 7.3时遇到了类似的问题。
我是这样解决的。
.json文件,说products.json文件。.json在文本编辑器中打开该文件。.json,然后按键盘上的 ENTER 键。.json文件。这将在文件末尾创建一个新行.json。N/B:对于下面的命令,.json文件名是products.json我要导入的文件名http://localhost:9200/ecommerce/product
curl -H "Content-type: application/json" -XPOST "http://localhost:9200/ecommerce/product/_bulk?pretty" --data-binary "@products.json"
Run Code Online (Sandbox Code Playgroud)
就这样。
我希望这有帮助
| 归档时间: |
|
| 查看次数: |
14130 次 |
| 最近记录: |