这里的版本号与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": ["我是一个中国人"]
}