使用今天的日期指定索引名的 ElasticSearch 查询

ElasticSearch query specifying an indexname using todays date

我正在使用 logstash 将来自多台机器的实时服务的大量指标填充到 ES。 Logstash 每天创建一个新索引,我发现在不指定索引的情况下查询 ES 的速度 运行 很慢。 (我目前维持 5 天的指数)。如果我指定特定索引,例如今天

.es(index=logstash-2018.01.15, q= examplequery

运行速度非常快 有没有一种方法可以使用日期字段指定今天的索引?

例如

.es(index=logstash-'get date', q= examplequery

通过查看语法,我猜您正在使用 Timelion 或使用查询字符串的东西。这里有一个很好的教程,其中包括指定索引模式:
https://www.elastic.co/blog/timelion-tutorial-from-zero-to-hero
在你的情况下它将是

.es(index=logstash-*, q= examplequery

.es(index=logstash-2018.01.*, q= examplequery

如果您需要今年 1 月并且索引模式是 'logstash-YYYY.MM.dd'

您可以使用查询来获取今天日期的索引:

 .es(index='<logstash-{now/d}>')

一本有趣的读物,其中包含弹性搜索中所有可用的选项,以在索引名称中包含日期数学:

https://www.elastic.co/guide/en/elasticsearch/reference/current/date-math-index-names.html