ElasticSearch系列 - 文档基本操作
运行EKL(ElasticSearch+Kibanan+Logstash)
进入Kibanna页面
选择控制台Console,可以在线输入命令,方便学习
进入cerebro集群控制台
查看当前集群情况,一共4个索引,前三个是Kibanna测试数据,后面movies是通过Logstash导入的
绿色加粗代表是主分片,虚线代表是副本分片。
此时我运行
POST users/_doc
{
"user" : "wanxintao",
"post_date" : "2019-08-29T14:12:12",
"message" : "trying out Kibana"
}
集群立刻可以看出多了一个user索引。
在Kibanna上运行的好处是,Kibanna可以直接调整API文档查询
文档的操作类型
类型 | 解释 |
---|---|
index | 如果id不存在,创建新文档,否则先删除后新增,version增加 |
create | 如果id存在,创建文档会失败 |
read | 通过id查询 |
update | 更新文档,文档必须已经存在,更新只会对相应字段更新 |
delete | 删除 |
下面是简单文档操作命令
GET /movies
# 创建文档指定 自动生成id create类型
POST users/_doc
{
"user" : "wanxintao",
"post_date" : "2019-08-29T14:12:12",
"message" : "trying out Kibana"
}
# 删除指定id的文档
DELETE users/_doc/4qNT3WwBPchluLm0xxnx
# 创建文档,指定Id。如果id已经存在,报错
PUT users/_doc/1?op_type=create
{
"user" : "Jack",
"message" : "trying out Elasticsearch"
}
# 创建文档 指定 ID 如果已经存在,就报错
PUT users/_create/1
{
"user" : "Jack",
"message" : "trying out Elasticsearch"
}
# 查看文档 read类型
GET users/_doc/1
# 更新文档 index类型
PUT users/_doc/1
{
"user" : "Mike",
"content":"更新是先删除后插入"
}
GET users/_doc/1
# 在原文档上新增文档 update类型
# 和 PUT users/_doc/1区别在于_doc与_update的区别
POST users/_update/1/
{
"doc":{
"post_date" : "2019-05-15T14:12:12",
"message" : "trying out Elasticsearch"
}
}
### Bulk 操作
### 减少重复建立链接消耗,支持对一个索引不同操作,不同索引不同操作,可以create,index delete update四种操作 一条操作失败不阻塞后面操作,每一条操作都会返回值
POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_id" : "2" } }
{ "create" : { "_index" : "test2", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }
### mget 操作 批处理,减少重复建立链接消耗
PUT test/_doc/2
{
"user" : "Mike",
"content":"更新是先删除后插入"
}
GET /_mget
{
"docs" : [
{
"_index" : "test",
"_id" : "1"
},
{
"_index" : "test",
"_id" : "2"
}
]
}
#URI中指定index
GET /test/_mget
{
"docs" : [
{
"_id" : "1"
},
{
"_id" : "2"
}
]
}
GET /_mget
{
"docs" : [
{
"_index" : "test",
"_id" : "1",
"_source" : false
},
{
"_index" : "test",
"_id" : "2",
"_source" : ["field3", "field4"]
},
{
"_index" : "test",
"_id" : "3",
"_source" : {
"include": ["user"],
"exclude": ["user.location"]
}
}
]
}
### msearch 操作 批量查询
POST kibana_sample_data_ecommerce/_msearch
{}
{"query" : {"match_all" : {}},"size":1}
{"index" : "kibana_sample_data_flights"}
{"query" : {"match_all" : {}},"size":2}
#清除数据 index
DELETE users
DELETE test
DELETE test2
Status分析
问题 | 原因 |
---|---|
无法连接 | 网络故障/集群挂了 |
连接无法关闭 | 网络故障或者节点出错 |
429 | 集群太繁忙 |
4xx | 请求体格式有错 |
500 | 集群内部错误 |