2015-12-08 2 views
0

Я пытаюсь вставить данные/обновления с JavaScript elasticsearch клиент, но я получаю сообщение об ошибке:elasticsearch.js основная вставка ошибка

{ 
    "error": { 
     "root_cause": [ 
     { 
      "type": "illegal_argument_exception", 
      "reason": "Malformed action/metadata line [1], expected a simple value for field [_data] but found [START_OBJECT]" 
     } 
     ], 
     "type": "illegal_argument_exception", 
     "reason": "Malformed action/metadata line [1], expected a simple value for field [_data] but found [START_OBJECT]" 
    }, 
    "status": 400 
    } 

Это данные, отправляемое

esclient.bulk({ 
    body: [ 
     { 
      "index": 
      { 
       "_index":"myindex", 
       "_type":"movie", 
       "_id":"1IEAEHNOIORANIT4SEOASNIE3HAETN2E...", 
       "_data": 
       { 
        "title":"Title 2", 
        "description":"This should be updated with this new data.", 
        "score":1, 
        "suggest_title":"Title 2", 
        "img":"http://url.to.image/img.jpeg", 
        "genres":["Comedy"], 
        "release":"2015-01-07T23:00:00.000Z", 
        "language":"EN", 
        "provider": 
        { 
         "id":"InstaFilmFlixify", 
         "url":"http://www.InstaFilmFlixify.com/play?id=238412" 
        } 
       } 
      } 
     } 
    ] 
}) 

Похоже, этот код генерирует следующий запрос на ES:

-> POST http://docker.me:9200/_bulk 
    { 
    "index": { 
     "_index": "myindex", 
     "_type": "movie", 
     "_id": "1IEAEHNOIORANIT4SEOASNIE3HAETN2E...", 
     "_data": { 
     "title": "Title 2", 
     "description": "This should be updated with this new.", 
     "score": 1, 
     "suggest_title": "Title 2", 
     "img": "http://url.to.image/img.jpeg", 
     "genres": [ 
      "Comedy" 
     ], 
     "release": "2015-01-07T23:00:00.000Z", 
     "language": "EN", 
     "provider": { 
      "id": "InstaFilmFlixify", 
      "url": "http://www.InstaFilmFlixify.com/play?id=238412" 
     } 
     } 
    } 
    } 

Что я делаю неправильно? Что происходит? Возможно, это может быть ошибка в ES/ES-адаптере.


Elasticsearch версия 2.1

+0

Что ваше отображение выглядит? –

ответ

1

Я не видел параметр "_data" раньше. Откуда у вас появилась идея использовать это?

Взгляните на документы для js client.

Во всяком случае, это должно работать для вас:

esclient.bulk({ 
    body: [ 
     { 
      "index": 
      { 
       "_index":"myindex", 
       "_type":"movie", 
       "_id":"1IEAEHNOIORANIT4SEOASNIE3HAETN2E...", 
      } 
     }, 
     { 
      "title":"Title 2", 
      "description":"This should be updated with this new data.", 
      "score":1, 
      "suggest_title":"Title 2", 
      "img":"http://url.to.image/img.jpeg", 
      "genres":["Comedy"], 
      "release":"2015-01-07T23:00:00.000Z", 
      "language":"EN", 
      "provider": 
      { 
       "id":"InstaFilmFlixify", 
       "url":"http://www.InstaFilmFlixify.com/play?id=238412" 
      } 
     } 
    ] 
}) 
+2

Да, вы правы. Эта вещь «_data» - это то, что я нашел в некоторых старых документах или что-то в этом роде. Я не смог найти источник, но, возможно, это был блог-пост. Я обнаружил, что я скопировал какой-то старый временный код вместо правильно отформатированного. – Automatico

Смежные вопросы