我正在尝试使用node.js中的elasticsearch v 1.4.4创建函数以响应错误
就像在mongoDB中一样,当我们尝试在具有重复_Id的索引中插入文档时。
flex 搜索没有提供这样的错误,尽管它会修改,而该文档存在该_id。
我做了一个函数,该函数首先对elastic进行查询,以查找具有该id的记录并抛出错误。
但这并不是实时的。我的意思是,如果我尝试插入具有新ID的文档,那么它们都会全部插入并增加doc的版本。
我的功能就像
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 >>>>>>>>");
});
};
最佳答案
您可以在请求中将op_type
参数(操作类型)与create
值一起使用,如果您尝试创建已经存在的文档,则会返回错误。从docs: