首页 > 解决方案 > 对弹性搜索的 curl 请求引发异常

问题描述

您好我正在尝试使用 curl 命令发出批量请求。但是我收到一个错误。

这是我的 curl 命令

curl -XPOST localhost:9200/cars/car/_bulk -H 'Content-Type: application/json'  --data-binary  @/Users/kannan/mep/api/src/main/docker/elasticsearch/initial-data/cars.json

我收到的错误如下

{"error":{"root_cause":[{"type":"json_parse_exception","reason":"Unrecognized token 'n': was expecting 'null', 'true', 'false' or NaN\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@5e667837; line: 1, column: 3]"}],"type":"json_parse_exception","reason":"Unrecognized token 'n': was expecting 'null', 'true', 'false' or NaN\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@5e667837; line: 1, column: 3]"},"status":500}

我的cars.json如下

{"index":{}}
{"id":0,"manufacturer":"cheverlot","model":"AC 3000ME 1002","description":"Culpa exercitation nulla amet excepteur amet sint voluptate elit consectetur. Sit eiusmod velit occaecat consequat pariatur mollit cupidatat ad velit ipsum reprehenderit ea labore aliquip. Nostrud ullamco minim nulla in ea nulla nisi Lorem laboris aute.\r\n","date":"3202-07-20T12:29:26 -01:00"}
{"index":{}}
{"id":1,"manufacturer":"Bugati","model":"AC 3000ME 1003","description":"Eiusmod magna laborum nulla labore esse. Qui velit nulla eiusmod excepteur anim veniam cupidatat proident incididunt proident non laborum irure aliqua. Magna exercitation eiusmod ad mollit pariatur commodo. Deserunt mollit Lorem do laboris pariatur reprehenderit consequat consectetur excepteur nostrud.\r\n","date":"11925-03-15T05:54:00 -00:00"}
{"index":{}}
{"id":2,"manufacturer":"Bugati","model":"AC 3000ME 1001","description":"Commodo cupidatat laborum aliquip mollit irure reprehenderit ipsum cillum officia labore Lorem aliqua reprehenderit. Lorem ad consectetur anim aute non tempor magna aliquip elit minim. Et laboris tempor velit non. Commodo amet laborum pariatur id et Lorem consectetur elit cupidatat aute eu proident quis nostrud. Do laboris ipsum officia pariatur deserunt ullamco qui. Eu tempor irure consectetur officia adipisicing cupidatat laboris non consectetur ad laboris commodo deserunt tempor.\r\n","date":"7679-11-22T08:16:34 -00:00"}
{"index":{}}
{"id":3,"manufacturer":"cheverlot","model":"AC 3000ME 1001","description":"Deserunt occaecat laboris laborum cupidatat nisi reprehenderit aute aute culpa. Sunt consequat fugiat dolor dolore dolor sint. Exercitation sunt adipisicing nostrud culpa non consequat anim est excepteur deserunt et excepteur. Minim eu cupidatat adipisicing quis occaecat deserunt magna ea.\r\n","date":"3959-09-20T09:24:42 -01:00"}
{"index":{}}
{"id":4,"manufacturer":"Audi","model":"AC 3000ME 1003","description":"Magna commodo fugiat ea consequat incididunt. Adipisicing commodo duis consequat officia esse et ea excepteur exercitation anim laboris dolor ad. Officia magna incididunt irure sit et minim adipisicing aliquip officia magna Lorem qui veniam quis. Lorem elit et deserunt exercitation nisi sit non aliqua officia veniam consequat. Non ut fugiat nisi nulla exercitation nostrud. Ut culpa reprehenderit mollit commodo officia irure labore fugiat cillum tempor esse aliqua est ipsum.\r\n","date":"8024-05-26T04:22:34 -01:00"}

知道我无法在弹性搜索上发出批量索引请求的可能原因是什么我的弹性搜索版本是 6.6.1 谢谢

我在这里上传我的文件 https://gofile.io/?c=fBq9p3

标签: elasticsearch

解决方案


您的 json 包含无效的标记,这会破坏字符串标记器

\r\n

在整个数据集中转义这个字符,如下所示

\\n

并尝试通过批量 API 导入


推荐阅读