2018年6月21日 工程

优化 Kibana 的查询语言

作者 Matt Bargar

​在 6.0 中,我们向 Kibana 的查询栏中引入了全新的实验性语言。从那时起,我们一直在积极聆听用户反馈并进行调整。和所有实验一样,有些方面运行良好,有些则不甚理想。我们会带您了解一下 6.3 中有哪些变化,新增了哪些内容,以及我们接下来有什么计划。

另一个起源故事

Kibana 查询语言的首个迭代版本十分复杂。我们当时希望将查询栏和筛选栏合并到一起,因此新语言需要支持每一种可用的筛选。同时,鉴于现有 Lucene 查询语法使用非常简单,我们还想继续保持这一特性。最终,我们尝试将高级功能语法和基本查询语法整合到一种语言中。然而,这却为新用户带来了困扰,因为他们不知道什么时候要使用哪一种语法。

对语法进行了简化

在 6.3 中,我们对语言进行了大幅简化。我们不再尝试将所有内容都塞到一个框中,而是完全专注于易用性。我们摒弃了功能语法,并对基本语法进行了优化。如果您对 Kibana 中现在默认使用的 Lucene 查询语法已经非常熟悉的话,那么您很轻松便可上手使用新语言。大部分内容都一样,我们只是进行了一些调整和改善而已。例如,我们对范围运算符进行了轻微改动,还加入了脚本字段支持(沿用自新语言的首代个迭代版本)。您可以在此文档中查看新语法的详细说明。

既然新语言和原有的 Lucene 查询语言基本一模一样,为何要多此一举呢?是这样的,单独为 Kibana 创建一种语言的主要益处在于:Kibana 可以理解这种语言。通过语言,我们能够解析和检查,还可以创建很多酷炫的功能;现在我们已经开始在这条路上迈进了。

Autocomplete

Kibana autocomplete

没错!在 6.3 中,我们向 Kibana 查询栏添加了 autocomplete(自动完成)功能。您刚一输入内容,我们便会开始提供有关字段、值(针对关键字字段)和查询运算符的建议。放松一下您的手指,何乐而不为呢。再也不必绞尽脑汁想每个字段名称的正确写法啦。更喜欢单手创建搜索?现在您甚至可以使用鼠标构建查询。我多说无益,您只需亲自体验一下就好啦。温馨提示:尝试过 autocomplete 后,大部分用户都表示:“我再也不想使用旧版 Kibana 了。”

欢迎试用

好吧,希望您已经心动,准备体验一下了。由于仍处在实验阶段,所以 Kibana 的默认语言仍然是 Lucene 查询语法,但是您可以无比轻松地选用新语言。您无需在 Kibana 的高级设置中进行任何变动,只需单击查询栏中的“Options”(选项)按钮,然后启用“Turn on query features”(打开查询功能)切换按钮即可。

Kibana query enhancement opt in

使用 Kibana 的新语言一段时间后,一定要与我们分享您的使用感受哦!既可发布到我们的探讨论坛中,也可在 IRC 上与我们在线聊天。如果您需要报告 bug 或者提交优化请求,请访问 Github 存储库。我们自 6.0 以来推出的大部分变更都是客户反馈的结晶。我们对此表示万分感谢!Autocomplete 只是冰山一角而已。关于 Kibana 的新查询语言,我们还有数不清的更多想法。将来,高级语言甚至有可能单独亮相呢 ��