重生之我们在ES顶端相遇第2章-救命,有人要教我的CURD

前置-单机版 ES 搭建

上一篇,我们介绍了 ES8 集群搭建。实际学习的时候,用单机就行。 下面介绍如何用 docker-compose 搭建单机版 ES。

  1. 创建 docker-compose.yml
version: "2.2"
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.0.1
    container_name: "es01"
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
  kibana:
    image: docker.elastic.co/kibana/kibana:8.0.1
    container_name: "kibana"
    ports:
      - 5601:5601
  1. 启动容器
docker-compose up -d
  1. 等待 ES 启动完毕后,重置 elastic 用户密码
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic

1.jpg

2.jpg
4. 重新生成访问 token

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

3.jpg
5. 查看 kibana 生成的链接

docker logs kibana

4.jpg

  1. 访问 kibana

使用浏览器访问 kibana 生成的链接。 输入之前生成的 token。

5.jpg

最后,输入我们刚才重置的 elastic 用户的密码。

6.jpg

  1. 开始使用 kibana

登录进来后,来到该页面,即可向 ES 发送指令。

7.jpg

添加、修改文档

ES 添加文档有以下 2 种方式。记住第2种即可,常用且方便

  1. POST /<index>/_doc/
  2. PUT /<index>/_doc/<_id>
  • index: 索引名称,类似数据库
  • _doc: 固定写死,索引的 type,类似数据库的表
  • _id: 文档 ID

POST /<index>/_doc/

POST /test/_doc
{
  "name": "Elasticsearch"
}

返回如下:

{
  "_index" : "test",
  "_id" : "dc_bFpABApk5lDcSNmmN",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}
  • _id: 表示文档 ID

该操作,ES 会自动生成文档的ID。

PUT /<index>/_doc/<_id>

PUT API 可以添加、修改数据。存在指定ID 文档时修改,反之新增。

PUT /test/_doc/1
{
  "name": "Elasticsearch 8.0"
}

返回如下:

{
  "_index" : "test",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 1,
  "_primary_term" : 1
}

result: “created” 表明该操作为新增文档。
写入的时候指定了 ID,因此该文档的ID 为 1

再来看个 update 的例子

PUT /test/_doc/1
{
  "name": "Hello welcome to Elasticsearch 8.0!"
}

返回如下:

{
  "_index" : "test",
  "_id" : "1",
  "_version" : 2,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 2,
  "_primary_term" : 1
}

result: “update”, 表明该操作为更新文档。

查询文档

来查询下,我们刚才写入的文档

GET /test/_search
{
  "query": {
    "match_all": {
    }
  }  
}

9.jpg

删除文档

语法:DELETE /<index>/_doc/<_id>

DELETE /test/_doc/1

返回如下:

{
  "_index" : "test",
  "_id" : "1",
  "_version" : 3,
  "result" : "deleted",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 3,
  "_primary_term" : 1
}

总结

OK,简单的 CURD 就介绍完了。后面会慢慢展开更多的知识点,也会越来越深入讲解 ES。 总之各位看官不要着急,本系列文章的定位就是 由浅入深,系统的讲解 ES。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值