弹性搜索批量操作

时间:2019-01-08 14:31:05

标签: elasticsearch

我真的不明白为什么在运行批量插入时,我在不执行任何删除操作的情况下丢失了同一集合中的先前数据? 这很奇怪。

有什么主意吗?

var client = new elasticsearch.Client( {  
  hosts: [
    'http://localhost:9200/'    
  ]
})

。 。

InserTweets: function (arrayobj, callback) {
        var items=[];

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


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

1 个答案:

答案 0 :(得分:4)

您要将_id设置为count,以便在第二个操作中将其覆盖/更新现有记录为新记录。

_id对于每个记录都必须是唯一的。

element有像您自己的id一样独特的东西可以使用吗?