我正在尝试仅删除带有“ datastorage.clientID”:“ 00001”的索引,但是它删除了所有项目,您在此代码中看到任何错误吗?
deleteAllByClientID: function (clientID,callback) {
console.log("clientID" , clientID)
client.indices.delete({
index: 'datastorage',
body: {
query: {
"match" : {
"datastorage.clientID" : clientID
}
}
}
}, function (err, res) {
callback(err, res);
});
}
上方的删除功能将返回{已确认:true}
请考虑此搜索功能正常
GetItems: function (clientID,callback) {
client.search({
index: 'datastorage',
scroll : "1m",
size:10000,
body: {
query: {
"match" : {
"datastorage.clientID" : clientID
}
}
}
}, function (err, resp, status) {
callback(err,resp);
});
},
感谢安德里亚
答案 0 :(得分:0)
要删除与查询匹配的文档,应使用Delete By Query API。使用Javascript客户端,您应该调用client.deleteByQuery方法(请参见client documentation)。您的情况如下所示:
deleteAllByClientID: function (clientID,callback) {
console.log("clientID" , clientID)
client.deleteByQuery({
index: 'datastorage',
body: {
query: {
"match" : {
"datastorage.clientID" : clientID
}
}
}
}, function (err, res) {
callback(err, res);
});
}