我在批量操作方面遇到了问题,需要一段时间,直到亚马逊支持为此提供解决方案,所以如果你遇到同样的问题(也许你甚至不知道它有问题),所以这是答案。
亚马逊API版本:2013-01-01
我的问题是我试图在相同的ID上进行批量操作,并且云搜索索引不正确:
考虑这个要求:
[{"fields": {"first_name": "yosi2"}, "type": "add", "id": 561}, {"fields": {"first_name": "yosi"}, "type": "add", "id": 561}]
情形: 1.用户ID 561将他的名字更新为' yosi2' - 向批量添加操作插件 2.用户ID 561将他的名字更新为' yosi' - 向批量添加操作插件 3.提交请求
结果是' yosi2'在云搜索索引中,(虽然正确的是“yosi' - 这是最后一次操作”)
那么这里发生了什么?
- 在旧的API 2011-01-01上,批量的所有记录都有'版本控制',因此只有当版本号大于现有版本时才会发生相同ID的更新。
答案 0 :(得分:0)
根据亚马逊的说法:
'当对同一个Id执行操作时,只执行第一个操作'
所以现在你需要自己解决这个问题..
我解决它持有散列ID的散列,如果id已经在批量内(在散列中),则提交批量,并将id插入新批量。