如何在Elasticsearch中查询数百个索引

时间:2017-03-27 06:44:01

标签: elasticsearch

假设我有一个日志系统,每天都会创建一个新索引。 现在,我必须做一整年的查询,即365个索引。

虽然ES对索引名称有Properties prop = new Properties(); InputStream input = null; try { input = new FileInputStream("gradle.properties"); // load a properties file prop.load(input); // get the property value and print it out System.out.println(prop.getProperty("user.password")); } catch (IOException ex) { ex.printStackTrace(); } 支持,但似乎我必须编写这样的查询:

date math

是否有更好的查询方式?

1 个答案:

答案 0 :(得分:0)

您可以在Elasticsearch中使用通配符查询多个索引。可以找到文档here

例如,如果您的索引都名为logstash-{date},则可以查询localhost:9200/logstash-*/_search,这将查询与该模式匹配的每个索引。

如果想要在一年时间内查询索引,则可以在索引中的日期字段上使用范围查询(如果您使用Logstash默认值,它将会是@timestamp)。有关范围查询的文档可以找到here