我正在尝试使用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:

09-25 16:35
查看更多