概述
对于管理员和用户来说,kibana是一个非常方便的管理工具,他涵盖了基本上所有的管理和使用功能。但是,作为一个专业的管理人员来说,还是使用命令行来管理系统更加专业。在最新的版本中,es提供了一个叫做elasticsearch-cli的东东,不过这个东西还在测试阶段,有兴趣的同学可以持续关注。我们一般是使用http请求的方式来操作elasticsearch的,也就是使用curl命令。
查询一般是这样的
# 没有安全措施的
curl http://localhost:9200/_cluster/health
# 带了很多安全措施的
# -k 信任自签证书
# -u 服务器的用户名和密码
# --cert <certificate[:password]> ssl证书和密码
# --key 私有证书的位置
# --cacert ca证书
curl -k -u admin:admin --cert my.cert --key my.key --cacert my.pem https://localhost:9200/_cluster/health
前面我们学过了很多种的方式来安装es,这里我们使用mac的brew来做一下,各位也可以使用其他的方式来做
brew tap elastic/tap
brew install elastic/tap/elasticsearch-full
1. 集群级别的操作
# 查询集群健康状态
GET _cluster/health
# 查询所有节点
GET _cat/nodes
# 查询索引及分片的分布
GET _cat/shards
# 查询指定索引分片的分布
GET _cat/shards/.kibana
# 查询所有插件
GET _cat/plugins
2. 索引级别的操作
2.1. 查询
# 查询所有索引及容量
GET _cat/indices
# 查询索引映射结构
GET my_index/_mapping
# 查询所有索引映射结构
GET _all
# 查询所有的相同前缀索引
GET my-*/_search
# 查询所有索引模板
GET _template
# 查询具体索引模板
GET _template/my_template
2.2. 创建
# 创建模板
PUT _template/test_hot_cold_template
{
"index_patterns": "test_*",
"settings": {
"number_of_shards" : 3,
"index.number_of_replicas": 1
},
"mappings": {
"order": {
"dynamic": false,
"properties": {
"id": {"type": "long"},
"name": {"type": "keyword"}
}
}
},
"aliases": {
"test": {}
}
}
# 根据模板创建索引并写入数据
POST test_hot_cold-2019-12-01/order
{
"id":1,
"name":"cwx"
}
# 直接创建索引
PUT my_index
{
"mappings": {
"doc": {
"properties": {
"name": {
"type": "text"
},
"blob": {
"type": "binary"
}
}
}
}
}
2.3. 删除
DELETE my-index
2.4. 修改
# 修改配置
PUT /test_hot_cold-2019-12-01/_settings
{
"settings": {
"index.routing.allocation.require.hotwarm_type": "cold"
}
}
3. DSL查询
--1.查询所有
GET _search
{
"query": {
"match_all": {}
}
}
--2.查询单个索引 的 固定属性
--精确匹配
GET _search
{
"query": {
"term": { "name" : "you" }
}
}
--模糊匹配
GET _search
{
"query": {
"match": { "name" : "you" }
}
}
--范围查找
GET _search
{
"query": {
"range": {
"age":{ "gte" : 15 , "lte" : 25 }
}
}
}
GET indexName/_search
{
"query": {
"wildcard":{"relateId":"*672499460503*"}
}
}
--3.功能性查询
--过滤
GET my_index/_search
{
"query": {
"bool": {
"filter": {
"term":{"age":1095}
}
}
}
}
--或 or
GET my - test / _search
{
"query": {
"bool": {
"should": [{
"term": {
"name": "you"
}
}, {
"match": {
"age": 20
}
}]
}
}
}
--与 AND
GET my-test/_search
{
"query": {
"bool": {
"must" : [{
"match" : {
"name" : "you"
}
},{
"range":{
"age":{
"from" : 10 , "to" : 20
}
}
}]
}
}
}
--必须 =
GET my_index/_search
{
"query": {
"bool": {
"must" : {
"range" : {
"age" : { "from" : 10, "to" : 20 }
}
}
}
}
}
--必须不 not
GET my_index/_search
{
"query": {
"bool": {
"must_not" : {
"term" : {
"name" : "you"
}
}
}
}
}
--复合查找
GET my_index/_search
{
"query": {
"bool": {
"should": [{
"match": {
"age": 40
}
},
{
"match": {
"age": 20
}
}],
"filter": {
"match":{
"name":"you"
}
}
}
}
}
--4.索引迁移
--场景 从A索引 复制到B索引
POST _reindex
{
"source": {
"index": "my_index"
},
"dest": {
"index": "new_my_index"
}
}
--5.基于查询的删除
POST test-index/_delete_by_query
{
"query":{
"term": {
"cameraId":"00000000002"
}
}
}
--查询
GET test-index/_search
{
"query":{
"term": {
"cameraId":"00000000002"
}
}
}
时间范围查找
GET order_stpprdinf_2019-12/_search
{
"size":10,
"query":{
"range":{
"order_time":{
"gte":"2019-12-11T00:00:00+08:00",
"lte":"2019-12-11T23:59:59+08:00"
}
}
}
}
按照条件删除
GET order_stpprdinf_2019-12/_delete_by_query?conflicts=proceed
{
"query":{
"range":{
"order_time":{
"gte":"2019-12-11T00:00:00+08:00",
"lte":"2019-12-11T23:59:59+08:00"
}
}
}
}
4. 概念
4.1. 集群Cluster
4.2. 节点Node
4.3. 索引Index
数据库
4.4. 类型type
表
4.5. 文档Document
行