【问题标题】:Getting the oldest and newest elasticsearch index获取最旧和最新的 elasticsearch 索引
【发布时间】:2013-11-09 19:11:33
【问题描述】:

elasticsearch 是否有 API 来返回索引的创建时间戳(或按它排序)?我想删除某些“索引类型”的最旧的“n”索引,并将某些查询限制为仅最新的索引。我用于索引的命名约定类似于:<indextype>_<client_hostname>_<batch_name>.

【问题讨论】:

  • 您在哪里以及如何定义索引的名称?谢谢。

标签: elasticsearch


【解决方案1】:

_timestamp 字段是每个文档的。如果您根据_timestamp 检索最旧的文档,它可能会有所帮助,但该索引之前可能是使用 create index api 创建的。事实上,默认情况下,当您将第一个文档编入索引时会自动创建索引(除非您禁用此行为),但您也可以预先创建索引。

我想我也会将时间戳添加到索引的名称中,并在弹性搜索之外进行管理。请记住,如果需要,您也可以关闭索引而不删除数据。

【讨论】:

  • 好的,感谢您的回复。添加时间戳并不总是可行的,尤其是在客户端是分布式的情况下。我将把它作为弹性搜索的一个缺点。希望泡菜能读到这篇文章。
【解决方案2】:

是的,它有一个_timestamp field。但是,默认情况下它是禁用的,因此您需要使用文档中提供的映射来启用它:"_timestamp" : { "enabled" : true }

【讨论】:

  • 所以,考虑到该字段尚未启用,似乎没有办法获得索引创建时间。 _stat API 提供索引的各种统计信息(写时间和大小),但没有指示创建索引的时间(或磁盘上索引文件的创建时间戳)。
猜你喜欢
  • 2017-03-03
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 2018-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多