删除Elasticsearch中的旧条目

时间:2015-04-05 14:12:02

标签: search elasticsearch

在一天中的不同随机时间,我将对数据进行“爬行”,我将将其提供给Elasticsearch。这个位工作正常。

但是索引应该只反映我最近的抓取中发现的内容,而且我目前没有任何内容可以删除Elasticsearch索引中的内容,该内容是从上一次抓取中遗留但未在新抓取中找到的。

从我所看到的,我有几个选择:

A)根据物品的年龄删除物品。因为索引时间是随机的,所以不起作用。

B)删除整个索引并输入新数据。看起来效率不高,会留给我一个空的或部分索引的时间。

C)执行插入/修改查询,如果未找到插入,如果已在索引中找到更新时间戳,则执行第二次删除以删除具有较旧时间戳的任何项目。

D)更好的东西。

在这种情况下删除旧内容的逻辑和有效方法是什么?

1 个答案:

答案 0 :(得分:5)

如果我理解你想做什么,并且你确定每次抓取包含完整的数据集,我会这样做:

  • 抓取基于时间的索引:您索引201504051656
  • 一气呵成:
    • 为新创建的索引创建别名
    • 从以前的索引中删除别名
  • 关闭旧索引或删除旧索引

通过这种方式,您的应用程序可以始终与别名通信,并确保您始终可以使用索引进行通信。从索引中删除大量记录相对较重,关闭或删除索引相对便宜。