如果我有两个索引,例如: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"}
更新
在讨论了这一点之后,似乎需要的解决方案是混合使用