一、删除单个文档
删除单个文档是ES中最基本的操作,只需向ES服务器发送请求,指定要删除的文档ID和索引名即可删除。
1.1 代码示例
DELETE /my_index/_doc/1
1.2 参数说明
- DELETE:HTTP协议中的DELETE请求方法,用于删除资源。
- /my_index/_doc/1:要删除的文档URI,其中my_index是索引名,_doc是类型名,1是文档ID。
1.3 返回值说明
如果删除成功,ES服务器会返回一个JSON格式的响应体,其格式如下:
{ "_index" : "my_index", "_type" : "_doc", "_id" : "1", "_version" : 1, "result" : "deleted", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 0, "_primary_term" : 1 }
其中:
- _index和_type:索引名和类型名,与请求URI中的相对应。
- _id:要删除的文档ID,与请求URI中的相对应。
- _version:文档的版本号。
- result:删除操作的结果。
- _shards:指示删除操作在分片集群中的执行情况。
二、删除多个文档
删除多个文档同样基于文档ID,只不过在删除请求中指定多个ID。
2.1 代码示例
POST /my_index/_delete_by_query { "query": { "terms" : { "_id" : ["1", "2"] } } }
2.2 参数说明
- POST:HTTP协议中的POST请求方法,用于提交数据。
- /my_index/_delete_by_query:执行删除操作的URI,其中my_index是索引名。
- "query":删除操作所依据的查询条件。
- "terms":查询条件的类型,表示文档ID的一组值。
- "_id":需要被删除的文档ID,多个值用数组表示。
2.3 返回值说明
如果删除成功,ES服务器会返回一个JSON格式的响应体,其中包含有关删除成功的信息。
三、删除整个索引
删除整个索引需要拥有删除索引的权限,即需要使用高级权限,包括所有权限和manage_index权限。
3.1 代码示例
DELETE /my_index
3.2 参数说明
- DELETE:HTTP协议中的DELETE请求方法,用于删除资源。
- /my_index:要删除的索引名。
3.3 返回值说明
如果删除成功,ES服务器会返回一个JSON格式的响应体,其中包含有关删除成功的信息。
四、删除全部数据
删除全部数据需要以批量方式执行删除操作。这种方式适用于需要清空索引中所有文档的情况,比如重新建立索引。
4.1 代码示例
POST /my_index/_delete_by_query?conflicts=proceed { "query": { "match_all": {} } }
4.2 参数说明
- POST:HTTP协议中的POST请求方法,用于提交数据。
- /my_index/_delete_by_query:执行删除操作的URI,其中my_index是索引名。
- "conflicts=proceed":可选参数,指定在删除操作中发生冲突时的处理方式。
- "query":删除操作所依据的查询条件。
- "match_all":查询条件的类型,表示匹配所有文档。
4.3 返回值说明
如果删除成功,ES服务器会返回一个JSON格式的响应体,其中包含有关删除成功的信息。