amazon cloudsearch - 执行批量操作的顺序是什么?
amazon cloudsearch - what is the order the bulk operations executed?
我在批量操作方面遇到了问题,这花了一些时间直到亚马逊支持给出了解决方案,所以如果你遇到同样的问题(也许你甚至不知道它有问题),这就是答案。
亚马逊 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 上,批量上的所有记录都有 'versioning',因此只有当版本号大于现有版本号时,才会对同一 ID 进行更新。
根据亚马逊:
'When performing operations on the same Id only the first operation is executed'
所以现在你需要自己解决这个问题..
我将其解决为持有一个散列和批量 ID,如果一个 ID 已经在散列中(在散列中),则提交该散列,并将该 ID 插入到一个新的散列中。
我在批量操作方面遇到了问题,这花了一些时间直到亚马逊支持给出了解决方案,所以如果你遇到同样的问题(也许你甚至不知道它有问题),这就是答案。
亚马逊 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 上,批量上的所有记录都有 'versioning',因此只有当版本号大于现有版本号时,才会对同一 ID 进行更新。
根据亚马逊:
'When performing operations on the same Id only the first operation is executed'
所以现在你需要自己解决这个问题..
我将其解决为持有一个散列和批量 ID,如果一个 ID 已经在散列中(在散列中),则提交该散列,并将该 ID 插入到一个新的散列中。