Azure 搜索 |索引更新的总排序

Azure Search | Total ordering of index updates

我已在 Azure 搜索上通读了这篇 。但是,我必须更明确地质疑该列表中问题 #1 的答案...

...When you index data, it is not available for querying immediately.

...Currently there is no mechanism to control concurrent updates to the same document in an index.

最终一致性很好 - 我执行了一些更新,最终我会在 read/query 上看到我的更新。

但是,无法保证更新的顺序确实存在问题。也许我误解了让我们假设这个基本场景:

1) update index entry E.fieldX w/ foo at time 12:00:01
2) update index entry E.fieldX w/ bar at time 12:00:02

据我所知,在处理完所有更新后,E.fieldX 完全有可能包含“foo”?

如果那是真的,似乎严重限制了该产品的适用性。

目前Azure Search不提供文档级乐观并发,主要是绝大多数场景不需要。请投票给 External Version UserVoice suggestion 以帮助我们确定此问题的优先级。

如今管理数据入口并发的一种方法是使用 Azure Search indexers。索引器保证它们在每个时间点只处理源文档的当前版本,从而消除了潜在的竞争。

如果您发出多个并发请求,则顺序未知,因为您无法预测它们到达服务器的顺序。

如果您按顺序发布索引批次(即,只有在您看到来自第一批服务的 ACK 后才启动第二批),您应该不会看到重新排序。