我试图从ElasticSearch中的buzz
索引中删除文档。删除后,我获取现有条目列表,删除项目仍在列表中。
async.series([
function(callback) {
self._db.DELETE('buzz/news/' + self._id, {}, {}, function(err, response) {
return callback(err);
});
},
请求按状态found:false
function(callback) {
self._db.GET('buzz/news/' + self._id, {
v: Date.now()
}, {}, function(err, result) {
console.log('result: ', JSON.stringify(result));
callback(err);
});
},
按条件执行搜索仍会在列表中返回此条目。
function(callback) {
self._db.GET('buzz/news/_search', {
v: Date.now()
}, qq, function(err, result) {
console.log('result: ', JSON.stringify(result.hits.hits.map(function(hit) {
return hit._id;
})));
callback(err);
});
},], function(err){...});
所有代码都在一个async.series
内。
这是标准:
var qq = {
"query": {
"filtered": {
"query": {
"query_string": {
"fields": ["title"],
"query": "*"
}
},
"filter": {
"bool": {
"must": [],
"_cache": false
}
}
}
},
"sort": [{
"pubDate": "desc"
}],
"from": "0",
"size": "30"
}
db.GET
和db.DELETE
只是简单的HTTP请求。
'手册'删除后Kibana或Postman重新获取条目列表是可以的。项目不在列表中。所以一切都正常,除了一些'缓存'问题。
答案 0 :(得分:2)
您应该在获取索引之前刷新索引的索引。
client.indices.refresh([params, [callback]])