【发布时间】:2014-04-16 06:31:40
【问题描述】:
我是弹性搜索的新手,正在努力从我的收藏中删除一个条目。 我需要一个类似于这个的查询 DELETE FROM message WHERE id='1323'" and created_user = "user@gmail.com"。
以下是我的弹性搜索查询,当我执行此操作时,它只删除特定的 id 字段,它不采用第二个参数 created_user。请帮我解决这个问题。谢谢
var created = "9ed8afe738aa63c28b66994cef1f83c6"
db.delete({
index: 'outboxpro',
type: 'message',
id: req.body.post_id,
created_user: created
}, function (error, resp) {
if (error) {
return next(error);
}
var data = {};
console.log('delete response',resp);
if (resp.hits.successful < 1) {
data = {status: false, message: 'NO POST FOUND TO DELETE', code: 400};
res.send(data);
} else {
return next({status: true, message: 'POST DELETED', data: error, code: 500});
}
});
//// 编辑 我试过 deleteByQuery,下面是我的代码
db.deleteByQuery({
index: 'outboxpro',
type: 'message',
body:{
"query": {
"filtered": {
"query": {
"match": {
"_id": {
"query": "Kal4AXi5R9G-IMx4GIKYMw"
}
}
},
"filter": {
"and": [
{
"term": {
"created_user": created
}
}
]
}
}
}
}
}, function (error, resp) {
if (error) {
return next(error);
}
console.log('post deleted');
});
【问题讨论】:
-
您能否提供您的映射以及您从弹性搜索中得到的答案?
标签: node.js elasticsearch amazon-elastic-beanstalk