跳到主要内容

文档写入与删除

说明

对应 REST 接口:_doc_create_update_bulk

插入与覆盖

POST /user_info/_doc {"name":"mali"}
PUT /user_info/_doc/1001 {"name":"mali"}
POST /user_info/_create/1002 {"name":"alice"}

POST 不带 ID 时生成 _id;PUT 指定 ID 时覆盖已有文档;_create 在 ID 已存在时失败。主键回填见主键生成

修改部分字段

POST /user_info/_update/1001?refresh=true {"doc":{"name":"new name"}}

只修改 doc 中的字段。需要覆盖整篇文档时使用 PUT,而不是 _update

删除

DELETE /user_info/_doc/1001?refresh=true

批量写入

_bulk 接受动作和文档交替排列的 JSON 数组,驱动转换为 Elasticsearch 的 NDJSON 请求:

POST /user_info/_bulk?refresh=true [
{"index":{"_id":"1001"}}, {"name":"mali"},
{"index":{"_id":"1002"}}, {"name":"alice"}
]

Elasticsearch 6 的动作还需提供 "_type":"_doc"。删除动作不跟文档;更新动作后使用 {"doc":{...}}

这是一条原生命令,不是 JDBC addBatch()。部分动作失败时抛出 BatchUpdateException,通过 getUpdateCounts() 和异常链查看逐项结果;已成功的动作不会回滚。

更新计数与写后可见性见写入结果