ES是一个遵循RESTful风格的搜索和数据分析引擎,所以一般情况下,调用Elasticsearch的API都是遵循RESTful风格的。ES常用的操作方式有两种:
- 通过curl命令发送请求(纯手打)
- 通过kibana的控制台发送请求(有提示)
使用PUT创建文档和替换文档
创建文档
# 语法
PUT /${索引名}/_doc/${文档的_id}
{
# json数据
}
# 直接在命令行执行以下命令,复制到kibana控制台会自动识别成它的格式
curl -X PUT 192.168.56.104:9200/dbindex/_doc/1 -H 'Content-Type: application/json' -d '
{
"name": "clay",
"age": 18,
"actiontime": "2022-04-02 10:54",
"id": 123
}'
# -X:指定请求动作
# -H:设置请求头
# -d:请求携带的数据
- dbindex:表示索引名称。
- _doc:表示文档数据的类型。
- 1:表示文档数据的 _id。使用PUT动作,必须写_id。
更新文档
- 当 _id字段存在时,更新文档(会覆盖已有的值)
- 当 _id字段不存在时,创建文档
# 语法
PUT /${索引名}/_doc/${文档的_id}
{
# json数据
}
# 示例
PUT /dbindex/_doc/1
{
"address": "广州"
} # 返回值中有:"result" : "updated"
PUT /dbindex/_doc/2
{
"address": "广州"
} # 没有该ID,返回:"result" : "created"
使用POST创建文档
与使用PUT方法的区别:
- 使用POST方法时,不需要关注id字段,系统会自动生成。
- 使用POST方法时,更新文档中不存在的值不会覆盖已有的值。
创建文档
# 语法
POST /${索引名}/_doc
{
# json数据
}
# 创建
POST /dbindex/_doc
{
"name": "judy",
"age": 20
}
# 查询
GET /dbindex/_doc/HvRS6H8B5yKnIj0qLNb7
更新文档
更新文档中不存在的值不会覆盖已有的值。
# 语法
POST /${索引名}/_doc/${文档的_id}/_update
{
"doc": {
# json数据
}
}
# 示例
POST /dbindex/_doc/HvRS6H8B5yKnIj0qLNb7/_update
{
"doc": {
"name": "张三",
"addr": "sh"
}
}
使用POST查询文档
# 语法
POST /${索引名}/_doc/_search
# 查询所有文档
POST /dbindex/_doc/_search # .hits.hits._source里面返回的就是文档数据存储的信息
使用DELETE删除文档或索引
删除文档
# 语法
DELETE /${索引名}/_doc/${文档的_id} # 删除文档
# 示例
DELETE /dbindex/_doc/IPRq6H8B5yKnIj0quNY8
DELETE /dbindex
删除索引
# 语法
DELETE /${索引名} # 删除索引
# 示例
DELETE /dbindex
使用GET查询
GET语句不仅可以查询文档信息,还可以查询服务中所有的索引库以及索引库的结构信息。
# 根据_id查看文档详情
GET /${索引名}/_doc/${文档的_id}
# 查询指定索引库中所有的文档详情
GET /${索引名}/_doc/_search
# 查询当前集群的所有索引
GET /_cat/indices
# 查询当前集群中所有的别名索引信息
GET /_cat/aliases
# 查询当前集群的状态信息
GET /_cat/health
# 查询当前集群中主节点的信息
GET /_cat/master
# 查询当前集群中所有节点的信息
GET /_cat/nodes
# 查询当前集群中索引分片的信息
GET /_cat/shards
# 查询当前集群的健康状态
GET /_cluster/health?pretty
# 查询当前集群的运行状态信息
GET /_cluster/stats?pretty
# 查询当前集群中所有节点的监控信息
GET /_nodes/stats?pretty
# 查询当前集群中所有索引的监控信息
GET /_stats?pretty
注:以上请求加上v参数可以显示详细信息。
集群的颜色可以表示出集群的健康状态,总共有3种颜色:
- 绿色:最健康的状态,代表所有的索引,其主分片和副本分片都可用。
- 黄色:代表所有的索引,主分片可用,但是部分索引的副本分片不可用。
- 红色:代表集群中有部分索引的主分片不可用。