文档更新
文档的更新经历三个步骤,检索、修改、重新索引
部分更新
在原有文档已经存在的情况下,可以对原有的文档部分字段更新,使用POST请求,发送到/_update
如果文档是不存在的,更新操作是失败的
存在则更新,不存在则创建(upsert)
如果文档存在,则使用doc进行字段更新,否则使用upsert创建新的索引文档
丢失更新与版本控制
只要是存在并发修改,就可能丢失更新,我们可以使用版本号来解决并发问题。
引入版本的概念,可以解决并发操作导致的问题
在更新时,可以设置retry_on_conflict参数,设置重试次数,一般设置为3次
在更新文档的时候,也可以直接指定版本重新建立索引,而不是使用_udapte
只要版本号正确,同样可以达到目的。
通过指定文档id删除指定的文档
通过DELETE请求,可以完成指定文档的删除,/索引/类型/id
当然,防止并发操作,推荐使用带版本的操作,即/索引/类型/id?version=x
指定类型删除全部文档
删除online-shop下的shirts的所有文档,依然是DELETE方法
删除指定查询条件查询出来的文档
通过DELETE操作,指定_query参数,删除满足检索条件的所有文档
直接删除索引
关闭索引
不再支持检索,更新和删除操作,除非重新开启。
使用POST请求,访问/索引/_close
重新开启索引
使用POST请求,访问/索引/_open