ES全文搜索的简易语法是Kibana上使用的搜索语法,一定需要学会,前一篇文章给出的只是基础的、最根本的CRUD操作,是对单挑数据的操作,但是在Kibana中存在大量的搜索和聚合,动辄上千万的数据量,所以掌握好ES全文搜索的语法就是使用Kibana的重要保证。
简易语法详细解析:
1、全文检索:直接写搜索的单词 如:搜索‘id’,搜索字符A;
2、单字段的全文检索:在搜索单词之前加上字段名和冒号,比如如果知道单词 Riven(用户名) 肯定出现在 user字段,可以写作 user:Riven;
3、单字段的精确检索:在搜索单词前后加双引号,比如 user:"Riven";
4 、多个检索条件的组合:可以使用 NOT, AND 和 OR 来组合检索,注意必须是大写。比如 user:("Riven" OR "riven") AND NOT mesg:BUG;
这个搜索的全意是: 精确搜索字段值为"Riven" 、"riven"并且mesg字段值不能为BUG的信息
5、字段是否存在:_exists_:user 表示要求 user 字段存在,_missing_:user 表示要求 user 字段不存在;
6、通配符:用 ? 表示单字母,* 表示任意个字母。比如 fir?t mess*;
7、正则:需要比通配符更复杂一点的表达式,可以使用正则。比如 mesg:/mes{2}ages?/。注意 ES 中正则性能很差,而且支持的功能也不是特别强大,尽量不要使用;
8、近似搜索:用 ~ 表示搜索单词可能有一两个字母写的不对;
9、范围搜索:对数值和时间,ES 都可以使用范围搜索,比如:size:>300,date:["now-6h" TO "now"} 等。其中,**[] 表示端点数值包含在范围内**,**{} 表示端点数值不包含在范围内**;
以上九条就是ES全文搜索的简易语法使用,这些语法全部都可以在Kibana中的任何一个搜索框内使用:
如果我想要搜索带有字符A的信息:
如果我们要精确检索一个单词"params":
如果我把搜索语句改为"params" NOT '回款' 则,带回款字样的信息将不会在出现在展示列表里面.
# 注意: 搜索关系词 必须大写
其他的检索语法和前面的实例并无不同,在这里就不一一展示了,感兴趣的同学可以自己试试.
还有一个不能被忽略的重要功能,那就是储存基础的搜索简易,以备下面的图形化展示做铺垫。
怎么储存呢?
搜索建议怎么用?在图形制作细节我会进行介绍。