删除文档
根据 id 删除
从索引中删除一个文档。
删除一个 id 为 N5kxV3YBz5ynU9guklnS 的文档。
DELETE blog/_doc/N5kxV3YBz5ynU9guklnS
如果在添加文档时指定了路由,则删除文档时也需要指定路由,否则删除失败。
查询删除
查询删除是 POST 请求。
例如删除 title 中包含 666 的文档:
POST blog/_delete_by_query
{
"query": {
"term": {
"title": "666"
}
}
}
也可以删除某一个索引下的所有文档:
POST blog/_delete_by_query
{
"query": {
"match_all": {
}
}
}
批量操作
es 中通过 Bulk API 可以执行批量索引、批量删除、批量更新等操作。
首先需要将所有的批量操作写入一个 JSON 文件中,然后通过 POST 请求将该 JSON 文件上传并执行。
例如新建一个名为 aaa.json 的文件,内容如下:
{"index": {"_index": "user", "_id": "666"}}
{"name": "BNTang"}
{"update": {"_index": "user", "_id": "666"}}
{"doc": {"name": "BNTang666"}}
首先第一行:index 表示要执行一个索引操作(这个表示一个 action,其他的 action 还有 create,delete,update)。_index
定义了索引名称,这里表示要创建一个名为 user 的索引,_id
表示新建文档的 id 为 666。
第二行是第一行操作的参数。
第三行的 update 则表示要更新。
第四行是第三行的参数。
注意,结尾要空出一行。
aaa.json 文件创建成功后,在该目录下,执行请求命令,如下:
curl -XPOST "http://localhost:9200/user/_bulk" -H "content-type:application/json" --data-binary @aaa.json
执行完成后,就会创建一个名为 user 的索引,同时向该索引中添加一条记录,再修改该记录,最终结果如下: