亚马逊云搜索 - 批量操作执行的顺序是什么?

时间:2015-05-10 08:48:30

标签: python amazon-web-services boto amazon-cloudsearch

我在批量操作方面遇到了问题,需要一段时间,直到亚马逊支持为此提供解决方案,所以如果你遇到同样的问题(也许你甚至不知道它有问题),所以这是答案。

亚马逊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的更新。

1 个答案:

答案 0 :(得分:0)

根据亚马逊的说法:

'当对同一个Id执行操作时,只执行第一个操作'

所以现在你需要自己解决这个问题..

我解决它持有散列ID的散列,如果id已经在批量内(在散列中),则提交批量,并将id插入新批量。