这里的版本号与ES保持一致
docker pull docker.elastic.co/kibana/kibana:8.7.0
镜像名称太长改成kibana:8.7.0
启动一个默认容器复制配置文件
docker cp kibana:/usr/share/kibana/config /dp/vm/kibana
修改其中的 elasticsearch.hosts: [ "http://es:9200"]或者下一步通过ELASTICSEARCH_HOSTS指定

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
-v /dp/vm/kibana1/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
--network=es-net \
-p 5600:5601  \
kibana:8.7.0


--network es-net:加入一个名为 es-net 的网络中,与 elasticsearch 在同一个网络中
-e ELASTICSEARCH_HOSTS=http://es:9200:设置 elasticsearch 的地址,因为 kibana 已经与 elasticsearch 在一个网络,因此可以用容器名直接访问 elasticsearch
-p 5600:5601:宿主机的5600影射到容器的5601端口
kibana 启动一般比较慢,需要多等待一会,可以通过命令

打开首页自己浏览》开发工具
或直接打工以下地址
http://IP:5600/app/dev_tools#/console

可以操作es

默认主键_id
#创建索引
PUT index_user
#查询索引
GET index_user
#查看索引是否存在
HEAD index_simple
#查询所有索引
GET _cat/indices
#删除
DELETE index_user

#添加索引数据 如果不指定ID会生成随机ID
POST index_user/_doc/1021
{
  "id":1021,
  "code":100,
  "tel":123
}
#添加索引数据 PUT需要指定ID
PUT index_user/_doc/102
{
  "id":1021,
  "code":100,
  "tel":123
}
#批量添加  也可以写上索引名 PUT index_user/_bulk
PUT */_bulk
{"index":{"_index":"index_user", "_id":"10011"}}
{"id":1001, "name":"a b", "age":20}
{"index":{"_index":"index_user", "_id":"10012"}}
{"id":1002, "name":"b c", "age":20}
{"index":{"_index":"index_user", "_id":"10013"}}
{"id":1003, "name":"c d", "age":30}

#如果没有_id会自动生成随机值
PUT index_user/_bulk
{"index":{"_index":"index_user"}}
{"id":1001, "name":"a b", "age":20}
{"index":{"_index":"index_user", "_id":"10012"}}
{"id":1002, "name":"b c", "age":20}
{"index":{"_index":"index_user"}}
{"id":1003, "name":"c d", "age":30}

#查询索引数据
GET index_user/_doc/101

#搜索数据
GET index_user/_search
#按条件搜索数据 不区分数据类型
#包含a 或 c
GET index_user/_search
{
  "query":{
    "match":{
      "name":"a c"
    }
  },
  "_source":["id","name"],
  "sort":[
    {
      "id":{
        "order":"asc"
      }
    }
  ],
  "from": 0,
  "size": 10
}
#多条件 or name包含a 或id=1002
GET index_user/_search
{
  "query":{
    "bool": {
      "should": [
        {"match": {
          "name": "a"
        }},
        {"match": {
          "id": "1002"
        }}
      ]
    }
  }
}
#聚合查询
GET index_user/_search
{
  "aggs": {
    "aggGroup": {
      "terms": {
        "field": "age"
      },
      "aggs":
      {
        "年龄和":
        {
          "sum":{
            "field": "age"
          }
        },
        "平均年龄":
        {
          "avg":{
            "field": "age"
          }
        }
      }
    }
  }
}

#删除数据
DELETE index_user/_doc/101


#中文分词
GET _analyze
{
  "analyzer": "ik_smart",
  "text": ["我是一个中国人","我的个人所得税"]
}

GET _analyze
{
  "analyzer": "ik_max_word",
  "text": ["我是一个中国人"]
}