Как отправить запрос оптом? Elasticsearch - PullRequest
0 голосов
/ 15 января 2019

У меня есть объект с данными, и я хочу отправить эти данные в эластичный контейнер поиска

      for(let key in params)
               {
                  bulk.push(JSON.stringify({
                index: {
                    _id: params[ key ][ 'id' ],
                    _type: 'id',
                    _index: 'geo'
                }
            }));
            bulk.push(JSON.stringify(params[key]));
        }
        let bulks = bulk.join("\n") + "\n";

Я сделал запрос

let cat =  request(
    {
        'method' : 'PUT',
        'uri'    : 'http://dev4.int10h.net:40024/_bulk',
        'body'   : bulks ,
        'json'   : true,
        'headers':
            [
                'Content-Type: application/x-ndjson'
            ],
        'agent'  : false
    }
);

но есть ошибка

Необработанное отклонение StatusCodeError: 400 - {"error": {"root_cause": [{"type": "invalid_argument_exception", "reason": "Массовый запрос должен быть завершен новой строкой [\ n]"}] , "type": "invalid_argument_exception", "reason": "Массовый запрос должен быть завершен новой строкой [\ n]"}, "status": 400 } в новом StatusCodeError (/usr/lib/node_modules/request-promise/node_modules/request-promise-core/lib/errors.js:32:15) at Request.plumbing.callback (/usr/lib/node_modules/request-promise/node_modules/request-promise-core/lib/plumbing.js:104:33) при обратном вызове Request.RP $ [as _callback] (/usr/lib/node_modules/request-promise/node_modules/request-promise-core/lib/plumbing.js:46:31) на Request.self.callback (/usr/lib/node_modules/request/request.js:185:22) at Request.emit (events.js: 182: 13) по запросу. (/Usr/lib/node_modules/request/request.js:1161:10) at Request.emit (events.js: 182: 13) на входящем сообщении. (/Usr/lib/node_modules/request/request.js:1083:12) в Object.onceWrapper (events.js: 273: 13) на IncomingMessage.emit (events.js: 187: 15) в endReadableNT (_stream_readable.js: 1098: 12) at process.internalTickCallback (internal / process / next_tick.js: 72: 19)

Как правильно отправить рассылку?

тип сыпучих материалов string enter image description here

1 Ответ

0 голосов
/ 15 января 2019

Не уверен, поможет ли вам это, но здесь Я обнаружил аналогичную проблему с _bulk и JSON.stringify.

Ответ:

Похоже, метасимволы в вашей полезной нагрузке не получаются переведено на новые строки. Если вы вместо этого использовали asticsearch.js клиент, он справится с этим для вас.

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