Elasticsearch删除/更新index1和index2中的文档

如果我有两个索引,例如:sample1和sample2。如果我删除或更新了sample1中的值,那么相应的文档也应该在sample2中删除或更新吗?

数据:sample1:{名称:’Tom’,id:‘1’,城市:’xx’,州,’yy’,国家/地区:’zz’}

sample2:{id:‘1’,城市:’xx’,州,“ yy”,国家/地区:“ zz”}如果我删除id:“

1”,则应该从服务器端本身的两个索引中删除此文档。这该怎么做

?问题将是,如果我删除值separatley,那么如果我从一个索引中删除了值后又陷入网络问题,另一个索引将具有值,该如何避免呢?

回答:

您可以使用批量API来执行此操作,并且由于所有操作都在单个网络调用中发生,因此,您可以更好地保证删除/更新操作成功或失败:

要删除两个不同索引的两个文档:

POST _bulk

{"delete": {"_index": "index1", "_type": "type1", "_id": "1"}}

{"delete": {"_index": "index2", "_type": "type2", "_id": "1"}}

要更新两个不同索引中的两个文档:

POST _bulk

{"index": {"_index": "index1", "_type": "type1", "_id": "1"}}

{"name": "Tom", id: "1", "city": "xx", "state": "yy", "country": "zz"}

{"index": {"_index": "index2", "_type": "type2", "_id": "1"}}

{"id": "1", "city": "xx", "state": "yy", "country": "zz"}

在讨论了这一点之后,似乎需要的解决方案是混合使用

  • 在删除逐个查询API(不要忘了安装插件,如果你是在ES 2.x的)用于删除多个索引相匹配的国家文件
  • 以及用于通过多个索引更新文档的按查询更新API。

以上是 Elasticsearch删除/更新index1和index2中的文档 的全部内容, 来源链接: utcz.com/qa/400461.html

回到顶部