Генерация UUID для _id при отправке в elasticsearch вызывает 400

#elasticsearch

#elasticsearch

Вопрос:

Я новичок elasticsearch , и я не уверен, почему я получаю это сообщение, когда пытаюсь поместить некоторые данные в свой индекс. Я хочу создать свои собственные идентификаторы, поэтому я сгенерировал свои собственные UUID.

Мой индекс существует:

$ curl {IP}:{PORT}/_cat/indexes?v индекс состояния работоспособности pri rep docs.count docs.удаленное хранилище.размер pri.store.size желтый открыть трассировщик 5 1 0 0 795b 795b желтый открыть .kibana 1 1 1 0 3.2кб 3.2кб

 $ curl -XPUT http://{IP}:{PORT}/tracer/poster/b9d9fj2c-69ea-47f0-94e1-a6a3caecd097?pretty -d {"test": 1}
{
  "error" : {
    "root_cause" : [ {
      "type" : "mapper_parsing_exception",
      "reason" : "failed to parse"
    } ],
    "type" : "mapper_parsing_exception",
    "reason" : "failed to parse",
    "caused_by" : {
      "type" : "json_e_o_f_exception",
      "reason" : "Unexpected end-of-input within/between Object entriesn at [Source: org.elasticsearch.common.io.stream.InputStreamStreamInput@572153d0; line: 1, column: 13]"
    }
  },
  "status" : 400
}
  

Комментарии:

1. Что произойдет, если вы удалите ?pretty ?

2. Кроме того, я думаю, вам нужно заключить JSON в одинарные кавычки, поэтому ‘{ «test»: 1 }’

3. @OrWeinberger хорошо, это сработало! Теперь я должен выяснить, почему это не работает в моем коде…

4. @OrWeinberger вы можете ответить на вопрос, и я могу его принять

Ответ №1:

Вам просто нужно заключить ваш ввод JSON в одинарные кавычки

 user@host ~ $ curl -XPUT http://localhost:9200/test/test/1?pretty -d {"test": 1}
{
  "error" : {
    "root_cause" : [ {
      "type" : "mapper_parsing_exception",
      "reason" : "failed to parse"
    } ],
    "type" : "mapper_parsing_exception",
    "reason" : "failed to parse",
    "caused_by" : {
      "type" : "json_e_o_f_exception",
      "reason" : "Unexpected end-of-input within/between Object entriesn at [Source: org.elasticsearch.common.io.stream.InputStreamStreamInput@370eef58; line: 1, column: 13]"
    }
  },
  "status" : 400
}
curl: (3) [globbing] unmatched close brace/bracket in column 2
  

И теперь с одинарными кавычками:

 user@host ~ $ curl -XPUT http://localhost:9200/test/test/1?pretty -d '{"test": 1}'
{
  "_index" : "test",
  "_type" : "test",
  "_id" : "1",
  "_version" : 1,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}