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