文档的 CRUD 与批量操作
create document. 自动生成 _id
POST users/_doc
{
"user": "Mike",
"post_date": "2019-04-15T14:12:12",
"message": "trying out Kibana"
}
create document. 指定Id。如果id已经存在,报错
PUT users/_doc/1?op_type=create
{
"user": "Jack",
"post_date": "2019-05-15T14:12:12",
"message": "trying out Elasticsearch"
}
指定 ID 如果已经存在,就报错
PUT users/_create/1
{
"user": "Jack",
"post_date": "2019-05-15T14:12:12",
"message": "trying out Elasticsearch"
}
Get the document by ID
GET users/_doc/1
Update 指定 ID (先删除,在写入)
PUT users/_doc/1
{
"user": "Mike"
}
GET users/_doc/1
在原文档上增加字段
POST users/_update/1/
{
"doc":{
"post_date" : "2019-05-15T14:12:12",
"message" : "trying out Elasticsearch"
}
}
GET users/_doc/1
删除文档
DELETE users/_doc/1
Bulk 操作
如果一个具有相同索引的文档已经存在,则create将失败,而index将根据需要添加或替换一个文档
执行第1次
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"}}
运行结果如下
{ "took": 30, "errors": false, "items": [ { "index": { "_index": "test", "_type": "_doc", "_id": "1", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "status": 201, "_seq_no" : 0, "_primary_term": 1 } }, { "delete": { "_index": "test", "_type": "_doc", "_id": "2", "_version": 1, "result": "not_found", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "status": 404, "_seq_no" : 1, "_primary_term" : 2 } }, { "create": { "_index": "test", "_type": "_doc", "_id": "3", "_version": 1, "result": "created", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "status": 201, "_seq_no" : 2, "_primary_term" : 3 } }, { "update": { "_index": "test", "_type": "_doc", "_id": "1", "_version": 2, "result": "updated", "_shards": { "total": 2, "successful": 1, "failed": 0 }, "status": 200, "_seq_no" : 3, "_primary_term" : 4 } } ] }