一尘不染

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

elasticsearch

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

数据:sample1:{名称:’Tom’,id:‘1’,城市:’xx’,州,’yy’,国家/地区:’zz’}
sample2:{id:‘1’,城市:’xx’,州,“ yy”,国家/地区:“ zz”}如果我删除id:“
1”,则应该从服务器端本身的两个索引中删除此文档。这该怎么做
?问题将是,如果我删除值separatley,那么如果我从一个索引中删除了值后又陷入网络问题,另一个索引将具有值,该如何避免呢?


阅读 338

收藏
2020-06-22

共1个答案

一尘不染

您可以使用批量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"}

更新

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

2020-06-22