在项目开发过程中,经常会遇到希望在ES中拖取数据的行为,由于对其语法不够熟悉,所以经常不知道如何编写,网上的语法很多又不能使用,这里介绍一种简单的不会出错的语法生成技巧-----利用kibana的查询构建自己的查询语法.(kibana的数据可视化功能比较常用所以更熟悉一点)
举个例子:
我想拉取一个索引 "test000001" 下每秒钟数据的计数, 利用kibana的可视化功能就很轻易的得到我们的查询语句:
第一步:选择可视化下面的柱状图:
第二步:选择我们的索引,进入维度设置的页面:
第三步:选择Y-axis为count, X-axis选项如下图所示,我们就可以得到以下的图表:
第四步:我们查看柱状图下面的Request选择下的数据,可以看到ES request body.
由于我想要的是每分钟的计数,所以我对上图中的柱状图一直双击,直到图表显示达到我想要的精度,点击请求体:
第五步:进行验证, 我们将这个请求体中的数据粘贴到左侧菜单栏中Dev Tools中,可以看到就可以拿到想要的数据了,其中请求中interval代表间隔,gte和lte代表时间戳.
这样就可以快速构建正确的查询语句了,在开发者工具中进行微调,就可以达到我们的需求.其他语法的构造,也可以根据不同的图表选项来构造.