博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kibana 控制台常用语法
阅读量:4104 次
发布时间:2019-05-25

本文共 2744 字,大约阅读时间需要 9 分钟。

首先列一下官网说明

kibana控制台:
elasticsearch7.5 query DSL:

一、系统级查询

#检查群集运行状况GET /_cat/health?v #获得群集中的节点列表GET /_cat/nodes?v #列出所有索引GET /_cat/indices?v #创建索引并查看PUT /customer?prettyGET /_cat/indices?v

二、DSL查询(使用DSL查询,必须要传递query参数给ES)

# dsl查询 --> 高级查询+分页+排序+截取字段 【desc:降序 asc:升序 from:从第几页开始 size:每页多少条数据 _source:要哪几个字段】GET errinfo-scm-2020.02.17/_search{  "query": {    "match_all": {}  },  "sort": [    {      "errortime.keyword": {        "order": "asc"      }    }  ],  "from": 0,  "size": 10,  "_source": [    "errortime",    "errorlevel",    "errorclass"  ]}

注意:sort里面要使用**.keyword,   _source里面则使用不带keyword的字段,否则会报错。

 

 三、DSL过滤查询

 基本格式:

#格式{    "query" : {		"bool" : {			"must" : [{				"match_all":{}			}],			"filter":{...}		}	}}

四、标准查询(match和multi_match)

match查询是一个标准查询,不管你需要全文本查询还是精确查询基本上都要用到它。

如果你使用match查询一个全文本字段,它会在真正查询之前用分析器先分析查询字符:

{	"query": {		"match": {			"fullName": "Jeff King"		}	}}

上面的搜索会对Jeff King分词,并找到包含Jeff或King的文档,然后给出排序分值。

如果用 match  下指定了一个确切值,在遇到数字,日期,布尔值或者 not_analyzed的字符串时,它将为你搜索你给定的值,如:

{ "match": { "age": 26 }}
{ "match": { "date": "2019-11-01" }}
{ "match": { "public": true }}
{ "match": { "tag": "full_text" }}

 multi_match  查询允许你做 match查询的基础上同时搜索多个字段:

{	"query":{		"multi_match": {			"query": "Jeff King",			"fields": [ "fullName", "nick name" ]		}	}}

上面的搜索同时在fullName和nick name字段中匹配。

提示:match一般只用于全文字段的匹配与查询,一般不用于过滤,过滤使用filter

五、单词搜索与过滤(Term和Terms)

{	"query": {		"bool": {			"must": { 				"match_all": {} 			}, 			"filter": { 				"term": { 					"tags": "elasticsearch" 				} 			} 		} 	}}

Terms搜索与过滤,minimum_match:至少匹配个数,默认为1

{	"query": {		"terms": {			"tags": ["jvm", "hadoop", "lucene"],			"minimum_match": 2		}	}}

六、组合条件搜索与过滤(Bool)

组合搜索bool可以组合多个查询条件为一个查询对象,查询条件包括must、should和must_not。

例如:查询爱好有美女,同时也有喜欢游戏或运动,且出生于1990-06-30及之后的人。

{	"query": {		"bool": {			"must": [{"term": {"hobby": "美女"}}],			"should": [				 {"term": {"hobby": "游戏"}}, 				 {"term": {"hobby": "运动"}} 			],			"must_not": [				{"range" :{"birth_date":{"lt": "1990-06-30"}}} 			],			"filter": [...],			"minimum_should_match": 1		}	}}

 提示: 如果 bool 查询下没有must子句,那至少应该有一个should子句。但是 如果有 must子句,那么没有 should子句也可以进行查询。

七、范围查询与过滤(range)

range过滤允许我们按照指定范围查找一批数据:     gt:>    gte:>=   lt:<  lte:<=

ex:查询年龄大于等于18并且小于20。   

{	"query":{		"range": {			"age": {				"gte": 18,				"lt": 20			}		}	}}

八、存在和缺失过滤器(exists和missing)

exists和missing只能用于过滤结果

{    "query": {        "bool": {            "must": [{                "match_all": {}            }],            "filter": {                "exists": { "field": "gps" }            }        }    }}

九、 前匹配搜索与过滤(prefix)

和term查询相似,前匹配搜索不是精确匹配,而是类似于SQL中的like ‘key%’
ex:查询姓郑的所有人。

{    "query": {        "prefix": {            "fullName": "王"        }    }}

十、通配符搜索(wildcard)
使用*代表0~N个,使用?代表1个。

{	"query": {		"wildcard": {			"fullName": "王*五"		}	}}

 

转载地址:http://acfsi.baihongyu.com/

你可能感兴趣的文章
题目1073: 搬水果
查看>>
题目1104: 二叉排序树
查看>>
题目1105: 二叉搜索树
查看>>
计算机复试上机题解题报告
查看>>
题目1126: 还是A+B
查看>>
题目1075: 特殊乘法
查看>>
题目1130: 数制转换
查看>>
题目1140: 进制转换
查看>>
浅谈大数的进制转换
查看>>
题目1020: 八进制数
查看>>
题目1221: 最大公约数
查看>>
题目1133: 最小公倍数
查看>>
算法之素数筛法
查看>>
题目1044: 素数判定
查看>>
Android学习笔记之图像颜色处理(ColorMatrix)
查看>>
题目1137: 质因数的个数
查看>>
Android图像处理(2):怀旧效果
查看>>
Android图像处理之冰冻效果
查看>>
Android图像处理之熔铸特效
查看>>
题目1076: 人见人爱 A ^ B
查看>>