1、这里部署涉及到docker容器中的通信,所以这里我们首先使用命名创建一个网络,这里我创建的是Es

#创建网络
docker network create Es
#查看网络列表
docker network ls

2、使用命令分别创建运行容器

创建Elasticsearch容器

docker run -d \
  --name es \                          # 容器名称
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ # 设置 JVM 堆内存(这里设置比512m还小可能会出现问题,建议最小就这个)
  -e "discovery.type=single-node" \     # 单节点模式(无需集群)
  -v es-data:/usr/share/elasticsearch/data \ # 挂载数据卷(持久化存储)
  -v es-plugins:/usr/share/elasticsearch/plugins \ # 挂载插件卷(后续我们可以安装像ik这样的插件进行分词)
  --privileged \                       # 提升容器权限(可能不必要)
  --network Es \                       # 加入自定义网络 `Es`
  -p 9200:9200 \                       # 映射 HTTP 端口(REST API)
  -p 9300:9300 \                       # 映射节点间通信端口(集群模式)
  elasticsearch:7.12.1                 # 使用的镜像版本

创建Kibana容器

docker run -d \
  --name kibana \                      # 容器名称
  -e ELASTICSEARCH_HOSTS=http://es:9200 \ # 指定 Elasticsearch 地址(也可以使用虚拟机的IP地址)
  --network=Es \                   # 加入自定义网络 `Es`
  -p 5601:5601 \                       # 映射 Kibana Web 端口
  kibana:7.12.1                        # 使用的镜像版本

这里我们创建好后可以用dockerps进行查看。没问题,就去访问虚拟机IP+9200端口,出现以下页面代表Elasticsearch部署成功。

接着我们继续用IP+5601端口去访问,如果出现以下页面代表Kibana也部署成功。我们点击下面的Dev tools就可以去调用Elasticsearch提供的Api

3、部署完成后我们就可以在Kibana的开发者工具选项中进行操作

如,创建索引库、删除索引库等操作

#创建索引库
PUT /es
{
  "mappings": {
    "properties": {
      "info": {
        "type": "text", 
        "analyzer": "ik_smart"
      },
      "age":{
        "type": "byte"
      },
      "email":{
        "type": "keyword",
        "index": false
      },
      "name":{
        "type": "object",
        "properties": {
          "firstName": {
            "type": "keyword"
          },
          "lastName":{
            "type": "keyword"
          }
        }
      }
    }
  }
}
#查询索引库
GET /es
#删除索引库
DELETE /es
#修改索引库
PUT /es/_mapping
{
  "properties":{
    "weight":{
      "type":"float"
    }
  }
}
#新增文档
POST /es/_doc/1
{
  "info": "程序员Java讲师",
  "email": "z444y@itcast.cmmn",
  "name": {
    "firstName": "云",
    "lastName": "赵"
  }
}
#查询文档
GET /es/_doc/4
#删除文档
DELETE /es/_doc/1
#全量修改
PUT /es/_doc/2
{
  "info": "程序员Java讲师9",
  "email": "ZyyyyY@itcast.cn",
  "name": {
    "firstName": "si",
    "lastName": "赵"
  }
}
#增量修改
POST /es/_update/1
{
  "doc": {
    "email": "zhaodddyun@itcast.cndd"
  }
}
#批量新增
POST /_bulk
{"index": {"_index":"es", "_id": "3"}}
{"info": "程序员C++讲师", "email": "ww@itcast.cn", "name":{"firstName": "五", "lastName":"王"}}
{"index": {"_index":"es", "_id": "4"}}
{"info": "程序员前端讲师", "email": "zhangsan@itcast.cn", "name":{"firstName": "三", "lastName":"张"}}
#批量删除
POST /_bulk
{"delete": {"_index":"es", "_id": "3"}}
{"delete": {"_index":"es", "_id": "4"}}














这里就截个图看看界面,就不一一去运行截图了。点击三角就可以运行,这里Elasticsearch大致还是遵循restful风格。大家对这种格式不理解的,还得去学习一下Elasticsearch的json数据格式,倒排索引,以及他的基本数据类型,还有就是mapping规则等,这里就不做说明了。

到这里篇幅有限,也就介绍完成了用Kibana去调Elasticsearch的Api的基础用法。但是,这种往往是不常用的操作方式。一般是放在代码中去操作了。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐