赞
踩
- #Kibana基本语法格式
- [`请求方式`] [`索引`] / [`type`] / [`查询关键词`]
- {
- "query": {
- // 查询体
- }
- }
- #获取所有索引
- GET _cat/indices
- #删除索引
- DELETE book
- #创建索引
- PUT book
- #批量创建文档
- 方式一:
- POST jk/_bulk
- {"index":{"_type":"doc","_id":"1001"}}
- {"name":"张三","age":20}
- {"index":{"_type":"doc","_id":"1002"}}
- {"name":"李四","age":23}
- {"index":{"_type":"doc","_id":"1003"}}
- {"name":"王五","age":26}
- 方式二:
- POST kpl/_doc/_bulk
- {"index":{"_id":"1001"}}
- {"name":"张三","age":20}
- {"index":{"_id":"1002"}}
- {"name":"李四","age":23}
- {"index":{"_id":"1003"}}
- {"name":"王五","age":26}
-
- #创建索引并完成映射,设置字段属性 "index":false 效果为不能作为查询条件;keyword类型则不能分词,既数据本体为一整体,不能拆分
- PUT book
- {"mapping":
- {
- "properties":{
- "name":{
- "type":"text",
- "index":true
- },
- "city":{
- "type":"keyword",
- "index":true
- },
- "age":{
- "type":"long",
- "index":true
- },
- "description":{
- "type":"text",
- "index":true
- }
- }
- }
- }
- }
- #查找索引映射设置
- GET book/_mapping
- #创建文档,若无索引,则会直接创建索引
- PUT book/_doc/1001
- {
- "name":"张三",
- "city":"成都",
- "age":30,
- "description":"张三是美籍华人"
- }
- #获取具体文档
- GET book/_doc/1001
- #获取索引下所有文档
- GET book/_search
- #全量修改(完全覆盖修改)-输入啥就修改啥
- PUT book/_doc/1001
- {
- "name":"weilp"
- }
- #局部修改-改变特定字段,其它字段不变
- POST book/_update/1002
- {
- "doc":{
- "age":25
- }
- }
- #方法查询索引下所有文档
- GET book/_search
- {
- "query": {
- "match_all": {}
- }
- }
- #match相当于模糊匹配 对于"张李"这两个字会分开来进行倒排索引匹配,结果:name like '%张%'+ name like '%李%'+name like '%张李%'
- GET book/_search
- {
- "query": {
- "match": {
- "name": "张李"
- }
- }
- }
- #match_phrase精确匹配
- GET book/_search
- {
- "query": {
- "match_phrase": {
- "name": "张李"
- }
- }
- }
- #通配符匹配,*表示0个或任意多个字符,?表示一个字符,若text格式数据想要使用,则.keyword
- GET book/_search
- {
- "query": {
- "wildcard": {
- "description.keyword": {
- "value": "李四是中国人*
- }
- }
- }
- }
- #分页查询,from表示文档位置,从0开始。若想实现分页效果,则from取值(页码-1)*每页展示数量,如想看第二页,则from:2,size:2
- GET book/_search
- {
- "query": {
- "match_all": {}
- },
- "from": 1,
- "size": 2
- }
- #查询指定字段
- GET book/_search
- {
- "query":{
- "match": {
- "age": 30
- }
- },
- "_source":[
- "name","age","description"]
- }
- #排序
- GET book/_search
- {
- "sort": [
- {
- "age": {
- "order": "desc"
- }
- }
- ]
- }
- #多条件查询 must表示且,should表示或,must_not为不等(注:不可以进行两次query,match等操作,会报错)
- GET book/_search
- {
- "query": {
- "bool": {
- "must": [
- {"match": { "name": "张三"}},
- {"match": {"age": 30}}
- ]
- }
- }
- }
- #must_not为不等,效果为!(name=张三&&city=北京)
- GET book/_search
- {
- "query": {
- "bool": {
- "must_not": [
- {"match": {
- "name": "张三"
- }},
- {"match": {
- "city": "北京"
- }}
- ]
- }
- }
- }
- #范围查询
- GET book/_search
- {
- "query": {
- "range": {
- "age": {
- "gte": 10,
- "lte": 50
- }
- }
- }
- }
- #bool可以用来合并多个条件查询结果的布尔逻辑,条件之间为且的关系
- GET book/_search
- {
- "query": {
- "bool": {
- "must": [
- {"match": { "name": "张三"}}
- ],
- "filter": [
- {"range": {
- "age": {
- "gte": 10,
- "lte": 20
- }
- }}
- ]
- }
- }
- }
- #term用于keyword类型完全查询,当text类型数据想要使用term完全查询时,使用.keyword获取其keyword值
- GET book/_search
- {
- "query": {
- "term": {
- "description.keyword": {
- "value": "李四是中国人"
- }
- }
- }
- }
- #terms查询多个keyword值,当text类型数据想要使用term完全查询时,使用.keyword获取其keyword值
- GET book/_search
- {
- "query": {
- "terms": {
- "description.keyword": [
- "张三是美籍华人",
- "李四是中国人"
- ]
- }
- }
- }
- #query_string具有分词效果,可用来分解查询条件,可以","或者"|"分割,注:query_string可以没有default_field的值
- GET book/_search
- {
- "query": {
- "query_string": {
- "default_field": "city",
- "query": "北京,上海"
- }
- }
- }
- #exists,查询具有某个字段的数据
- GET book/_search
- {
- "query": {
- "exists": {
- "field": "name"
- }
- }
- }
- #高亮查询指定字段
- GET book/_search
- {
- "highlight": {
- "fields": {
- "name": {
-
- }
- }
- }
- }
- #聚合操作也叫分组操作,text字段作为一个整体,默认没有索引,不过text分词之后的keyword是有索引的,size可以指定分组数据展示的数量
- GET book/_search
- {
- "aggs": {
- "namegroup": {
- "terms": {
- "field": "name.keyword",
- "size": 3
- }
- }
- },"size": 0
- }
- #分组操作会统计分组数据和原始所有数据,如果不想要原始数据的话可以以下操作,size表示原始数据展示数量
- GET book/_search
- {
- "aggs": {
- "namegroup": {
- "terms": {
- "field": "name.keyword"
- }
- }
- },"size": 0
- }
- #求字段平均值
- GET book/_search
- {
- "aggs": {
- "age_avgs": {
- "avg": {
- "field": "age"
- }
- }
- },"size": 0
- }
- #multi_match,多个字段匹配某个值,query 要查询的值,fields 要匹配的字段【数组】,若要一个字段匹配多个值,用terms
- GET book/_search
- {
- "query": {
- "multi_match": {
- "query": 30,
- "fields": ["age","name"]
- }
- }
- }
- 组合条件查询,若想实现或则:must->bool->should
- GET nginx_logs/access/_search
- {
- "query": {
- "bool": {
- "must": [
- {
- "bool":{
- "should":[
- {"wildcard": {"status": "5*"}},
- {"terms": {"status": ["400","402","406"]}}
- ]
- }
- },
- {
- "range": {
- "time": {"gte":"2019-03-14 09:00:00","lte":"2019-03-14 15:30:00"}
- }
- }
- ]
- }
- },
- "size":100,
- "sort": [
- {
- "time": {
- "order": "desc"
- }
- }
- ]
- }
- 匹配出 状态值 status 满足以5开头 包含 400 402 406,并且日志时间time 在 >= 2019-03-14 09:00:00 && <= 2019-03-14 15:30:00 范围内,查询结果按照time 字段 desc 倒叙排列。 查询出100条。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。