前置-单机版 ES 搭建
上一篇,我们介绍了 ES8 集群搭建。实际学习的时候,用单机就行。 下面介绍如何用 docker-compose 搭建单机版 ES。
- 创建 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
- 启动容器
docker-compose up -d
- 等待 ES 启动完毕后,重置
elastic
用户密码
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
4. 重新生成访问 token
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
5. 查看 kibana 生成的链接
docker logs kibana
- 访问 kibana
使用浏览器访问 kibana 生成的链接。 输入之前生成的 token。
最后,输入我们刚才重置的 elastic 用户的密码。
- 开始使用 kibana
登录进来后,来到该页面,即可向 ES 发送指令。
添加、修改文档
ES 添加文档有以下 2 种方式。记住第2种即可,常用且方便
POST /<index>/_doc/
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": {
}
}
}
删除文档
语法: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。