elasticsearch 查询 api

 

1.集群健康情况

get  ip:port/_cat/health?v

查看集群健康指标status:green(正常) 集群name: graylog 

get ip:port/_cat/nodes?v 查看集群节点 这里只有一个   

get ip:port/_cat/indices?v  查看索引  graylog_0 

2.索引增删

ip:port/索引 增加索引

添加数据 put ip:port/索引/字段/id 如:/rizhi_0/message/7 参数如下

{
   "settings" : {
      "number_of_shards" : 3,
      "number_of_replicas" : 1
   }
}

返回如下

根据id获取内容 get ip:port/索引/字段/id 如:/rizhi_0/message/7 返回如下

删除索引 delete ip:port/索引?pretty  rizhi_0?pretty 

3.查询

ip:port/9200/索引/_search 使用postman 操作如下

 match_all 是查询所有数据 不限制条件

 查询十条数据 from代表从1000记录开始  分页可以用这个

{
  "query": { "match_all": {} },
  "from": 1000,
  "size": 10
}

 同上加入通过port排序

{
  "query":{"match_all":{}},
  "from": 1000,
  "sort":{"port":{"order":"desc"}}
}

过滤字段只留message、port

{
  "query": { "match_all": {} },
  "_source" :["message","port"],
  "from": 1000,
  "size": 10
}

match 加入条件 只查询 port=42177的数据,如果是“42177”代表包含42177  的数据  

{
  "query": { "match": {"port":42177} },
  "_source" :["message","port"]
}

查询包含39301或者63333的数据 

{
  "query": { "match": { "message": "39301 63333" } }
}

bool查询可以使用布尔逻辑查询 如

查询同时包含45987和currentDate的数据 

{
  "query": {
    "bool": {
      "must": [
        { "match": { "message": "45987" } },
        { "match": { "message": "currentDate" } }
      ]
    }
  }
}

关键字 must 条件必须都满足、should满足一个即可、must_not所有条件都不可以满足

这是多条件示例,必须包含40 但state不能是ID

{
  "query": {
    "bool": {
      "must": [
        { "match": { "age": "40" } }
      ],
      "must_not": [
        { "match": { "state": "ID" } }
      ]
    }
  }
}

3. 过滤查询

port >=20000 <=30000

{
  "query": {
    "bool": {
      "must": { "match_all": {} },
      "filter": {
        "range": {
          "port": {
            "gte": 20000,
            "lte": 30000
          }
        }
      }
    }
  }
}

4.聚合查询

根据port分组获取总数,相当于sql的count group by

{
  "size": 0,
  "aggs": {
    "group_by_state": {
      "terms": {
        "field": "port"
      }
    }
  }
}

 size=0为不显示搜索匹配,因为我们只想在响应中看到聚合结果

分组和计数和平均

{
  "size": 0,
  "aggs": {
    "group_by_state": {
      "terms": {
        "field": "port"
      },
      "aggs": {
        "average_balance": {
          "avg": {
            "field": "port"
          }
        }
      }
    }
  }
}

我的报错了,我用的事graylog提取器提取的默认类型是string 不是number 修改类型即可 

5.索引查询

get ip:port/9200/* 查询所有索引已经字段的类型等信息

get ip:port/9200/graylog_0/_mapping/message/field/level 指定索引的类型

post ip:port/9200/ _aliases 添加别名

{
    "actions" : [
        { "add" : { "index" : "test4444", "alias" : "alias4444" } }
    ]
}

删除别名 

{
    "actions" : [
        { "remove" : { "index" : "test1", "alias" : "alias1" } }
    ]
}

 get post ip:port/{index}/_alias/* 查看别名

6.设置/查询索引

get post ip:port/_all/_settings 查询所有的索引的设置

putpost ip:port/{index}/_settings  设置索引number_of_replicas参数的值

{
    "index" : {
        "number_of_replicas" : 2
    }
}

取消只读属性/graylog_2/_settings

{"index.blocks.read_only_allow_delete": null}

此问题在graylog会遇到,当磁盘使用率大于85%会将索引状态设为只读,解决办法:需要将磁盘清理并按上面的将索引只读属性取消

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值