ES在6.0之后Type已修改成唯一的_doc,下边对文档Type的操作都是指定的_doc
在指定索引下创建文档
index -如果ID不存在,创建新的文档。如果ID存在,先删除现有的文档,再创建新的文档,版本号增加
create - 如果ID存在,会报失败
## index方式创建索引
PUT my_index/_doc/1
{"user":"mike","comment":"You know, for search"}
## create方式创建索引
## 指定ID
PUT my_index/_create/1
{"user":"mike","comment":"You know, for search"}
## 不指定ID,elasticsearch自动生成
POST my_index/_doc
{"user":"mike","comment":"You know, for search"}
查询指定索引文档
## 通过指定索引的文档id查询文档
GET my_index/_doc/1
更新指定索引文档
put请求update 先删除后再插入形式,会导致其他字段丢失,如果只想修改一个字段,其他字段需要再次传入
post请求 update 文档必须已经存在,更新只会对相应字段做增量修改
## put请求更新指定索引,指定id
## 会导致其他字段丢失
PUT my_index/_doc/1
{
"comment":"I dont know Elasticsearch"
}
## 防止其他字段被覆盖,传入其他字段和内容
PUT my_index/_doc/1
{
"user":"mike",
"comment":"I dont know Elasticsearch"
}
## 指定索引的文档ID进行更新
## doc是默认的字段,可以更新文档的一个字段或多个字段
POST my_index/_doc/1/_update
{
"doc":{
"user":"mike",
"comment":"You know, Elasticsearch"
}
}
删除指定索引文档
## 指定索引的文档id进行删除
DELETE my_index/_doc/1
Bulk批量操作(增,删,改)指定索引文档
Bulk支持在一次API调用中,对不同的索引进行操作,支持4种操作类型:index,create,update,delete。操作中单调操作失败,并不会影响其他操作,返回结果包括了每一条操作执行的结果
bulk API每行需要指定index信息,也可以在URI中指定
注意:_bulk操作时增,删,改的子句应该在一行,不能换行
## 通过URI中指定索引来进行批量操作
POST my_index/_doc/_bulk
{"index":{"_id":5}}
{"user":"Jim","comment":"I dont know Elasticsearch"}
{"update":{"_id":2}}
{"doc":{"comment":"I know Elasticsearch"}
{"delete":{"_id":3}}
## 在子句中指定索引,进行批量操作
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批量读取操作
GET _mget
{
"docs":[
{
"_index":"user",
"_id":1
},
{
"_index":"comment",
"_id":1
}
]
}
msearch 批量查询
## 可以在子查询中指定索引,不使用URI中指定的索引进行查询
POST my_index/_msearch
{}
{"query":{"match_all":{}},"from":0,"size":10}
{}
{"query":{"match_all":{}}}
{"index":"twitter2"}
{"query":{"match_all":{}}}
标签:index,##,doc,索引,文档,基本操作,id
From: https://www.cnblogs.com/tenic/p/16795848.html