我真的不明白为什么在运行批量插入时,我在不执行任何删除操作的情况下丢失了同一集合中的先前数据? 这很奇怪。
有什么主意吗?
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);
});
}
答案 0 :(得分:4)
您要将_id
设置为count
,以便在第二个操作中将其覆盖/更新现有记录为新记录。
_id
对于每个记录都必须是唯一的。
element
有像您自己的id
一样独特的东西可以使用吗?