2016-05-04 32 views
0

ElasticSearchのbuzzインデックスから文書を削除しようとしています。削除直後には、既存のエントリのリストを取得し、削除されたアイテムはまだリストに残っています。 ID国によるエントリの基準による検索を実行する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); 
     }); 
    }, 

を要求

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は、単純なHTTPリクエストにちょうどwrapperaです。

'マニュアル'削除後のエントリリストを取得するための木版または郵便配達の再取得がOKです。アイテムがリストにありません。だから、多分、いくつかの 'キャッシュ'問題を除いて、すべてが正しく動作しています。

答えて

2

インデックスを更新してからフェッチする必要があります。

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