我正在尝试使用node.js中的elasticsearch v 1.4.4创建一个函数来响应错误
当我们尝试在带有重复_Id的索引中插入文档时,就像在mongoDB中一样。 弹性搜索没有提供这样的错误,尽管它将修改与_id存在的文档。错误:重复_id
我已经创建了一个函数,它首先对弹性进行查询,以查找具有该id的记录抛出错误。 但它并不适用于实时。实时我的意思是,如果我尝试插入带有新ID的文档,那么他们将全部插入并增加doc的版本。我试过 _refresh 但不起作用。
我的功能类似......
function checkDuplicate(index,type,id,body){
client.exists({index: index, type: type, id: id}, function (err, res) {
if (res === false) {
client.index({index: index, type: type,id:id, body: json}, function (err, response) {
resp.send(JSON.stringify(response));
})
}
else
resp.send("Error : Duplicate index doc >>>>>>>>");
});
};
答案 0 :(得分:0)
您可以在请求中使用值op_type
的{{1}}参数(操作类型),如果您尝试创建已存在的文档,则会返回错误。来自docs:
索引操作还接受一个op_type,可用于强制创建操作,允许" put-if-absent"行为。使用create时,如果索引中已存在该id的文档,则索引操作将失败。