2014-02-25 49 views
1

編輯:如何從Java API中刪除所有X天的舊文檔?

爲了澄清,問題是「我怎樣寫是在X天前,所以我可以將它們刪除文檔的查詢」。編輯

END

我們的代碼索引結果使用ElasticSearch查詢。我們希望每天運行一次清理工作,以刪除所有舊文檔。我們目前通過調用外部腳本來做到這一點,但爲了減少依賴關係,我們希望從Java中完成。

我無法弄清楚如何使用API​​查詢舊文檔......線索,幫助?

回答

3

如果您刪除已經存儲一段時間的文檔,您可以設置一個TTL(生存時間)參數,一旦這段時間過去就設置文檔刪除位設置標誌。見here。希望這是您可以考慮的替代方案。

UPDATE

"query":{ 
    "match_all": {} 
}, 
"filter":{ 
    range:{ 
    "field":{ 
    lte: 20140225, 
    gte: 20140201 
    } 
    } 
} 
0
+0

我發現了,但需要刪除基於其年齡... –

+0

我已添加的範圍查詢對如何查詢文件的例子。但很誠實,我更喜歡TTL appropach。我寧願將文檔放在例如每天索引,將「熱門」索引放在別名中,當它們變老時,只需從別名中刪除索引並刪除整個索引。這完全取決於需要多少邏輯來定義「舊」。 – cfrick

相關問題