ElasticSearch删除文档
删除文档
1. 根据 id 删除
从索引中删除一个文档。
删除一个 id 为 TuUpmHUByGJWB5WuMasV 的文档。
DELETE blog/_doc/TuUpmHUByGJWB5WuMasV
如果在添加文档时指定了路由,则删除文档时也需要指定路由,否则删除失败。
2. 查询删除
查询删除是 POST 请求。
例如删除 title 中包含 666 的文档:
POST blog/_delete_by_query
{
"query":{
"term":{
"title":"666"
}
}
}
也可以删除某一个索引下的所有文档:
POST blog/_delete_by_query
{
"query":{
"match_all":{
}
}
}
3. ES删除
curl -XDELETE http://10.135.73.73:9201/test/user/1
for i in `seq -w 1 31`;
do
curl -XDELETE "http://master:9200/system-2017.01.$i"
done
curl -XGET http://10.135.73.73:9201/test/user/1
-
如果文档存在, result属性值为deleted, _version属性的值+1
-
如果文档不存在, result属性值为not_found,但是_version属性的值依然会+1, 这个就是内部管理的一部分, 它保证了我们在多个节点间的不同操作的顺序都被正确标记了
注意: 删除一个文档也不会立即生效, 它只是被标记成已删除。 Elasticsearch将会在你之后添加更多索引的时候才会在后台进行删除内容的清理。