elasticsearch6.7 05. Document APIs(4)Delete API
3、Delete API
delete API 可以让你删除一个特定id的文档,下面例子删除twitter索引中_doc类型、id为1的文档:
DELETE /twitter/_doc/1
返回结果:
{
"_shards" : {
"total" : 2,
"failed" : 0,
"successful" : 2
},
"_index" : "twitter",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"_primary_term": 1,
"_seq_no": 5,
"result": "deleted"
}
3.1 乐观锁( Optimistic Concurrency Control)
删除操作可以是有条件的,只有在为文档的最后一次修改分配了if_seq_no和if_primary_term才能执行索引操作。如果检测到不匹配,则操作将导致VersionConflictException和状态代码409.有关详细信息,请参阅乐观并发控制。
3.2 版本(Versioning)
index文档后都有一个版本号,删除文档时,可以指定version参数确保相关的文档(版本号一致)被正确删除,并且文档的版本号在删除操作执行期间不能被更改。任何一个写操作(包括删除操作)都会导致版本号递增。
被删除文档的版本号在短时间内仍可使用,以便控制并发操作。已删除文档的版本号保持的可用的时间由index.gc_deletes索引设置确定,默认为60秒。
3.3 路由(Routing)
如果索引的时候指定了routing参数,那么删除的时候也要指定对应的routing参数,否则删除不了相应的文档。
DELETE /twitter/_doc/1?routing=kimchy
上例将根据kimchy进行路由删除id为1的文档。请注意,在没有正确路由的情况下将导致文档无法正确删除。
当在映射中设置_routing但没有指定routing参数时,delete api会抛RoutingMissingException异常并且拒绝本次请求。
3.4 自动创建索引(Automatic index creation)
如果使用了外部版本控制,则删除操作会自动创建一个之前尚未创建过的索引(请参阅创建索引API以手动创建索引)
如果以前未创建过特定类型,还会自动为特定类型创建动态类型映射(请查看put mapping API以手动创建类型映射)。
3.5 分布式(Distributed)
delete请求会通过hash路由到某个分片上,然后被重定向到该id组中的主分片上,并复制(如果需要)到该id组中的副本分片上。之后在所有相关分片上执行删除操作。
3.6 等待活跃分片(Wait For Active Shards)
当执行删除操作是,可以设置 wait_for_active_shards参数要求活跃分片数达到某个值的时候才能执行删除操作。查阅这里了解使用例子。
3.7 刷新(Refresh)
设置此请求所做的更改到搜索可见的时间。查阅refresh
3.8 超时(Timeout)
执行删除操作时,执行删除操作的主分片可能不可用。这可能是因为主分片正在恢复中或者主分片正在进行迁移。默认情况下,删除操作会等待一分钟,如果主分片还是不可用就会报错。你可以在delete API 中通过timeout参数显式指定超时时间。下面例子把timeout设置为5分钟:
DELETE /twitter/_doc/1?timeout=5m
elasticsearch6.7 05. Document APIs(4)Delete API的更多相关文章
- elasticsearch6.7 05. Document APIs(3)GET API
2.GET API get API 可以通过文档id从索引中获取json格式的文档,以下示例从twitter索引中获取type为_doc,id值为0为的JSON文档: GET twitter/_doc ...
- elasticsearch6.7 05. Document APIs(2)Index API
Single document APIs Index API Get API Delete API Update API Multi-document APIs Multi Get API Bulk ...
- elasticsearch6.7 05. Document APIs(6)UPDATE API
5. UPDATE API 更新操作可以使用脚本来更新.更新的时候会先从索引中获取文档数据(在每个分片中的集合),然后运行脚本(使用可选的脚本语言和参数),再果进行索引(还允许删除或忽略该操作).它使 ...
- elasticsearch6.7 05. Document APIs(5)Delete By Query API
4.Delete By Query API _delete_by_query API可以删除某个匹配条件的文档: POST twitter/_delete_by_query { "query ...
- elasticsearch6.7 05. Document APIs(9)Bulk API
8.Bulk API 可以把多个index或delete操作放在单个bulk API中执行.这样可以极大地提高索引速度. /_bulkAPI使用如下的JSON结构: action_and_meta_d ...
- elasticsearch6.7 05. Document APIs(10)Reindex API
9.REINDEX API Reindex要求为源索引中的所有文档启用_source. reindex 不会配置目标索引,不会复制源索引的设置.你需要在reindex之前先指定mapping,分片数量 ...
- elasticsearch6.7 05. Document APIs(8)Multi Get API
7.Multi Get API(Multi Get API) multi GET API 允许你一次性获取多个文档,你需要指定docs数组,其中包含了所有你需要查询的文档,每个查询结构至少包含索引,类 ...
- elasticsearch6.7 05. Document APIs(1)data replication model
data replication model 本节首先简要介绍Elasticsearch的data replication model,然后详细描述以下CRUD api: 1.读写文档(Reading ...
- elasticsearch6.7 05. Document APIs(7)Update By Query API
6.Update By Query API _update_by_query 接口可以在不改变 source 的情况下对 index 中的每个文档进行更新.这对于获取新属性或其他联机映射更改很有用.以 ...
随机推荐
- C#属性、自动属性、字段之间的区别和理解
.ctor是构造方法的意思,注意委托其实也是有构造方法的(不过是编译器自动创建的是私有的)貌似它的参数一个是委托引用的方法所属的对象(或Type对象),一个是该方法的指针: 1.属性的概念其实和字段是 ...
- 设置navigation的title
onReady(){ wx.setNavigationBarTitle({ title: this.data.title }); }
- Beta阶段Scrum 冲刺博客合集
Beta阶段博客链接集合 第一篇Scrum冲刺博客 第二篇Scrum冲刺博客-Day1 第三篇Scrum冲刺博客-Day2 第四篇Scrum冲刺博客-Day3 第五篇Scrum冲刺博客-Day4 第六 ...
- js- DOM事件之按钮绑定函数注意事项
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Azure DevOps Server(TFS): 在Excel中解除服务器同步
通过Azure DevOps Server 提供与Excel集成的功能,用户可以非常便捷地使用Excel,实现工作项数据的同步. 对于需要批量处理数据.离线工作.制作临时报表的用户来说,这个功能必定成 ...
- maven理论基础
Maven介绍 Maven是一个Java项目管理和构建工具 Maven使用pom.xml定义项目内容,并使用预设的目录结构 在Maven中声明一个依赖项可以自动下载并导入classpath Maven ...
- Javascript多线程
最近项目中要用一个倒计时,但是当弹窗的时候倒计时会被阻塞,所以我想到使用Javascript多线程解决该问题. 虽然JavaScript是单线程的,但是通过worker可以让Javascript另外开 ...
- koa中返回404并且刷新后才正常的解决方案
概述 这几天学习koa2,有一些心得,记录下来,供以后开发时参考,相信对其他人也有用. 起因 这几天学习koa2,写的代码执行时有一个奇怪的bug:明明能够返回数据,却有时正常返回数据,有时偏偏给你返 ...
- [CocoaPods]制作CocoaPod
创建自己的CocoaPod非常简单.如果你已经有一个单独的组件,那么你就是最重要的.本指南概述了整个过程,本节中的其他指南更适合更高级用户. 我们建议让CocoaPods在这里努力工作.Running ...
- LeetCode手记-Add Binary
问题描述 问题分析 分析题意,此题实际是求解两个二进制数的和,但是有两点要注意: 1.字符串的长度不限,所以相应十进制数值很可能会超过int的上限. 2.二进制的加法规则是自右向左进位,需要注意,以题 ...