{"错误":" MapperParsingException [格式错误的内容,必须以对象开头]"," status":400}

时间:2015-03-29 18:28:51

标签: json elasticsearch

我尝试使用命令

插入我的JSON文件

curl -XPOST'http://localhost:9200/test/sec5/1' - d @ quality.json

[
  {
    "Provider ID":"###",
    "Hospital Name":"## #### ###",
    "Address":"## ## ## ## ",
    "City":"###",
    "State":"IL",
    "ZIP Code":##,
    "County Name":"$$$$",
    "Phone Number":###,
    "Condition":"## ## ###",
    "Measure ID":"AMI_10",
    "Measure Name":"## ## ##",
    "Score":"98",
    "state_score":99,
    "nat_score":98,
    "percent_s_score":"98.989898989899",
    "percent_n_score":"100",
    "Sample":"101",
    "patient errors":"2.02",
    "Footnote":"",
    "Measure Start Date":"4/1/2013",
    "Measure End Date":"12/31/2013"
  },
  {
      "Provider ID":"###",
    "Hospital Name":"## #### ###",
    .................

    "Measure Start Date":"4/1/2013",
    "Measure End Date":"12/31/2013"
  },

...........
.........

]

我的JSON格式有什么问题?提前谢谢。

1 个答案:

答案 0 :(得分:4)

错误信息清楚地说明了这里发生了什么。

  

{“error”:“MapperParsingException [格式错误的内容,必须以对象开头]”,“状态”:400}

这意味着你必须用{...}包装整个内容 你也做不到这样的事情:

{ [...] }

因为它不是有效的JSON文档。 JSON对象需要采用名称 - 值对的格式,如:

{ "data": [...] }

但是它会被视为索引的单一文档,我想这并不是你所期望的那样。您正在尝试一次索引多个文档。

基本上你不能这样做。对于多个"动作"在一个查询中,您应该使用Bulk API。这是一个简单的查询有点复杂,所以我不会在这里解释它。只需阅读文档。