搜索结果正在快递途中

星号匹配时,对date类型的查询,利用field_stats减少查询的索引,这个需要自己做处理吗

Elasticsearch | 作者 wangxinrong | 发布于2021年01月25日 | 阅读数:1427

旧版本的kibana,创建index pattern时会有Expand index pattern when searching的选项,让用户选择了时间范围后,kibana可以只去查名称在对应时间范围的索引,减少搜索范围,提高性能。
 
后来因为有了field_stats,可以快速得到索引里一个字段的最大值和最小值,所以后来的处理方式是查看所有索引中指定的date类型字段的日期范围,然后去搜里面有需要查询的数据的索引。
 
例如kibana上的index pattern是abc-*,它的date field是@timestamp,集群里共有3个索引
abc-2021.01.01、abc-2021.01.02、abc-2021.01.03
如果我只查@timestamp在2021.01.03号里面某个时间段的数据,kibana可以快速知道前两个索引里没有需要的数据,所以只需要查第三个索引就行。
 
现在我的疑问是,这个优化是es会自动做的吗,还是需要手动处理呢?
也就是说如果我自己代码里要实现和kibana查询同样的效果,我是得先用_filed_stats接口获取各个索引的统计数据,然后再决定指定查哪些索引。还是我可以直接abc-*这样查询,ES会自动做上面的优化处理呢?
 
已邀请:

要回复问题请先登录注册