使用今天的日期指定索引名的 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
我正在使用 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