我正在寻找设置我的索引,以便将其划分为每日子索引,我可以根据该索引的年龄调整各个设置,即 >= 30 天前应该移动到较慢的硬件等。我知道我可以使用生命周期策略来做到这一点。
我无法加入的点是如何设置原始索引以按天分区。添加数据/查询时,我是否需要指定单独的每日指数,或者在 Elasticsearch 中是否有可以为我执行此操作的内容?如果是后者,它如何与添加/查询一起工作(假设它们不同?)......它如何确定与查询/分区相关的分区以添加文档? (我假设有一个时间戳字段 - 但我无法从文档中看到它是如何链接在一起的)
我正在使用未安装任何插件的基本 Elasticsearch OSS v7.7.1。
回答1
Elasticsearch 中没有子索引或分区之类的东西。如果你想使用 ilm,你应该这样做,那么你正在使用别名和多个索引
您需要从 7.7 升级 - 这是 https://www.elastic.co/support/eol - 并使用默认发行版来访问 ilm
回到您的概念性问题,https://www.elastic.co/guide/en/elasticsearch/reference/current/overview-index-lifecycle-management.html 和以下几个章节深入探讨。但对你的问题;
- 使用 ilm 的主要假设是摄取的数据是最新的,因此粗略地说,今天的数据最终会出现在今天的索引中
- 如果您正在索引历史数据,那么您可能希望将其放入“传统”索引名称中,例如
logs-2021.08.09
,然后按照 https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-with-existing-indices.html - 查询时,Elasticsearch 将根据收到的请求处理访问它需要的所有索引。它通过 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-field-caps.html 做到这一点