2016-05-04 21 views
0

我試圖從ElasticSearch buzz索引中刪除的文件。刪除後,我獲取現有條目的列表,並刪除項目仍在列表中。由ID狀態found:falseElasticsearch緩存

function(callback) { 
     self._db.GET('buzz/news/' + self._id, { 
     v: Date.now() 
     }, {}, function(err, result) { 
     console.log('result: ', JSON.stringify(result)); 
     callback(err); 
     }); 
    }, 

執行按條件搜索

async.series([ 
function(callback) { 
    self._db.DELETE('buzz/news/' + self._id, {}, {}, function(err, response) { 
     return 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只是wrappera簡單的HTTP請求。

「手動」或Kibana郵差reuquests得到條目列表刪除後都OK。項目不在列表中。所以一切工作都正常,除了一些'緩存'問題。

回答

2

你應該刷新獲取它之前更新索引的索引。

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