推广 热搜: 未来    中国  企业  服务  政策  公司  快速  上海  设备 

Elasticsearch 查询 KQL

   日期:2024-11-11     作者:xasic    caijiyuan   评论:0    移动:http://xiaoguoguo.dbeile.cn/mobile/news/696.html
核心提示:我们对于Elasticsearch的使用长期以来还是停留在kibana discover中输入关键词进行简单的日志搜索,对于ES的核心搜索查询的理解和

我们对于Elasticsearch的使用长期以来还是停留在kibana discover中输入关键词进行简单的日志搜索,对于ES的核心搜索查询的理解和使用仍比较浅显。最近正好接到一个稍微复杂的需求,趁这个机会更加深入的去了解下搜索查询,本文先以最基础的KQL入门,后面再逐步展开。

Elasticsearch 查询 KQL

Kibana discover 和 KQL

在Kibana discover中进行搜索,默认的都是使用的KQL (Kibana Query Language),KQL only filters data, and has no role in aggregating, transforming, or sorting data。KQL功能较简单,只能用来过滤,并不具备聚合,转换排序能功能。

我们最常见的在搜索栏中直接搜索关键词,实际上是针对所有的field进行搜索:

但实际上大多数情况下我们只是想针对message这个field进行搜索error关键词,可以采用以下指定字段的方式搜索,这样搜索的效率会更高:

    针对 keyword, numeric, date, or boolean fields等类型的查询的时候必须是完全匹配(exact match)。

    默认不加双引号针对text field进行查询的时候, 查询的关键词不进行排序的,如下例子:

      只要message字段中包含null 和 pointer这二个单独的单词即可,无论是在句中为null pointer 还是 pointer null或者是pointer test null。如果需要按照提供的顺序进行搜索的话需要用双引号引起来:

        平时用的最多的就是关键词查询,KQL同时也支持进行范围查询, 比如我们有一个日志会有个字段记录的timestamp类型的时间:

            Combining multiple queries

            针对复合条件查询可以采用AND OR 关键词(not case-sensitive), 针对更复杂一点的条件还可以和代码一样使用括号:

              或者这样的:

                KQL还有一些其他的功能,比如query nested fields等,大家可以直接查阅官方文档

                https://www.elastic.co/guide/en/kibana/current/kuery-query.html

                小结

                开发和业务同学查询日志,主要是使用的是KQL,了解KQL的基本语法,善用discover页面提供的dataview和filter功能,可以大幅提高搜索的效率和时间。其实这个和大家经常看到的Mysql优化一样,为了提高Mysql查询的效率可以在sql查询本身,索引,表结构,系统以及硬件层面多个方面进行优化,放在ES中是同样的道理,优化查询本身(KQL,Query DSL), 结合Index和Shard的设计,操作系统和使用SSD硬盘等多个层面都进行优化,才能更好的提升查询效率。

                本文地址:http://xiaoguoguo.dbeile.cn/news/696.html    多贝乐 http://xiaoguoguo.dbeile.cn/ , 查看更多
                 
                 
                更多>同类行业资讯
                0相关评论

                新闻列表
                企业新闻
                推荐企业新闻
                推荐图文
                推荐行业资讯
                点击排行
                网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2023001713号