Проблема отображения эластичного поиска: не удалось проанализировать поле - PullRequest
0 голосов
/ 11 января 2020

У меня есть это отображение

PUT /mytest

{
  "mappings":{
        "properties": {
          "value": { "type": "object" }
        }
  }
}

Когда я вставляю этот документ

POST /mytest/_doc/4
{
  "value": { "value": "test"}
}

Я получил следующую ошибку:

{
  "error": {
    "root_cause": [
      {
        "type": "mapper_parsing_exception",
        "reason": "failed to parse field [value.value] of type [long] in document with id '4'. Preview of field's value: 'test'"
      }
    ],
    "type": "mapper_parsing_exception",
    "reason": "failed to parse field [value.value] of type [long] in document with id '4'. Preview of field's value: 'test'",
    "caused_by": {
      "type": "illegal_argument_exception",
      "reason": "For input string: \"test\""
    }
  },
  "status": 400
}

Я знаю соглашение об именовании Это плохо, но это действительный JSON запрос, но я не уверен, почему он его не разрешает.

1 Ответ

1 голос
/ 11 января 2020

Эта ошибка говорит о том, что у вас нет сопоставления для значения свойства в свойстве объекта значения. В приведенном ниже примере будет установлено свойство value.value в вашем индексе mytest:

PUT mytest
{
   "mappings": {
      "properties": {
         "value": {
            "type": "object",
            "properties": {
               "value": {
                  "type": "text"
               }
            }
         }
      }
   }
}

Однако я не думаю, что это было вашим намерением. В качестве рекомендации попробуйте следовать общей схеме Elasti c (ECS) для именования свойств индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...