2015-04-05 95 views
1

在整個一天的不同隨機時間,我將對我將要提供給Elasticsearch的數據進行「抓取」。這一點工作得很好。刪除Elasticsearch中的舊條目

但是,該索引應該僅反映我最近一次抓取中發現的內容,而我目前沒有任何內容可以刪除Elasticsearch索引中的內容,該索引是上次抓取時遺留下來的,但未在新抓取中找到。

從我所看到的,我有幾個選擇:

A)刪除項目基礎上,他們的年齡有多大。由於索引時間是隨機的,因此不起作用。 B)刪除整個索引並輸入新的數據。看起來效率不高並且會留下空白或部分索引的時間。

C)做一個插入/修改查詢,如果找不到插入,如果已經在索引中找到更新時間戳,那麼做第二次刪除任何具有較舊時間戳的項目。 D)更好的東西。

什麼是在這種情況下刪除舊內容的邏輯和有效的方法?

回答

5

如果我知道你想做什麼,你是確保每個爬包含完整的數據集,我這樣做:

  • 爬進基於時間指數:您指數201504051656
  • 一氣呵成:
    • 從以前的索引創建一個別名到新創建的索引
    • 刪除別名
  • 關閉舊索引或刪除舊索引

這樣,你的應用程序都可以告訴別名,你確信你將永遠有一個索引交談。從索引中刪除大量記錄相對較多,關閉或刪除索引相對便宜。