Elasticsearch缓存

时间:2016-05-04 09:59:30

标签: node.js elasticsearch

我试图从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.GETdb.DELETE只是简单的HTTP请求。

'手册'删除后Kibana或Postman重新获取条目列表是可以的。项目不在列表中。所以一切都正常,除了一些'缓存'问题。

1 个答案:

答案 0 :(得分:2)

您应该在获取索引之前刷新索引的索引。

client.indices.refresh([params, [callback]])