欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

kibana查询语法

程序员文章站 2022-07-06 10:40:33
...

kibana简单查询语法

单项 term 查询

例: 搜 Dahlen, Malone

字段field查询

field:value
例:city:Keyport, age:26

通配符查询

“ ? ”匹配单个字符 例: H?bbs

“ * ” 匹配0到多个字符 例: H*

*注意: ? * 不能用作第一个字符,例如: ?text text

范围查询

age:[20 TO 30] age:{20 TO 30}

注:[ ] 表示端点数值包含在范围内,{ } 表示端点数值不包含在范围内

逻辑操作

AND 例子:firstname:H* AND age:20
OR 例子: firstname:H* OR age:20

" + ":搜索结果中必须包含此项

" - ":不能含有此项

例: +firstname:H* 、-age:20 、city:H*
firstname字段结果中必须存在H开头的,不能有年龄是20的,city字段H开头的可有可无

分组查询

(firstname:H* OR age:20) AND state:KS

先查询名字H开头年龄或者是20的结果,然后再与国家是KS的结合

字段分组

firstname:(+H* -He*)

搜索firstname字段里H开头的结果,并且排除firstname里He开头的结果

转义特殊字符

“+”、"-"、 && || ! () {} [] ^" ~ * ? : \

注意区分text和keyword,就可以根据具体需求做相关操作了。

ES的字符串比较规则是第一位和第一位比较,一位一位的比较下去。

字符串排序

按字符串排序时,是不希望分词之后进行排序的,应该以整个字符串整体来进行排序。

下面是kibana的Dev tool命令

GET /lib/_search
{
  "query": {
    "match_all": {}
  }
  , "sort": [
    {
      "content.keyword": {
        "order": "desc"
      }
    }
  ]
}

注:此处字段均为字符串类型(mapping所展示的格式),对于需要排序的字段,必须使用keyword类型,才可以正确生效。

字符串范围查询

同样是利用keyword的不分词的特性,下面是kibana的Dev tool命令

GET  /fptest_2019-04-03/rrr/_search
{
  "query":{
     "range": {
      "birthday.keyword": {
        "gte": "1994-01-01",
        "lte": "1994-12-31",
        "format": "yyyy-MM-dd"
      }
    }
    }
}

注:range查询使用的参数:

gte:大于等于
gt:大于
lte:小于等于
lt:小于

其他可参考elasticsearch官方教程:字段示例