首页 > 技术文章 > Windows下elasticsearch插入数据报错

xsht 2016-03-16 10:55 原文

  按照官方文档操作,但是windows下有些不同,它不认识单引号',因此如果这样操作,就会报错:

C:\Users\neusoft>curl localhost:9200/b1/b2/1 -d {"name":"fdafa"}
{"error":"MapperParsingException[failed to parse]; nested: JsonParseException[Un
recognized token 'fdafa': was expecting 'null', 'true', 'false' or NaN\n at [Sou
rce: [B@1e6b986; line: 1, column: 13]]; ","status":400}

  此时,需要在{}周围添加双引号,json内部的双引号则转义

C:\Users\neusoft>curl localhost:9200/b1/b2/1 -d "{\"name\":\"fdafa\"}"
{"_index":"b1","_type":"b2","_id":"1","_version":1,"created":true}

  这样操作就正常了!

 

  在Linux下也会遇到同样的问题,有时候写的json也无法识别其中的参数,此时也需要经过转义才能使用。

当所需要插入或更新的数据出现空格时:curl -XPUT localhost:9200/megacorp/employee/1?pretty -d{\"name\":\"John Doe\"}会报Json_parse_exception

curl:[globbing] unmatched close brace/bracket at pos 6

此时需用引号将John Doe 引起来,即:"John Doe"

curl -XPUT localhost:9200/megacorp/employee/1?pretty -d{\"name\":\""John Doe"\"}

推荐阅读