NodeJs和ElasticSearch:大容量插入错误:无法派生xcontent

时间:2018-11-17 22:36:20

标签: node.js elasticsearch bulkinsert

我找不到我的错误,我正在尝试使用带有Elasticsearch库的bulk方法将元素数组插入Elastic Search。

谢谢。

InserTweets: function (arrayobj, callback) {

        var items=[];

        var count=1;
        arrayobj.forEach(element => {
            items.push({ index:  { _index: 'twitter', _type: 'tweet', _id: count }},element);
            count++;
        });

        console.log(items);

        client.bulk({body: [items]}, function (err, resp, status) {
            callback(err, resp, status);
        });
    }

错误:

{ error:
   { root_cause: [ [Object] ],
     type: 'parse_exception',
     reason: 'Failed to derive xcontent' },
  status: 400 }

1 个答案:

答案 0 :(得分:1)

属性body的值必须是对象数组,而不是对象数组。

client.bulk({body: [items]}...应该是client.bulk({body: items}...

此外,您也将items推入element本身,这是您想要的吗?