ElasticSearch7.X使用_bulk时 POST数据出现json格式的异常

原文链接: https://blog.csdn.net/qq_27384769/article/details/79946591

在shell中使用命令如下:
1.创建索引

curl -XPUT http://localhost:9200/schools

2.POST数据

curl -XPOST localhost:9200/schools/_bulk?pretty --data-binary @123.json -H "Content-Type:application/json"

具体异常如下:

   {
      "error" : {
        "root_cause" : [
          {
            "type" : "json_e_o_f_exception",
            "reason" : "Unexpected end-of-input: expected close marker for Object (start marker at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@5209fe1a; line: 1, column: 1])\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@5209fe1a; line: 1, column: 3]"
          }
        ],
        "type" : "json_e_o_f_exception",
        "reason" : "Unexpected end-of-input: expected close marker for Object (start marker at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@5209fe1a; line: 1, column: 1])\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@5209fe1a; line: 1, column: 3]"
      },
      "status" : 500
    }

这种情况口试json的格式有问题,看看123.json的文本的格式:

{"index":{"_index":"schools", "_type":"school", "_id":"1"}}
{"name":"Central School", "description":"CBSE Affiliation", "street":"Nagan","city":"paprola", "state":"HP", "zip":"176115", "location":[31.8955385, 76.8380405],"fees":2000, "tags":["Senior Secondary", "beautiful campus"], "rating":"3.5"}
{"index":{"_index":"schools", "_type":"school", "_id":"2"}}
{"name":"Saint Paul School", "description":"ICSE Afiliation", "street":"Dawarka", "city":"Delhi", "state":"Delhi", "zip":"110075","location":[28.5733056,77.0122136],"fees":5000,"tags":["Good Faculty", "Great Sports"], "rating":"4.5"}
{"index":{"_index":"schools", "_type":"school", "_id":"3"}}
{"name":"Crescent School", "description":"State Board Affiliation", "street":"Tonk Road", "city":"Jaipur", "state":"RJ", "zip":"176114","location":[26.8535922, 75.7923988],"fees":2500, "tags":["Well equipped labs"], "rating":"4.5"}

对于一个json字符串里面的内容不能换行要写成一行,对于两个json字符串之间要换行(仔细琢磨这句话喔)。

这样就没有问题了。

成功了是下面的情况:

{
  "took" : 22,
  "errors" : false,
  "items" : [
    {
      "index" : {
        "_index" : "schools",
        "_type" : "school",
        "_id" : "1",
        "_version" : 2,
        "result" : "updated",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 3,
        "_primary_term" : 2,
        "status" : 200
      }
    },
    {
      "index" : {
        "_index" : "schools",
        "_type" : "school",
        "_id" : "2",
        "_version" : 2,
        "result" : "updated",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 4,
        "_primary_term" : 2,
        "status" : 200
      }
    },
    {
      "index" : {
        "_index" : "schools",
        "_type" : "school",
        "_id" : "3",
        "_version" : 2,
        "result" : "updated",
        "_shards" : {
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 5,
        "_primary_term" : 2,
        "status" : 200
      }
    }
  ]
}

bulk的具体用法看这个:

https://blog.csdn.net/qq_27384769/article/details/79946591

你可能感兴趣的:(ElasticSearch)