共计 864 个字符,预计需要花费 3 分钟才能阅读完成。
[toc]
1. 单文档 Delete API
1. 应用 id 删除 document
DELETE /twitter/_doc/1
{
"_index" : "twitter",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"result" : "deleted",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1
}
2. document 指定版本的删除
索引的每个 document 都有版本。在删除文档时,能够指定版本,确保删除的文档实际上曾经被删除,且在此期间没有产生更改; 对文档执行的每个写操作 (包含删除) 都会导致其版本减少; 删除后的文档的版本号在短时间内依然可用,以便管制并发操作, 被删除文档的版本放弃可用的工夫长度由 index.gc_deletes
这个设置 (setting) 决定: 默认是 60 seconds;
3. routing 的索引的删除
如果建索引时, 应用了 routing, 那么 删除索引时, 也须要指定 routing; DELETE /twitter/_doc/1?routing=kimchy
, 没有正确路由的状况下收回删除将导致文档不被删除。当按须要设置_routing 映射并且没有指定路由值时,delete API 将抛出一个 RoutingMissingException
并拒绝请求
4. 删除时查看沉闷分片数量
收回删除操作时, 能够设置 wait_for_active_shards
参数,要求在开始解决删除申请之前,查看流动的切分正本的最小数量;
5. 删除时的 timeout
在执行删除操作时,调配给执行删除操作的主 shard 可能不可用! 起因可能是主 shard 以后正在从存储中复原或正在进行从新定位; 默认状况下,delete 操作将等主 shard 可用的时长为 1 分钟,而后失败并响应一个谬误。这个 timeout
参数能够在删除时指定: DELETE /twitter/_doc/1?timeout=5m
2. TODO: Delete By Query API
正文完
发表至: elasticsearch
2020-11-26