2016-12-27 158 views
0

EDITED 我想了解如何根據條件從Elasticsearch中刪除數據。我知道舊版本的ElasticSearch具有刪除按查詢功能,但它有非常嚴重的性能問題,因此已將其刪除。我也知道,有一個爲Java插件刪除通過查詢:如何通過JavaAPI從ElasticSearch中刪除數據

org.elasticsearch.plugin:刪除逐個查詢:2.2.0

但我不知道是否有更好的實施方案刪除哪一個有更好的表現,或者它與舊的刪除相同。

此外,有人建議使用滾動刪除數據,但我知道如何檢索數據滾動,而不是如何使用滾動刪除!

有沒有人有一個想法(文檔中調用去除量將是巨大的,超過50K的文件。提前

謝謝!

最後用這個guy's third option

+0

您使用ES 2.2.0嗎? – Val

+0

ES 1.7的東西,和Java API是2.3.5 – user3049941

+0

我不知道,比如,如何做這樣的事情: 捲曲-XDELETE本地主機:9200/_search /滾動-d「 { 」scroll_id「 :[「c2Nhbjs2OzM0NDg1ODpzRlBLc0FXNlNyNm5JWUc1」] }' 但與API。 – user3049941

回答

1

你是正確的要使用滾動/掃描步驟如下:

  1. 開始一個新的滾動/掃描
  2. 獲取下一個N個記錄
  3. 採取的ID從每一個記錄,並做了BulkDelete這些ID
  4. 回去的步驟2

所以你不刪除正好利用滾動/掃描,你只要使用它作爲工具來獲取要刪除的記錄的所有ID。通過這種方式,你一次只能刪除N條記錄,而不是全部50,000條(這會導致你所有問題)。

+0

我的確做到了,非常感謝!並抱歉延遲迴復! – user3049941